首先下载ffmpeg,在windows系统上直接下载可执行文件,并配置环境变量即可在命令行当中调用执行。
下载地址:
https://ffmpeg.org/
再在github上下载mediamtx搭建rtsp服务器,使用ffmpeg将码流推流到rtsp服务器。
下载地址:
https://github.com/13meimei/mediamtx
搭建模拟多通道rtsp相机:
1、修改配置文件mediamtx.yml
把不必要开启的监听服务关闭。防止再开启另一个mediamtx进程作为另一个rtsp服务器时套接字冲突,被占用报错。
2、重新开启mediamtx进程,rtsp监听8554端口
在进程已经启动之后,修改配置文件,保存之后也会立即生效。
在mediamtx.ext所有文件夹的命令行当中执行mediamtx.exe
时,命令行可以看到只剩下监听rtsp,并且可以看到当前占用的端口。
3、开启另一个进程,rtsp监听9554端口
4、ffmpeg推流
当前使用两张图片作为输入,推流命令:
rtsp:8554
ffmpeg -re -stream_loop -1 -i left_road.png -c:v libx264 -f rtsp rtsp://127.0.0.1:8554/live
rtsp:9554
ffmpeg -re -stream_loop -1 -i right_road.png -c:v libx264 -f rtsp rtsp://127.0.0.1:9554/live
5、ffplay播放
ffplay是ffmpeg当中的一个套件,安装完成ffmpeg之后也就有了ffplay。播放命令:
rtsp:8554
ffplay rtsp://127.0.0.1:8554/live
rtsp:9554
ffplay rtsp://127.0.0.1:9554/live
附:
1、命令行当中还可以,通过配置环境变量设置rtsp监听地址和端口:
$env:MTX_RTSPADDRESS = "127.0.0.1:8554"
.\mediamtx.exe
2、可以使用python将以上步骤自动化
- 拷贝文件
- 关闭除了rtsp的其他协议
- 按照需要开启的rtsp通道数量,递增修改监听套接字
- 启动服务,监听套接字
- 打印rtsp url地址,用于ffmpeg推流
- ffmpeg推流
- 监听按键
- 按下按键,退出rtsp服务器和ffmpeg推流进程
- 删除文件,方便下次继续使用