【问题标题】:gstreamer video tearing on multiple slices per frame over UDPgstreamer 视频通过 UDP 在每帧多个切片上撕裂
【发布时间】:2018-03-07 09:17:12
【问题描述】:

出于带宽原因,我修改了切片标头间距以在每个 I 帧中使用更多切片,这会导致接收端出现撕裂。

问题似乎是在解码单个切片时没有为 omxh264dec 缓冲整个 I 帧?这有点奇怪,因为 Tegra 解码器应该只在帧级别上工作..

也许这个问题可以通过在接收端正确同步 GstBuffer:s 来缓解?

复制案例:(Jetson TX2)

# Sender:
gst-launch-1.0 nvcamerasrc ! 'video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, format=(string)I420, framerate=(fraction)60/1' ! nvvidconv flip-method=0 ! 'video/x-raw(memory:NVMM), format=(string)I420' ! omxh264enc iframeinterval=1 bit-packetization=TRUE slice-header-spacing=450000 control-rate=2 preset-level=0 profile=1 qp-range=-1,-1:10,10:-1,-1 ! 'video/x-h264, stream-format=(string)byte-stream' ! h264parse ! rtph264pay mtu=60000 ! udpsink host=127.0.0.1 port=5000

# Reciever:
gst-launch-1.0 udpsrc port=5000 ! "application/x-rtp,encoding-name=H264,payload=96" ! rtph264depay ! h264parse ! omxh264dec ! videoconvert ! xvimagesink async=TRUE sync=TRUE

【问题讨论】:

  • 没有rtpjitterbuffer?也许利用rtpbin 便利元素?
  • rtpjitterbuffer 解决了这个问题!

标签: udp gstreamer h.264 rtp tegra


【解决方案1】:

正如 Florian Zwoch 建议的那样,一个 rtpjitterbuffer 可以解决这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多