2012-10-19 16 views
0

我试图用gstreamer重新复用quicktime电影(视频/ jpeg,音频/ mpeg)。用gstreamer remultiplexing一个流在PREROLLING停止

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),再复用完成(但不带音频)

,得到位MOR上下文:

我有一个QuickTime那里是音频和视频之间的严重的时间滞后 现在我想通过几毫秒到音频轨道移位,但没有做重新编码太多 像下面这样:。

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. 

任何想法如何我可以让我的管道PLAYing?

回答

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