警告:错误的管道:无法 link customsrc0 到 mpegtsmux0
WARNING: erroneous pipeline: could not link customsrc0 to mpegtsmux0
我无法使用 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 的功能匹配。但显然少了点什么。
海关
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 }
然后将这个大写过滤器放在它们之间:
video/x-h264,alignment=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 将执行此操作,因为它在其接收器垫上获取任何 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
我无法使用 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 的功能匹配。但显然少了点什么。
海关
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 }
然后将这个大写过滤器放在它们之间:
video/x-h264,alignment=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 将执行此操作,因为它在其接收器垫上获取任何 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