MP4文件在線播放首屏慢的問題


MP4文件首屏慢的問題

背景:客戶錄制文件上傳到OSS后,打開文件比較慢,想要針對此進行優化

 

問題現象

訪問url后需要等待加載10s左右,才出現首屏頁面。使用各種軟件均能復現(chrome、ffplay、vlc)

已排除網絡原因

 

 

最終原因

研發大佬回復MP4文件moov在文件的末尾導致首屏慢

網上找的相應的解釋:

播放器在播放視頻文件時,之所以知道該怎么去解碼,以什么樣的時間間隔去顯示每一幀,是因為metadata記錄了當前視頻文件的圖像尺寸、編碼格式、幀率、碼率等等信息,播放器通過解析metadata得到了這些信息,才能控制視頻的顯示,也就是說播放器要先解析完metadata才會開始播放。

我們拿MP4作為例子來說明,不同容器的封裝在數據存儲上會存在一些差異,MP4視頻文件結構如下所示:

 

 

它對應的metadata信息稱為moov,mdat包含了音頻和視頻數據。MP4在實際制作中,moov有可能被放到了mdat后面,所以我們要保證制作出來的MP4的moov是放置在mdat前面的,這樣才可以實現邊下邊播功能。如果不是這樣,可以用FFmpeg的faststart命令(ffmpeg -i input.mp4 -movflags +faststart output.mp4)處理一下。 另外值得一提的是,如果moov比較大,播放器需要較多的時間去解析,所以在播放之前可能會出現較長的緩沖時間,特別是視頻文件較大的情況下,所以現在有些點播網站會采用每段mdat都有自己獨立的metadata的封裝方式,這樣就可實現漸進式下載和快速緩沖的效果。

 

使用的軟件

  • mp4info

網上有很多文章,但都是下載的軟件。

本人踩坑,大於2G的文件,在MP4info這個軟件中打開就會報錯。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM