使用 UVC 相机从 ARM 使用 UDP 到 X86 的 USB 相机流式传输 MJPEG

问题描述 投票:0回答:1

我正在使用 i.Mx6 双处理器连接 USB 摄像头(UVC 摄像头)支持 1080p 30FPS 使用 UDP 端口流式传输到 X86 平台。

  1. 我想使用 1080p 以最小延迟实现流式传输。
  2. 我想在不使用任何额外的编码/解码的情况下使用从 i.MX6 到 X86 的 MJPEG,以验证相机实际上支持使用 1080p 的 30FPS。

任何人都可以帮助我使用如何实现这一目标。

对于流式传输 1080p,我正在使用下面的管道

发件人: gst-launch-1.0 v4l2src device=/dev/video0 !图片/jpeg,宽度=1920,高度=1080,帧率=30/1! jpeg解码器!视频比例!视频转换!队列 ! imxvpuenc_h264 比特率=6000 gop-size=60! rtph264支付! udpsink host=192.168.0.108 port=5000 sync=false

接收器: gst-launch-1.0 -vc udpsrc port=5000 !应用程序/x-rtp,有效负载=96! rtp抖动缓冲区! rtph264depay ! avdec_h264 ! fpsdisplaysink sync=false async=false

** 如何计算 UVC 相机的输出帧,使其在不使用任何额外的编码/解码的情况下将 MJPEG 从 i.MX6 流式传输到 X86。 **

video-streaming gstreamer frame-rate mjpeg usb-camera
1个回答
0
投票

如果你的相机是MJPG,你不需要解码和编码成H264。 H264 使用 P 和 B 帧的时间冗余,因此与每个帧都可以单独编码的 MJPG 相比,这会增加延迟。

发件人:

gst-launch-1.0 v4l2src device=/dev/video0 ! image/jpeg, width=1920, height=1080, framerate=30/1 ! rtpjpegpay ! queue ! udpsink host=192.168.0.108 port=5000 

接收者:

gst-launch-1.0 udpsrc port=5000 ! application/x-rtp,encoding-name=JPEG,clock-rate=90000,payload=26 ! queue ! rtpjpegdepay ! decodebin ! fpsdisplaysink video-sink=fakesink text-overlay=0 -v
© www.soinside.com 2019 - 2024. All rights reserved.