0

视频文件与以下管道完美配合。

.\gst-launch-1.0.exe playbin uri=file:///C:\\Users\\naseeb\\Downloads\\Gabbroo.mp4

但是,我想自己使用解复用器、解码器和接收器创建管道。我在管道下面创建

.\gst-launch-1.0.exe filesrc location=C:\\Users\\naseeb\\Downloads\\Gabbroo.mp4 ! qtdemux name=demux demux. ! queue ! mad ! audioconvert ! audioresample ! autoaudiosink demux. ! queue ! avdec_h264  ! autovideosink

但它不起作用并且失败并出现以下错误:

警告:来自元素 /GstPipeline:pipeline0/GstQTDemux:demux:延迟链接 > 失败。附加调试信息:./grammar.y(506): gst_parse_no_more_pads (): /GstPipeline:pipeline0/GstQTDemux:demux: 延迟将名为 demux 的 GstQTDemux 的某个焊盘链接到名为 queue0 的 GstQueue 的某个焊盘重新分配延迟...重新分配延迟。 .. 错误:来自元素 /GstPipeline:pipeline0/GstQTDemux:demux:内部数据流错误。附加调试信息: qtdemux.c(5850): gst_qtdemux_loop (): /GstPipeline:pipeline0/GstQTDemux:demux: 流停止,原因未协商 (-4)

我进行了很多搜索,但找不到我在管道中缺少的元素以使其正常工作。

请提出一些解决方案。

4

1 回答 1

1
  1. 您可能需要在解码器之前使用音频和视频解析器。所以尝试mpegaudioparse ! madh264parse ! avdec_h264

  2. 您很可能需要解码器和视频接收器之间的视频转换器。试试autovideoconvert ! autovideosink

于 2017-06-27T08:32:06.883 回答