2013-04-21 106 views
2

我想用FFMpeg編寫streamable(fragmented?)mp4文件。但是-f mp4格式的FFMpeg行爲的默認不是這個格式。如何使用ffmpeg創建流式音頻文件?

就拿這個AAC-LC MP4 test file其保存爲aac_lc_in.m4a和運行ffmpeg命令:

ffmpeg -y -i aac_lc_in.m4a -strict -2 -codec copy -f mp4 aac_lc_out.m4a 

結果是一個非流式傳輸的文件(把它放在服務器上,並試圖將其加載到你的瀏覽器,它僅在完全下載後纔開始)。在下載完成前可以啓動的原始文件不會發生這種情況。

我也使用mp4格式參數嘗試:

-movflags frag_keyframe+empty_moov 
-movflags faststart+frag_keyframe 
-movflags faststart+frag_keyframe+empty_moov 
-movflags faststart+rtphint+frag_keyframe 
-movflags rtphint+frag_keyframe 
-movflags rtphint+frag_keyframe -rtpflags latm 

但沒有任何幫助。即使輸出文件看起來與原始文件非常相似(文件格式框,示例表格框等),生成的文件也不可流式傳輸。

回答

1

我找到了解決方案。僅對mp4格式使用參數-movflags faststart。完整的命令是:

ffmpeg -i aac_lc_in.m4a -strict -2 -codec copy -f mp4 -movflags faststart aac_lc_out.m4a 

現在aac_lc_out.m4a文件是由瀏覽器,只要你點擊播放播放。

相關問題