希望這會有所幫助。
m3u8播放列表允許指定多個流。每個 分辨率是否都有自己的播放列表(不同比特率的不同碼流),或者我可以將所有內容放在一個播放列表中(因此一個 播放列表可以提供不同的分辨率和比特率)。
作爲參考,這裏是蘋果的'技術說明TN2224'在這個主題上,這是一個很好的指導下面的信息。 https://developer.apple.com/library/content/technotes/tn2224/_index.html
簡答:每個分辨率應該有它自己的變體播放列表。
通常有一個主播放列表引用變體播放列表(aka renditions)。變體播放列表是同一視頻的不同質量流,其比特率和分辨率各不相同。但是每個變體只包含一個比特率級別。樣本主播放列表:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=4648000,RESOLUTION=3840x2160
4648k/stream.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2670000,RESOLUTION=1920x1080
2670k/stream.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1823000,RESOLUTION=1280x720
1823k/stream.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=975000,RESOLUTION=854x480
975k/stream.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=491000,RESOLUTION=640x360
491k/stream.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=186000,RESOLUTION=256x144
186k/stream.m3u8
(TN2224) 「的比特率在使用BANDWIDTH屬性的EXT-X-STREAM-INF標籤中指定」。並且每個下行帶寬(比特率)級別都具有相應的較低分辨率,因爲可用數據較少,通常預計可在較小的移動屏幕上查看。
似乎臺式機和最新的平板電腦可以顯示1280x720,我假設 可以使用相同的播放列表。我只需要指定比特率。 但是,手機的最佳分辨率是多少?似乎每個 設備有其他維度(在這裏看Android)。
分辨率和比特率放在一起。以186K比特率編碼的流(非常低)沒有足夠的數據填充1280x720屏幕。但是單元網絡上的移動設備可能無法下載高比特率。所以你需要幾個變體選項,每個都有適當的分辨率和比特率。
不要專注於特定的設備,否則你永遠不會完成。使用常見的16:9寬高比構建比特率/分辨率變體的階梯。例如。 1280x720,1024x576,640x360,...
雖然有幾件事情需要考慮。比特率,你已經在考慮分辨率。但是這些視頻是使用H.264編碼的嗎?如果是這樣,你應該考慮簡介水平。這裏有一篇關於這個話題的好文章:http://www.streamingmedia.com/Articles/ReadArticle.aspx?ArticleID=94216&PageNum=1。
我應該使用哪種碼率爲每個設備?我正在做一些研究, ,但它似乎每篇文章都有不同的建議,爲 「最佳」設置,但從來沒有解釋他們如何得到這些數字。
與分辨率相同的答案。不要關注實際的設備。建立比特率/分辨率變體的梯子,其允許設備來選擇最合適的基於可用帶寬,電池壽命,處理能力等
如果使用含有具有不同分辨率 不同來源的播放列表,播放列表中的順序是否重要?我已閱讀 某處最低比特率應該首先列出,但是這種 也適用於分辨率?或者播放器是否自動選取最符合屏幕的 流?
每個發佈商或製造商都可能以不同的方式構建他們的播放器。但這是蘋果在TN2224推薦的。 「
」第一個比特率應該是大多數客戶端可以承受的比特率 主播放列表中的第一個條目將在流初始化時播放,並用作測試的一部分以確定哪個流最適合。其他流的順序是無關緊要的,因此,播放列表中的第一個比特率應該是大多數客戶端可以承受的比特率。「
希望有所幫助。
Ian