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