摘要:之前我們介紹了在線短視頻秒播優(yōu)化的方方面面,從服務(wù)器,部署接入,數(shù)據(jù)連接獲取,客戶端緩存,出幀策略,到視頻文件幀位置等。并不是文件必須的部分,但在我們常見的可在線播放的格式文件中例如中的文件確是重中之重。
之前我們介紹了在線短視頻秒播優(yōu)化的方方面面,從服務(wù)器,cdn部署接入,數(shù)據(jù)連接/獲取,客戶端緩存,出幀策略,到視頻文件I幀位置等。
今天從視頻文件格式的另外一個角度介紹,MP4文件的box排列順序是如何影響,在線短視頻的播放以及秒播優(yōu)化的。
MP4文件中的所有數(shù)據(jù)都裝在box中 (iso-14496-12/14)
(QuickTime中為atom)即mp4是由若干個box組成的
先簡單介紹幾個重要的box,以便諸位在后續(xù)學(xué)習(xí)時心中有數(shù):
1、 ftyp box,在文件的開始位置,描述的文件的版本、兼容協(xié)議等;
2、 moov box,這個box中不包含具體媒體數(shù)據(jù),但包含本文件中所有媒體數(shù)據(jù)的宏觀描述信息,moov box下有mvhd和trak box。
mvhd中記錄了創(chuàng)建時間、修改時間、時間度量標(biāo)尺、可播放時長等信息。
trak中的一系列子box描述了每個媒體軌道的具體信息。
3、 moof box,這個box是視頻分片的描述信息。并不是MP4文件必須的部分,但在我們常見的可在線播放的MP4格式文件中(例如Silverlight Smooth Streaming中的ismv文件)確是重中之重。
4、 mdat box,實(shí)際媒體數(shù)據(jù)。我們最終解碼播放的數(shù)據(jù)都在這里面。
5、 mfra box,一般在文件末尾,媒體的索引文件,可通過查詢直接定位所需時間點(diǎn)的媒體數(shù)據(jù)。
MP4文件的生成與解析,播放
兩個重要的box,moov and mdat
1.生成:先寫入mdat后寫入moov,因此絕大多數(shù)工具都會把moov數(shù)據(jù)放到mdat后邊,比如android的mp4writer,ffmpeg等工具
2.解析:解析播放的時候,先讀取moov,才能解析mdat
播放影響
1.本地播放,沒有影響,播放軟件可以先seek到末尾,讀取moov
2.在線播放
(1).需要http服務(wù)器支持seek
(2).服務(wù)器不支持seek,是個非常不友好的方案,要先把數(shù)據(jù)下載完成才能播放(無論下載到哪里,新服務(wù)器,本地內(nèi)存或存儲)
(3).(1)和(2)多多少少會引入延時,尤其(2),影響秒開
市面上短視頻mp4 box排列
抖音,火山等小視頻moov排在前邊,不用seek;
快手,360等moov排在后邊需要seek;
可以看出前者小視頻在這方面更專業(yè)。
在線短視頻MP4 moov box排在后邊的解決方案
1.修改文件把moov box排在前面,在MP4在設(shè)備上生成的時候或傳到服務(wù)器上后進(jìn)行
這個方法一勞永逸,還能提升秒開的速度
工具:
ffmpeg option faststart
qt-faststart
Thanks
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/11042.html
摘要:一套基于短視頻播放緩存庫地址。由于針對短視頻的播放不存在進(jìn)度拖拽或功能,所以每次下載到的數(shù)據(jù)可以直接通過緩存管理的相關(guān)方法直接到緩存文件末尾。 一套基于AVPLayer短視頻播放緩存庫ShortMediaCache GitHub地址。 主要特點(diǎn): 1.為短視頻量身設(shè)計(jì),接入方便,不侵占業(yè)務(wù) 2.邊播變緩存,緩存后直接播放 3.預(yù)加載功能,秒播下一條短視頻 4.自動緩存管理 原文地址...
閱讀 2771·2021-09-24 10:34
閱讀 1874·2021-09-22 10:02
閱讀 2262·2021-09-09 09:33
閱讀 1465·2021-08-13 15:02
閱讀 3276·2020-12-03 17:10
閱讀 1191·2019-08-30 15:44
閱讀 2152·2019-08-30 12:58
閱讀 3236·2019-08-26 13:40