基于GStreamer的IP摄像头模拟器:RTSP传输MJPEG的Pipeline问题
解决GStreamer RTSP Server 模拟IP摄像头(JPEG序列)的Pipeline问题
修正后的Pipeline命令
./test-launch "multifilesrc location='./%d.jpeg' start-index=1 loop=true ! capsfilter caps='image/jpeg,framerate=12/1' ! jpegparse ! rtpjpegpay name=pay0 pt=96"
关键调整点说明
- 修正索引参数:将原命令中的
index=1改为start-index=1,multifilesrc的起始索引参数为start-index,原参数名错误会导致无法正确加载起始文件。 - 规范帧率传递:用
capsfilter单独设置帧率caps,确保下游元素能正确识别并遵循12fps的输出节奏,避免multifilesrc过快读取文件导致流不稳定。 - 文件命名要求:JPEG文件必须严格按照
1.jpeg、2.jpeg、3.jpeg...的连续数字命名,否则multifilesrc会因找不到后续文件中断流。
额外排查步骤
- 先脱离test-launch单独验证Pipeline可行性,确认文件读取和编码流程正常:
再用本地接收命令测试:gst-launch-1.0 multifilesrc location='./%d.jpeg' start-index=1 loop=true ! capsfilter caps='image/jpeg,framerate=12/1' ! jpegparse ! rtpjpegpay ! udpsink host=127.0.0.1 port=5000gst-launch-1.0 udpsrc port=5000 ! rtpjpegdepay ! jpegparse ! autovideosink - 检查GStreamer插件完整性,通过
gst-inspect-1.0 rtpjpegpay、gst-inspect-1.0 jpegparse确认所需插件已安装。
内容的提问来源于stack exchange,提问作者Stas Hanchev
相关产品推荐
相关产品推荐

