马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
视频监控 、直播回放、边缘推流这些场景里,经常需要一个能直接把本地文件当流发出去的 RTSP 服务,做算法验证或联调比不起来一整套摄像头。这里用 simple-rtsp-server:纯 C 实现,从本地目录读 MP4/MKV 循环推流,支持 H264/H265、AAC/PCMA、RTP over UDP/TCP,多个客户端拉同一路流时画面同步,行为跟真实摄像头接近。本文记录 Ubuntu 上从编译 ffmpeg 到拉流验证的完整过程。
一、项目特性
- 支持 MP4、MKV 文件作为内容源;
- 音视频编码支持 H264、H265、AAC、PCMA;
- 支持 RTP over UDP 与 RTP over TCP;
- 用 epoll 收发音视频数据,轻量;
- 把视频丢进 mp4path 目录,就能用
rtsp://IP:8554/文件名 拉流,播完自动循环;
- 多个客户端拉同一路流时内容同步。
二、准备依赖
simple-rtsp-server 依赖 ffmpeg,版本要求 4.x 及以上。先装编译工具与基础库:
sudo apt-get -y install autoconf automake build-essential libass-dev libfreetype6-dev libsdl2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texinfo zlib1g-dev
sudo apt-get install yasm
sudo apt-get install nasm
视频相关库:
sudo apt-get install libx264-dev
sudo apt-get install libx265-dev
音频相关库:
sudo apt-get install libfdk-aac-dev
sudo apt-get install libmp3lame-dev
sudo apt-get install libopus-dev
三、编译安装 ffmpeg 4.0.5
wget https://ffmpeg.org/releases/ffmpeg-4.0.5.tar.bz2
tar xjvf ffmpeg-4.0.5.tar.bz2
cd ffmpeg-4.0.5
./configure --prefix=/usr/local --enable-libx264 --disable-x86asm --enable-nonfree --enable-libfdk-aac --enable-shared --enable-gpl --enable-libmp3lame --enable-libopus --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib
make
make install
四、编译 simple-rtsp-server
git clone https://github.com/BreakingY/simple-rtsp-server.git
cd simple-rtsp-server
mkdir build
cd build
cmake ..
make -j
五、运行
cp -r ../mp4path .
./rtsp_server 0 # 0 不鉴权;1 开启鉴权
六、拉流测试
项目自带的 mp4path 里有几个测试文件,把想回放的视频丢进去即可。
TCP 拉流:
ffmpeg -rtsp_transport tcp -i "rtsp://192.168.10.17:8554/test_h264_aac.mp4" -vcodec copy -acodec copy test_h264_aac_tcp.mp4
UDP 拉流:
ffmpeg -i "rtsp://192.168.10.17:8554/test_h264_aac.mp4" -vcodec copy -acodec copy test_h264_aac_udp.mp4
也可以用 VLC:媒体 → 打开网络串流,填 RTSP 地址。默认走 UDP 拉流,要切 TCP 就在「工具 → 偏好设置 → 输入/编解码器」里拉到最下方选「RTP over RTSP (TCP)」。
服务端运行起来后会把 RTSP 信令交互过程打印出来,看这个输出能清楚理解为 setup / play 阶段发生了什么,联调排查时很有帮助。
七、几个实用提醒
- 默认端口 8554,被占用或改端口要对应改拉流地址;
- 回放型 RTSP 服务定位是「模拟摄像头」,不适合当长期高并发流媒体服务器,生产环境用 MEDIASSILERO 或 SRS 这类成熟方案;
- 跨网段拉流不通时,先确认 UDP 8554/554 方向是否被防火墙拦,再考虑走 TCP;
- 循环播放与多端同步是它的优势,做算法联调时可以直接拿它当稳定输入源。
qidao123.com企服评测-应用市场 编辑提示 |