Gstreamer 警告:错误管道:无法将customsrc0链接到MPEGTSUMX0

Gstreamer 警告:错误管道:无法将customsrc0链接到MPEGTSUMX0,gstreamer,gst-launch,Gstreamer,Gst Launch,我无法使用gstreamer创建管道,我不知道如何进一步调试它 gst-launch-1.0 --gst-debug=GST_CAPS:4 -v -e customsrc num-buffers=1000 ! video/x-h264,width=600,height=600,framerate=1/12,stream-format=byte-stream ! mpegtsmux ! udpsink host=10.92.7.2 port=5000 WARNING: erroneous pipe

我无法使用gstreamer创建管道,我不知道如何进一步调试它

gst-launch-1.0 --gst-debug=GST_CAPS:4 -v -e customsrc num-buffers=1000 ! video/x-h264,width=600,height=600,framerate=1/12,stream-format=byte-stream ! mpegtsmux ! udpsink host=10.92.7.2 port=5000
WARNING: erroneous pipeline: could not link customsrc0 to mpegtsmux0
customsrc和mpegtsmux的功能是匹配的。但很明显,我们缺少了一些东西

customsrc

Pad Templates:
  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-h264
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 1/2147483647, 2147483647/1 ]
          stream-format: avc
              alignment: au
mpegtsmux

Pad Templates:
  SINK template: 'sink_%d'
    Availability: On request
      Has request_new_pad() function: 0x76beca8c
    Capabilities:
      video/x-h264
          stream-format: byte-stream
              alignment: { au, nal }

我还能做些什么来找出不匹配的地方呢?

Caps用于过滤和定义管道的运行方式——它们本身不会导致任何转换。例如,如果有两个元素的源焊盘和汇焊盘上都有这些封口:

  video/x-h264
      stream-format: byte-stream
          alignment: { au, nal }

  video/x-h264
      stream-format: byte-stream
          alignment: { au, nal }
然后将此caps过滤器放置在它们之间:

video/x-h264,alignment=nal
您将使管道在那里使用nal对齐。如果元素的焊盘上有这些盖子:

  video/x-h264
      stream-format: avc
          alignment: { au, nal }

  video/x-h264
      stream-format: byte-stream
          alignment: { au, nal }
您需要添加一个元素,将video/x-h264,stream format=avc转换为video/x-h264,stream format=byte stream。h264parse将执行此操作,因为它在其接收器板上接收任何视频/x-h264内容,并输出其下游源所需的任何流格式和对齐方式:

  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-h264
                 parsed: true
          stream-format: { avc, avc3, byte-stream }
              alignment: { au, nal }

  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-h264

它们有不同的流格式(avc!=字节流)。可能在它们之间使用h264解析元素?难道
视频/x-h264,宽度=600,高度=600,帧速率=1/12,流格式=字节流
过滤器不足以将格式转换为字节流吗?