0

我正在尝试使用 gstreamer 重新复用快速电影(视频/jpeg、音频/mpeg)。

gst-launch filesrc location="${INFILE}" \
 ! qtdemux name=demux \
 ! queue \
 ! qtmux name=mux \
 ! filesink location="${OUTFILE}" \
 demux.audio_00 \
 ! queue \
 ! mux.audio_0

不幸的是,这条管道没有启动(它启动了 PREROLLING 然后等待)。如果我省略了音频流(或为音频流指定一个不存在的接收器垫(例如mux.audio.0),则完成重新多路复用(但没有音频)

给出更多的上下文:

我有一个快速时间,音频和视频之间存在严重的时滞。现在我想将音轨移动几毫秒,但不做太多的重新编码。类似于以下内容:

gst-launch filesrc location="${INFILE}" \
 ! qtdemux name=demux \
 ! videorate force-fps=25 \
 ! qtmux name=mux \
 ! filesink location="${OUTFILE}" \
 demux.audio_00 \
 ! queue \
 ! mad \
 ! audioconvert \
 ! ladspa-delay-n Delay-Time=322 \
 ! audioconvert \
 ! lame bitrate=224 \
 ! mux.

有什么想法可以让我的管道播放吗?

4

1 回答 1

0

最后我发现我的管道停滞的原因是上限谈判问题。为预期从分路器出来的每个流指定上限使其工作:

gst-launch filesrc location="${INFILE}" \
 ! qtdemux name=demux \
 ! queue \
 !  video/jpeg \
 ! qtmux name=mux \
 ! filesink location="${OUTFILE}" \
 demux.audio_00 \
 ! queue \
 !  audio/mpeg \
 ! mux.audio_0
于 2012-10-22T09:16:21.637 回答