1

我目前正在使用主要使用AWS技術的簡單的基於VOD瀏覽器的服務。 HLS將被用作流式協議,它由Elastic Transcoder支持。HLS,AWS彈性編碼器和自適應流媒體

目前,源材料是720p(1280x720),這也是我想向所有可以處理它的設備展示的分辨率。我希望這些視頻可以在臺式機,iPad和大多數智能手機上使用。作爲播放器,我正在使用ViBlast和videojs。

我有以下問題:

  • 的M3U8播放列表允許指定多個流。每個解決方案應該擁有自己的播放列表(不同比特率的不同源流),還是我可以將所有內容放在一個播放列表中(因此一個播放列表可以提供不同的分辨率和比特率)。
  • 似乎臺式機和最新的平板電腦可以顯示1280x720,我認爲可以使用相同的播放列表。我只需要指定比特率。但是,手機的最佳分辨率是多少?似乎每個設備都有其他尺寸(在這裏查看Android)。
  • 我應該爲每個設備使用哪一比特率?我正在做一些研究,但似乎每篇文章對「最佳」設置都有不同的建議,但從未解釋他們如何得到這些數字。
  • 如果我使用包含不同分辨率的不同來源的播放列表,播放列表中的順序是否重要?我讀過最低比特率應該首先列出的地方,但這是否也適用於分辨率?或者播放器是否自動選擇最符合屏幕的流?

我正在尋找一個「足夠好」的解決方案,以適應大多數設備。

回答

2

希望這會有所幫助。

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

enter image description here

我應該使用哪種碼率爲每個設備?我正在做一些研究, ,但它似乎每篇文章都有不同的建議,爲 「最佳」設置,但從來沒有解釋他們如何得到這些數字。

與分辨率相同的答案。不要關注實際的設備。建立比特率/分辨率變體的梯子,其允許設備來選擇最合適的基於可用帶寬,電池壽命,處理能力等

如果使用含有具有不同分辨率 不同來源的播放列表,播放列表中的順序是否重要?我已閱讀 某處最低比特率應該首先列出,但是這種 也適用於分辨率?或者播放器是否自動選取最符合屏幕的 流?

每個發佈商或製造商都可能以不同的方式構建他們的播放器。但這是蘋果在TN2224推薦的。 「

」第一個比特率應該是大多數客戶端可以承受的比特率 主播放列表中的第一個條目將在流初始化時播放,並用作測試的一部分以確定哪個流最適合。其他流的順序是無關緊要的,因此,播放列表中的第一個比特率應該是大多數客戶端可以承受的比特率。「

希望有所幫助。

Ian