Android下錄製的mp4視頻以http流媒體的形式播放不了

來源:互聯網
上載者:User

mp4基本知識: 
  mp4的檔案結構中主要包含moov 部分是視頻的中繼資料資訊和mdat部分是視頻的內容資訊 
  在http協議播放MP4的時候,需要moov這個atom,否則報錯退出,但是在以檔案形式播放的時候沒有這項判斷。 實際情況是播放mp4的時候必須首先獲得moov的資料,否則沒法解析mdat中的audio/video資料 對於http協議播放MP4的情況,是因為moov在mdat後面,也就是在檔案末尾,要播放這個檔案意味要先把mdat下載下來才能下載到moov,也就是說沒法直接獲得moov,所以不能通過http的方式線上播放這個檔案 並不是以本地檔案的形式就不判斷moov了,而是檔案形式下moov無論在檔案頭還是檔案尾部播放器都可以instant獲得moov的資料,而http的方式下不能隨意的seek到檔案尾部,所以也就無法立即獲得moov資料,當然無法播放了 . 

關於拖動播放的問題:拖動播放首先就是要找到位置,也就是seek position.seek是定位時間,但時間定位在可以拖動的flv或者mp4檔案中都在MetaData事件中傳遞了keyframes 給播放器,這個keyframes 就是時間和檔案資料頭定位的對應關係依據。下載資料已經緩衝資料的範圍是開始位置off1 和下載緩衝資料量 buffer來確定, 即範圍在 [off1,off1+butt]是已經緩衝的資料。還要注意的是這個定位精度是有限制的,最多到1秒精度。 
  查看mp4檔案結構資訊的工具,見附件 
  如果要將mp4檔案的末尾的moov atom資訊放在檔案的起始位置,可以使用qt-faststart  見附件 
   用法:qt-faststart 源檔案  轉換後的新檔案 
這樣轉換後的mp4檔案的就能支援http下的流媒體形式的播放了

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.