2012-08-15 56 views
1

我有多個MP4流,我需要和使用的ffmpegMPEG-2 TS視頻音頻跳繩 - HTTP實時流

ffmpeg -i 0.mp4 -vcodec libx264 -sameq -acodec libfaac -fflags +genpts -coder 0 -f mpegts 0.ts 

的mp4文件的範圍從1到n轉換成MPEG-2 TS格式。將所有這些之後,我創建一個類似清單文件:

#EXTM3U 
#EXT-X-TARGETDURATION:4 
#EXT-X-VERSION:4 
#EXT-X-MEDIA-SEQUENCE:0 
#EXT-X-PLAYLIST-TYPE:EVENT 
#EXTINF:4.000, 
http://localhost/Nick2/0.ts 
#EXT-X-DISCONTINUITY 
#EXTINF:3.97, 
http://localhost/Nick2/1.ts 
#EXT-X-DISCONTINUITY 
#EXTINF:3.97, 
http://localhost/Nick2/2.ts 
#EXT-X-DISCONTINUITY 
#EXTINF:3.97, 
http://localhost/Nick2/3.ts 
#EXT-X-DISCONTINUITY 
#EXTINF:3.97, 
http://localhost/Nick2/4.ts 
#EXT-X-ENDLIST 

,因爲我試圖讓背靠背轉換的MP4的播放我已經添加#EXT-X-不連續性。問題是,如果我嘗試使用HTTP實時流式傳輸,在文件之間的音頻中有一個明顯的pop。但是,如果在QT中播放這些片段,這並不明顯。 有關我如何解決這個問題的任何想法?

回答

1

段之間的間隙或彈出是由解碼器被重置造成的。這基本上就是#EXT-X-DISCONTINUITY標籤的用途。

您可以刪除在同一時間線上製作流的不連續性。這將要求您連接源文件,然後對輸出進行編碼和分段。這裏是一些連接的文檔:http://www.ffmpeg.org/faq.html#How-can-I-concatenate-video-files_003f

0

所以,因爲我想做Http實時流式傳輸,所以我將這些文件進行了連接,然後重新分割,這使得音頻流行消失。雖然蘋果媒體流驗證仍然barfs,事情似乎很好...