1. 下载并启动媒体服务
MediaMTX,也即之前的rtsp-simple-server,是一个即用型、零依赖的实时媒体服务器和媒体代理,允许发布、读取、代理和记录视频和音频流。
从Releases · bluenviron/mediamtx · GitHub找到最新版,下载对应平台的软件包,如 linux x86-64 选绿色框那个,windows x86-64 则选红色框那个:
解压后,运行即可:
# linux x86-64:
./mediamtx mediamtx.yml
2. 使用 FFMPEG 拉流并推送到指定服务地址
* 需提前安装好 FFMPEG
启动媒体服务后,即可进行拉流并推送:
ffmpeg -re -i 视频文件路径或者网络摄像头地址 -c copy -f rtsp rtsp://127.0.0.1:8554/stream
如果想循环推某个视频,可以使用参数-stream_loop,可以指定循环多少次,如为-1,则循环无数次:
ffmpeg -re -stream_loop -1 -i 视频文件路径 -c copy -f rtsp rtsp://127.0.0.1:8554/stream
3. 客户端拉流
可直接用 ffplay 进行拉流与展示:
ffplay rtsp://127.0.0.1:8554/stream
也可用某些支持网络 URL 的播放器进行播放,如 VLC,SMPlayer 等;
也可以通过 opencv 拉流来获取每一帧图像进行各种处理:
video = cv2.VideoCapture("rtsp://127.0.0.1:8554/stream")