【问题标题】:gstreamer pipeline to playback mp4 file on windowsgstreamer 管道在 Windows 上播放 mp4 文件
【发布时间】:2017-06-27 07:25:03
【问题描述】:

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

.\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)

我已经搜索了很多,但找不到我在管道中缺少什么元素以使其正常工作。

请提出一些解决方案。

【问题讨论】:

    标签: gstreamer gst-launch


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

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

    【讨论】:

    • 现在我得到错误:附加调试信息:./grammar.y(506): gst_parse_no_more_pads (): /GstPipeline:pipeline0/GstQTDemux:demux: failed delaying links some pad of GstQTDemux named demux to some名为 queue0 的 GstQueue 填充重新分配延迟...
    • 您确定该文件包含您要解码的流吗?试试gst-discoverer-1.0 mp4file
    • 谢谢弗洛里安。 gst-discoverer 告诉我 mp4 文件包含 AAC 音频。我使用了正确的音频解析器和解码器,现在可以正确播放文件。我使用了命令: .\gst-launch-1.0.exe filesrc location=C:\\Users\\naseeb\\Downloads\\Gabbroo.mp4 ! qtdemux 名称=demux 解复用器。 !队列 !不一样! avdec_aac!音频转换!音频重采样!自动音频接收器解复用器。 !队列 ! h264解析! avdec_h264 !自动视频转换!自动视频接收器
    • gst_parse_no_more_pads () 找到任何解决方法?
    猜你喜欢
    • 2014-02-09
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 2015-05-27
    • 1970-01-01
    • 1970-01-01
    • 2014-10-21
    • 1970-01-01
    相关资源
    最近更新 更多