當前很多工具能提供mp4格式的轉換輸出,但有時輸出的格式拿到網絡上後發現需要完整下載後才能開始播放,而不能像網上的很多視頻那樣一開始就能播放(邊下邊放),造成這個問題的原因是一些描述mp4文件信息的moov atom
元數據默認放置在了視頻文件的最後,而所有的播放器(包括獨立的、網絡化的——如瀏覽器)都需要這些信息來正確構建播放(比如視頻分辨率到底是多少,視頻到底有多長......)由此需要把這些信息想辦法移動到mp4文件的前部,這樣讀取到這些信息後客戶端播放器就可以搭起播放環境,後續只需要播放數據即可。能完成這項工作的工具有很多,這裏介紹qt-faststart
這個小程序。
qt-faststart
簡介
qt-faststart是一個由Mike Melanson ([email protected])寫的開源程序,是一個命令行工具。你可能可以在很多地方找到它的源碼,我一般是在FFmpeg
的源碼中拿,它通常放在FFmpeg
源碼的tools
目錄下,比如github
倉庫中的位置爲https://github.com/FFmpeg/FFmpeg/tree/master/tools。該程序只有一個源碼文件,很小(不到13KB)。
qt-faststart
編譯與使用
要使用它需要先編譯,這個程序能利用大多數編譯工具實現編譯,因爲我一般在linux
下使用,所以直接make tools/qt-faststart.c
即可在tools
目錄下產生出名爲qt-faststart
的可執行文件,然後把編譯輸出結果放置到系統搜索路徑中即可以qt-faststart
來進行調用使用了。
qt-faststart
的使用十分簡單,其調用格式爲
qt-faststart <inMp4FilePath> <outMp4FilePath>
<inMp4FilePath>
:表示調整前的mp4文件路徑<outMp4FilePath>
:表示調整後的輸出mp4文件路徑
mp4文件路徑可以是絕對或者相對路徑。
補充說明:
- mp4文件也可以替換爲mov文件,因爲這個工具其實最開始是爲QuickTime格式視頻文件編寫的
- mp4/mov 文件中的
moov atom
數據必須是非壓縮的才能利用這個工具。
轉自:https://blog.csdn.net/charleslei/article/details/53649467