You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派CM4下V4L2设置MJPG供GStreamer UDP推流格式回退问题求助

问题根因

你当前管线的核心错误是对GStreamer媒体类型的误用:

  • MJPG属于压缩图像格式,对应的GStreamer caps媒体类型为image/jpeg
  • video/x-raw是GStreamer定义的未压缩原始像素格式类,仅支持YUY2、NV12、RGB这类非压缩格式,你在该类型下强制指定pixelformat=MJPG属于无效参数,GStreamer会自动忽略并 fallback 到采集设备支持的raw格式最高配置,也就是1920x1080@5fps的YUYV格式,这就是你帧率上不去、格式强制回退的原因。
修复后的管线

无需提前通过v4l2-ctl手动设置格式,v4l2src会自动根据caps配置采集设备参数,直接使用以下管线即可:

gst-launch-1.0 -v v4l2src device=/dev/video0  ! \
"image/jpeg, width=1920, height=1080, framerate=60/1" ! \
rndbuffersize max=65000 ! \
udpsink host=127.0.0.1 port=1234

运行后查看输出的caps参数,不会再出现format=YUY2的字段,格式会正确识别为MJPG,帧率也会达到你设置的数值。

推流优化建议

如果是推流到远端客户端播放,建议添加rtpjpegpay元素将MJPG帧封装为标准RTP包,降低客户端解码适配成本,参考管线:

gst-launch-1.0 -v v4l2src device=/dev/video0  ! \
"image/jpeg, width=1920, height=1080, framerate=30/1" ! \
rtpjpegpay ! \
udpsink host=替换为远端客户端IP port=1234

内容的提问来源于stack exchange,提问作者Come Raczy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 12:57:01