我是多媒体处理的新手,我正在尝试创建一个动态管道,该管道获取此视频样本(https://download.samplelib.com/mp4/sample-5s.mp4),对其进行解复用,将音频转换为Opus编解码器,然后将视频转换为av 1编解码器并将它们复用在一起。
下面是我创建的一个pipeline:
gst-launch-1.0 -v filesrc location=input.mp4 \
! qtdemux name=demux matroskamux name=mux \
! filesink location=output.mkv demux.audio_0 \
! queue ! decodebin ! audioconvert ! audioresample ! opusenc ! mux. demux.video_0 \
! queue ! decodebin ! videoconvert ! av1enc ! mux.
字符串
它使用opusenc将音频转换为Opus,使用av 1 enc将视频转换为av 1,然后将它们复用。然而,由于某种原因,当视频处理了75%时,管道突然永远停止,没有任何进一步的进展(该过程运行了8个小时,所以我认为我确实可以声称它永远运行)。
有人能告诉我为什么会发生这种情况吗?我能/应该做些什么?我用的是最新版本的Ubuntu 22.04和最新版本的Gstreamer。
1条答案
按热度按时间myzjeezk1#
av1enc
的默认延迟是多少?可能是队列太小而无法补偿延迟。也许lag-in-frames
属性在这里有影响。或者增加队列大小。