简体   繁体   English

警告:错误的管道:无法将customrc0链接到mpegtsmux0

[英]WARNING: erroneous pipeline: could not link customsrc0 to mpegtsmux0

I cannot create a pipeline with gstreamer and I don't know how I can debug it further. 我无法使用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

The capabilities of customsrc and mpegtsmux are matching. Customrc和mpegtsmux的功能是匹配的。 But obviously something is missing. 但是显然有些东西丢失了。

customsrc 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 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 }

What else can I do to figure out the mismatch? 我还能采取什么措施找出不匹配的地方?

Caps are for filtering and defining how the pipeline runs--they don't cause any transformation by themselves. 上限用于过滤和定义管道的运行方式-它们本身不会引起任何转换。 For example, if you have two elements with these caps on their source and sink pads: 例如,如果您有两个元素的源极和漏极焊盘上带有这些上限:

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

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

And you place this caps filter between them: 然后将这些上限过滤器放置在它们之间:

video/x-h264,alignment=nal

You'll cause the pipeline to use nal alignment there. 您将使管道在此处使用最终对齐。 If your elements have these caps on their pads: 如果您的元素在其压垫上有以下限制:

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

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

You need to add an element that will convert video/x-h264,stream-format=avc into video/x-h264,stream-format=byte-stream. 您需要添加将video / x-h264,stream-format = avc转换为video / x-h264,stream-format = byte-stream的元素。 h264parse will do this because it takes any video/x-h264 content on its sink pad, and outputs whatever stream-format and alignments are needed for its downstream source: h264parse之所以会这样做,是因为它在其接收盘上获取了任何video / 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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM