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

请求优化i.MX6至X86笔记本的1080p30 MJPG低延迟流传输Pipeline-2

问题根源

你的Pipeline-2性能瓶颈在于没有直接利用摄像头原生输出的MJPG流,而是先抓取video/x-raw(YUV格式),再通过jpegenc做软件编码。i.MX6的CPU算力不足以实时完成1080p@30的JPEG编码,导致帧率被压到6fps,和摄像头YUV模式的上限一致。

优化后的GStreamer Pipeline

发送端(i.MX6开发板)

直接从摄像头获取原生MJPG流,跳过软件编码步骤,节省CPU资源:

gst-launch-1.0 v4l2src device=/dev/video0 \
    ! image/jpeg,width=1920,height=1080,framerate=30/1 \
    ! rtpjpegpay \
    ! udpsink host=192.168.0.103 port=5000 sync=false async=false
  • 关键调整:用image/jpeg caps直接匹配摄像头的MJPG输出,移除video/x-raw、jpegenc、jpegparse(摄像头输出的MJPG流已符合rtpjpegpay的输入要求)
  • 添加sync=false async=false进一步降低发送端延迟

接收端(X86笔记本)

简化Pipeline并优化延迟:

gst-launch-1.0 udpsrc port=5000 buffer-size=90000 \
    ! application/x-rtp,encoding-name=JPEG,payload=26,clock-rate=90000 \
    ! rtpjpegdepay \
    ! jpegdec \
    ! videoconvert \
    ! fpsdisplaysink sync=false async=false text-overlay=true
  • 移除不必要的jpegparse和queue(rtpjpegdepay输出的JPEG流可直接被jpegdec处理)
  • 保留sync=false async=false消除时钟同步带来的延迟
  • text-overlay=true方便实时查看帧率
额外优化建议
  • 检查WiFi信号强度:确保i.MX6和X86笔记本在WiFi高信号区域,避免丢包导致帧率下降
  • 调整UDP缓冲区:如果出现丢包,可尝试增大发送端udpsink的buffer-size参数(如buffer-size=131072)
  • 硬件加速解码:X86端如果支持,可替换jpegdec为硬件加速解码器(如nvjpegdec for NVIDIA,vaapijpegdec for Intel核显),进一步降低CPU占用

内容的提问来源于stack exchange,提问作者Kailas Kharse

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 12:51:36