利用ffmpeg修改MP4檔案頭資訊,使其支援流式載入及播放

來源:互聯網
上載者:User

最近在用AS3寫一個Flash的播放器,發現同樣都是H264編碼的mp4檔案,有的可以載入一點就開始播放,有的就必須全部載入完才能播。

用本地播放器(potplayer,暴風影音等)開啟查看,發現編碼什麼的也都是一樣的:




左邊這個必須是全部載入完成才能播,右邊這個是一載入就能播。

然後問了同事一下,說可能肯頭資訊的資料順序有關。這裡提供一個工具:mp4info.exe


附上下載地址:

連結:http://pan.baidu.com/s/1nvUcBZN 密碼:oys0

這個小工具可以查看mp4檔案的結構資訊:


要是視頻可以已載入就能播放,需要在視頻頭部插入metaData資訊,也就是上面的圖中的moov->udta->meta中的資料

如果這個結構在視頻檔案的末尾,或者根本沒有這些資料,那麼就只能等全部載入完之後才能播放。


下面是網上的一篇文章裡介紹的方法:


http://www.gxchina.com/edu/11216.html#627677-qzone-1-98393-01316438de54fba6421e9817746b2229


讓Flash播放器支援播放MP4檔案,並解決不能邊載入邊播的問題

一、讓Flash播放器支援MP4,需要將編碼轉換為h.264編碼的MP4。

二、解決邊載入邊播放的問題,將MP4中Metadata資訊移至檔案頭部,具體方法如下:

第1步:下載安裝ffmpeg

在windows下使用
下載地址: http://ffmpeg.zeranoe.com/builds/
點擊頁面上的Download FFmpeg git-738ebb4 64-bit Static(我是64位的),如果你是32位點擊 Download FFmpeg git-738ebb4 32-bit Static
下載下來解壓縮後我把檔案夾改成了ffmpeg放在D盤下面
運行三個檔案:
D:ffmpeg/bin/ffmpeg.exe
D:ffmpeg/bin/ffplay.exe
D:ffmpeg/bin/ffprobe.exe
這就成功安裝了


第2步:添加qt-faststart到ffmpeg/bin目錄

下載qt-faststart
下載地址:http://www.ckplayer.com/down/qt-faststart.rar
解壓將qt-faststart.exe放到d:ffmpeg/bin/ 裡面


第3步:執行修改metadata命令

在開始->運行裡輸入cmd,彈出命令視窗
按下面的命令進行操作
輸入d:按斷行符號
輸入cd ffmpeg/bin斷行符號,這樣就進入了ffmpeg的目錄
再運行命令:qt-faststart.exe d:/1.mp4 d:/2.mp4
說明:1.mp4為原mp4檔案,2.mp4為修改後儲存的檔案

最後出來的這個2.mp4就是成功的了,即可支援邊載入邊播放.


附上備份的下載地址:

連結:http://pan.baidu.com/s/1bp5u9ht 密碼:2sud


然後我按照這個方法轉了2個視頻,其中一個成功了,實現了一載入就播放,



另外一個轉了之後還是不行,然後我用上面的工具看了一下,發現:


雖然moov結構被提到了前面的位置,但是這裡面並沒有udta,也就沒有metaData,所以這個視頻無法邊載入邊播放,需要重新編碼補充metaData資訊才可以。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.