使用 MediaMTX 和FFmpeg 推拉RTSP 流媒体

FFmpeg 是一个非常强大的开源工具,可以用来处理音频和视频,也可以进行 RTSP 视频流的推拉。

RTSP 适用场景:

  • 视频监控和安防系统:

RTSP 在视频监控领域具有广泛的应用。它可以实现监控视频的实时传输、回放、点播和存储等功能,适用于大规模的视频监控系统,如城市安防、企事业单位、交通监控等场景。

  • 直播服务:

RTSP 在直播服务中也发挥着重要作用。它可以实现音视频数据的实时传输和控制,确保直播的流畅性和稳定性。同时,RTSP 还支持多种媒体格式和编码方式,适应不同平台和设备的播放需求。

  • 点播服务:

除了直播外,RTSP 还适用于点播服务。用户可以通过 RTSP 协议向服务器请求特定的音视频资源,进行播放和观看。这种方式适用于视频库、在线教育、远程会议等场景。

  • 视频会议和远程教育:

RTSP 在视频会议和远程教育领域也具有一定的应用价值。它可以实现音视频数据的实时传输和控制,确保会议的顺利进行和远程教育的有效性。

  • 流媒体服务器与媒体播放器之间的通信:

RTSP 协议是流媒体服务器与媒体播放器之间的主要通信协议,用于建立和控制媒体会话。通过 RTSP 协议,媒体播放器可以向流媒体服务器请求媒体数据,实现音视频内容的播放。

MediaMTX是个开源的轻量级流媒体服务器,它的安装过程参见《FFmpeg开发实战:从零基础到短视频上线》一书的“10.2.2 FFmpeg向网络推流”。MediaMTX下载后的压缩包包括可执行程序mediamtx.exe和配置文件mediamtx.yml,看起来非常简约,但它提供的流媒体服务一点也没缩水。

以下操作均基于Ubantu和windows环境下

一、安装FFmpeg

sudo apt install ffmpeg

二、下载MediaMTX 压缩包

地址:Release v1.12.3 · bluenviron/mediamtx · GitHub


下载完后将压缩包上传至Ubantu服务器解压后运行
解压命令:tar -xvf mediamtx_v1.12.3_linux_arm64.tar.gz

./mediamtx &

显示这样就是服务器运行中

三、下载VLC软件

地址:官方下载:VLC media player,最棒的开源播放器 - VideoLAN

四、ffmpeg推流到服务器

ffmpeg \
  -f v4l2 -input_format mjpeg -video_size 640x480 -framerate 30 -i /dev/video74 \
  -c:v libx264 -preset ultrafast -tune zerolatency -x264-params keyint=30 \
  -profile:v baseline -bf 0 -g 30 -pix_fmt yuv420p \
  -f rtsp rtsp://localhost:8554/cam74

五、VLC拉流

windows打开VLC软件


六、运行效果