模拟RTSP服务器实现实时推流
前言
搭建本服务器主要是为了利用FFmpeg进行各种音视频codec的转换输出,验证客户端的解码器兼容情况。当然也可以采用其他的方案来替代。
1 ZLMediaKit开源项目搭建
1.1 源码下载
这里比较人性的一点是提供了比较详细的wiki文档
https://gitee.com/xia-chu/ZLMediaKit
编译环境是Ubuntu18.04版本,官方推荐是强烈建议使用ubuntu16或更新版本编译ZLMediaKit。
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit cd ZLMediaKit #千万不要忘记执行这句命令 git submodule update --init
1.3 依赖库
这里安装了几个比较重要的库,一个是openssl,另一个是FFmpeg,用于后续推流使用
#除了openssl,其他其实都可以不安装 sudo apt-get install libssl-dev sudo apt-get install libsdl-dev sudo apt-get install libavcodec-dev sudo apt-get install libavutil-dev sudo apt-get install ffmpeg
1.4 编译
编译基本照着文档没啥大问题,接下来就是静静等着编译完成。
cd ZLMediaKit mkdir build cd build #macOS下可能需要这样指定openss路径:cmake .. -DOPENSSL_ROOT_DIR=/usr/local/Cellar/openssl/1.0.2j/ cmake .. make -j4
1.5 测试
编译完成后会在release目录下生成对应可执行文件 启动服务器:失败了查看下下面的日志,这边只报了一个端口被占用,修改下同目录下的配置文件config.ini即可。
./MediaServer
2 FFmpeg推流
这里主要是模拟mpeg4编码进行推流
ffmpeg -re -i “/home/learn/testvideo/Titanic.ts” -vcodec mpeg4 -f rtsp -rtsp_transport tcp rtsp://192.168.88.140/live/test
推流成功可以看到MediaServer下方的log: rtsp监控采用的是vlc进行: