使用Gstreamer进行RTSP推流
背景
以前使用 Gstreamer 推过RTP流,主要涉及到 rtph264pay 插件:

SH
gst-launch-1.0 videotestsrc ! video/x-raw,framerate=30/1 ! clockoverlay ! mpph264enc ! queue ! h264parse ! rtph264pay ! udpsink host=192.168.1.104 port=1234
使用vlc打开需要配置sdp文件,前面有提到过:https://notes.z-dd.online/2024/06/08/RTP%E8%A7%86%E9%A2%91%E6%B5%81%E7%9A%84SDP%E6%96%87%E4%BB%B6/

最近尝试了推RTSP流,要稍微麻烦点:

SH
# 1. 运行mediamtx流媒体服务器
./mediamtx &

# 2. 运行gstreamer命令
gst-launch-1.0 videotestsrc ! video/x-raw,framerate=30/1 ! clockoverlay text="Dev:0" time-format="%H:%M:%S" ! mpph264enc ! rtspclientsink protocols=udp latency=0 location=rtsp://127.0.0.1:8554/1

# 3. 使用VLC打开网络流:rtsp://运行上面命令的机器IP:8554/1
以上命令已在RK3588平台及X86平台已验证。

这里的视频输入源(videotestsrc测试源)可以换成其他的,比如v4l2的摄像头输入等;
H264编码器(RK平台的编码器插件mpph264enc)也可以换成其他的,比如基于 libx264 的通用编码器插件–x264enc。

使用Gstreamer进行RTSP推流必需的2个条件:

gstreamer的插件–rtspclientsink
MediaMTX
下面就分别来看看这个两个东东。

rtspclientsink插件
rtspclientsink插件:

。。。。。。

更多请关注:

使用Gstreamer进行RTSP推流_编码器


作者: Shell