有很多人在跑rtsp解码的demo的时候, 苦于找不到一个可以拉流的源, 这里说一个简单的方法. 使用mediamtx, 加ffmpeg加mp4文件方式, 模拟一个rtsp的源.
基本架构就是这样.
在PC上, 这里说的PC可以是远程的服务器, 也可以是你的开发用的windows, 都行.
把mediamtx, 在pc上跑起来
以上面为例, 我在windows上跑的.
mediamtx支持rtsp, rtmp, hls,webrtc等等的方式拉流.
接下来准备一段mp4的影片, 并下载或者编译windows版本的ffmpeg, 如果是租用的ubuntu的云服务器, 就直接用apt装一下ffmpeg即可.
然后在命令行下, 输入:
bash
.\ffmpeg.exe -re -stream_loop -1 -i C:\Users\zunly\OneDrive\media_sample\demo.mp4 -c copy -an -f rtsp rtsp://127.0.0.1:8554/stream
- 这个推流会循环播放你的mp4, 重复的播放
- 把-i换成你自己的mp4文件地址
- 如果mediamtx不在本地, 就把rtsp的目标地址换成远程服务器的地址
拉流的时候使用rtsp://127.0.0.1:8554/stream, 就可以拉rtsp流的, 同样的道理, 使用rtmp://127.0.0.1/1935/stream 就可以拉rtmp流.
同样的方法也可以拉usb摄像头, 改下-i的参数即可.