2012-10-19 17 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