HEVC支持苹果HLS的几个关键问题
盡管HEVC面臨了一些棘手的狀況,AV1和國產AVS2連續發起攻勢,蘋果加入AV1背后的AOM聯盟,AVS2發布了開源版xAVS2......但在蘋果的封閉系統內,HEVC+HLS仍然是當下最佳的音視頻方案。Jan Ozer撰文對HEVC在蘋果設備上支持實現進行了解讀,LiveVideoStack對本文進行了摘譯,點擊『閱讀原文』訪問英文原文。
文 / Jan Ozer
譯 / Ant,鴻蒙
2017年的蘋果WWDC大會上,蘋果宣布HEVC支持HLS,涉及了iOS、MacOS和tvOS等系統終端。但任何升級改進都是一個過程,這里整理了開發者最關心的問題。
1.哪些設備支持HEVC播放?
所有預裝或升級到iOS 11的蘋果終端。
2.HEVC回放耗電嗎?
在之前的文章中,我們測試發現,除了一些最老的設備存在明顯的耗電問題,大部分最新的產品使用HEVC回放幾乎不會對電池造成影響。
3.HEVC對我有什么好處?
節省帶寬:一般而言,在1080P分辨率下,HEVC相比于H.264有近50%的帶寬節省,很多OTT運營商的數據也證明了這一點。你可以通過查看服務器日志文件,來了解細節。
畫質體驗(Quality of Experience,QoE)提升:通過下表1可以看到,基于VMAF評測指標對比,VMAF得分相差無幾的情況下,HEVC的碼率比H.264減少50%左右。
表1:HEVC與H.264 QoE對比
VMAF得分由6個或更多的易觀察的畫質差異方面(JND)組成,JND代表這75%的觀眾能夠察覺到差異。
高動態范圍(HDR):HDR能帶來更接近真實世界的觀看體驗,HEVC支持HDR,但這還需要顯示設備的支持。
4.HEVC的成本有哪些?
編碼和存儲成本:很顯然,您必須將視頻編碼為HEVC格式。如果您自己進行編碼,則必須計算購買和維護額外編碼平臺的成本(如果需要)。如果您在云端進行編碼,則成本將因編碼梯度數量以及分辨率和數據速率而異。在大批量的情況下,每級梯度的編碼成本應該能夠控制在20美元/小時以下。但您可能還會因為其他目的使用H.264格式進行編碼,所以一般成本會高于上面測算的。在服務器上的存儲成本也可作如上的分析。
PPV和訂閱服務的使用費:如果您正在分發訂閱內容或PPV視頻,您可能已經在MPEG LA H.264專利池中為H.264使用付了費。HEVC有三個專利池,分別是MPEG LA、HEVC Advance和Velos Media。 詳情可見圖1,這是Divideon公司的Jonatan Samuelsson2017年11月在Streaming Tech Sweden演示中的圖片。
圖1:HEVC IP 所有者和專利池
在這三個專利池中,MPEG LA的許可條款不包括內容使用費,HEVC Advance在2018-2019年對每個用戶的收費是每月0.015美元。 Velos Media尚未公布任何建議版稅條款,但截至2017年11月28日,該網站的Q&A顯示:“由于涉及媒體內容,我們將花時間充分了解整個生態系統的動態構成,以確保我們的模型最好地支持HEVC技術的升級和采用。“因此,涉及內容的使用費問題可能也在考慮之中了。
對于左下角那些尚未加入專利池的公司,我們不好說他們是否計劃收取與內容相關的使用費。可以說,流媒體制作商還沒有跳上HEVC / HLS這趟列車的其中一個可能的原因,就是與內容相關的使用費收取問題還存在很多不確定性。
播放器開發成本:如果只是在iOS和MacOS的瀏覽器中回放,開發成本可以降到最低。但如果開發原生的App,那么成本會增加。
5.我應該了解哪些關鍵文檔?
你應該了解以下兩個來源的文檔:
HLS Authoring Specification for Apple Devices(https://developer.apple.com/library/content/documentation/General/Reference/HLSAuthoringSpec/index.html#//apple_ref/doc/uid/TP40016596-CH4-SW1)。這里有最全的HEVC的使用說明。
Go2SM(go2sm.com/hlsexamples),這里也是蘋果官方提供的HLS的demo,比官方文檔有更多細節。
6.我知道如何用H.264編碼,如果用HEVC還需要知道哪些?
如果您了解H.264編碼,那么您在使用HEVC時就比較得心應手了。 HEVC與之前的H.264和MPEG-2非常類似,大部分關于數據速率、關鍵幀間隔、比特率控制和其他常見配置選項都非常相似。與H.264一樣,HEVC具有不同的配置文件,其中Main和Main 10兩個是用于配置HLS的。顧名思義,Main10以8位或10位比特深度編碼,而Main僅為8位。 這兩種HLS都可以處理,但是要注意您生成的HDR輸出主要是Main 10格式的。請注意,如果您在HLS編碼方面是新手,那么您可以好好學習編寫規范中關于直播和VOD流比特率控制的詳細規則。
大多數編碼器在復雜性和質量之間會有一些折衷。例如,x265編解碼器使用與x264相同的預置(ultra fast到placebo),而MainConcept使用從1到30的多個層次。一旦你熟悉了編解碼器/編碼器的這些控制,就可以讓其達到比較理想的狀態。
7.HEVC的使用環境要求
這些要求大致分為三大類:
HEVC編碼文件:HLS編寫規范規定:“HEVC的Profile,Level和Tier必須小于或等于Main10的Profile,Level 5.0,High Tier。”表2顯示了the Wikipedia HEVC頁面 的級別和層級限制。 值得一提的是,雖然您可以以高達每秒128幀的幀速率對1080p視頻進行編碼,但4K分辨率卻限制在30 fps或更低。 請注意,HLS編寫規范禁止所有編解碼器的幀頻超過60 fps。
表2:HEVC編碼的級別和層級限制
編寫規范中另一個值得注意的要求是“HEVC視頻的容器格式必須是fMP4”,或者是分段的MP4文件,這意味著MPEG-2傳輸流不再使用了。這應該能夠簡化將未加密的HEVC編碼視頻傳遞到DASH和HLS客戶端,因為兩者都能夠部署相同的比特流。從短期來看,PlayReady和FairPlay加密方案之間的差異可能會妨礙加密的fMP4內容與DASH和HLS端點的互操作性,盡管微軟已經承諾在2018年PlayStation 4.0發布時解決這個硬件設備兼容性的問題。
HLS編寫規范包含兩個比特率梯度,一個用于視頻文件,另一個用于拖放和掃描的特技播放(trick play)文件。視頻比特率梯度如圖4所示。請注意,建議的比特率梯度表明2K和4K分辨率視頻的幀速率與源視頻相同,也與所有其他即使低至540p分辨率的視頻的幀速率相同。
但是,如果您使用的是60 fps 4K的視頻源,則前面提到的Level 5規則會將其限制在30 fps,如表2所示。不幸的是,蘋果公司沒有發布任何帶有2K / 4K視頻的HLS示例,這些示例可能會解決這種表面上的不一致性。在真正得到解決之前,我推薦使用保守路線,將2K和4K HEVC視頻限制在30 fps。
H.264編碼文件:如上所述,編寫規范要求一些視頻應該用H.264編碼,但沒提供進一步的指導。所以我們看了一下蘋果公司開發者網站上的混合HEVC / H.264梯度,看到蘋果公司為HEVC和HLS提供了完全獨立的編碼梯度(每個梯度都有9個梯級,正如表3所規定的那樣),兩種格式中支持的最高分辨率都是1080p。通過查看主M3U8 manifest清單文件,我們發現,播放器首先選擇編解碼器,然后選擇適當的梯級(請注意Apple播放列表對梯級(rungs)的稱呼是“齒輪”(gear))。
表3:蘋果公司建議的H.264,HEVC和HDR的編碼梯度
有趣的是,在蘋果公司發布其示例之前,對于HEVC / H.264梯度的最優構成有多種理論,包括一個為H.264提供較低質量梯級(rungs)的梯度,以及用于較高分辨率梯級的HEVC。在本次會議上,RealEyes的幾位與會者和兩位提供商表示,任何基于軟件的播放器都很難在H.264和HEVC播放之間順暢地切換,這更傾向于支持蘋果的方法。顯而易見的缺點是,它會使編碼成本加倍,并大幅增加存儲成本。
在其他成熟方法推出之前,我建議還是采用蘋果公司的方法。同時,建議下載Master M3U8文件,研究其中的編碼和演示細節。
支持I-Frame / Trick Play:蘋果公司在iOS 5中添加了對視頻在播放窗口或者作為縮略圖時快進和快退形式的特技播放(Trick Play)的支持,并在Apple Technical Note TN2288中詳細說明如何創建I-frame播放列表以支持此功能。在TN2288中,蘋果公司表示:“您不需要自己來開發內容支持快進和快退播放。你需要做的就是指定I-frame的位置就可以了。 I-frame或者叫Intra-frame,都是編碼不依賴于任何其他幀的已編碼視頻幀。要指定I-frames的位置,iOS 5引入了一個新的I-frame播放列表。“根據TN2288,您不需要為支持特技播放創建單獨的編碼文件,只需在現有的內容文件找到指向I-frame的播放列表即可。
在HLS編寫規范中,蘋果公司修改了這一建議,指出:“你應該每秒鐘有一幀”密集“的I-frame格式。這些是只包含I-frame的專用格式。或者您可以使用普通內容中的I-frame,但特技播放性能會隨著I-frame密度的提高而提高。
該規范還指出:“如果您為常規視頻提供相同空間分辨率的多個比特率,那么您應該從該組中用于最低比特率的相同的視頻源創建該分辨率的I-frame播放列表”。蘋果公司提供了表4所示的建議編碼梯度。如您所期望的那樣,蘋果公司的樣本演示實現了這些提議,在所有建議的分辨率下都為H.264和HEVC提供單獨的I-frame編碼文件。
表4:HLS編寫規范建議的特技播放編碼梯度
根據我的統計,在H.264和HEVC內容和I-frame-only文件之間,蘋果公司將源視頻編碼為28個單獨的文件,這可能會壓縮一些制作商的預算。對于4K制作商尤其如此。蘋果公司的梯度不包括2K / 4K的迭代,因為它們編碼成本最高,并且還要將總編碼需求擴大到31個文件,甚至HDR可能還需要17個。
在會議期間,這些要求引起了與會者的重視和討論,這里面包括許多多年來一直從事制作HLS演示文稿的參會者。大多數人表示,他們只提供了一到兩個特技播放文件,很少是包含所有分辨率的,并且大多數指向現有文件中的I-frame,而不是編碼單獨的I-frame-only文件。生產商將不得不做出自己的成本/收益分析來決定最佳的方案。
8.我應該嚴格遵守蘋果的建議參數嗎?
有時候,在編寫規范的最后一到兩次修訂的版本中,蘋果公司會針對per-title編碼實現指出“上述比特率是通過HLS交付的典型內容的初始編碼目標。我們建議您根據您的具體內容和編碼工作流程對其進行評估,然后進行相應的調整。“因此,蘋果公司并沒有規定固定的編碼梯度。
除了數據速率之外,如果你研究蘋果公司的梯度,你會注意到,對于2K以下的所有梯級,HEVC和H.264的分辨率基本相同。在會前會議上,一位技術精湛的與會者表示,對于HEVC,蘋果公司的梯度應該有完全不同的梯級,以解決高分辨率視頻需要更高效編解碼器的問題。一篇題為“蘋果公司錯了:HLS中的HEVC編碼規范”的文章對此作出了分析。
長話短說,文章提出HEVC的最佳梯度會去掉幾個較低分辨率的梯級,并迫使較高分辨率梯級降低位置。表5左邊顯示了蘋果公司建議的梯度,右邊是一個更為優化的梯度(為動畫電影“Sintel”定制),VMAF評分則評估兩種選擇的質量。如果您的目的是獲得最佳的體驗質量(QoE),那么使用Should Be梯度會比蘋果公司指定的Was梯度獲得更好的效果。
表5:左邊是蘋果公司的HEVC編碼梯度,右邊是推薦的編碼梯度
9.我的直播選項是什么?
直播雖然剛剛起步,但正在迅速推出,演示材料列出了Bitmovin,Elemental,Harmonic和Hybrik的編碼器,以及Wowza和Nimble Streamer的轉碼解決方案。 對于開發人員級別的制作者,MulticoreWare、MainConcept和Beamr都有SDK,并且講義詳細介紹了如何使用FFmpeg和Bento4產生視頻輸出。
10.編寫規范怎么看待高動態范圍(HDR)?
編寫規范指出,HDR視頻必須編碼為HDR10或DolbyVision,HDR編碼流應提供所有分辨率。如果您提供HDR內容,您還應該為主視頻文件和特技播放文件以及H.264內容提供SDR內容,從而將視頻流的單個文件數量提升至數十個之多。
請注意,蘋果公司還沒有提供一個帶有HDR的示例文件,留下了一些沒有回答的問題,比如所需的H.264內容是否也可以用作SDR內容,或者制作者是否也應該提供單獨的HEVC編碼的SDR流(和特技播放文件)。我猜測蘋果公司總是會通過提供最廣泛(和昂貴的)的方法來滿足編寫規范中規定的要求,讓開發者根據成本和所需的體驗質量選擇他們自己的配置。
HEVC在HLS中雖然還是前期,但相關的話題和技術將快速展開。希望這些問題和回答能幫助你快速上手。
WebRTCon 2018 7折火熱報名
WebRTCon希望與行業專家一同分享、探討當下技術熱點、行業最佳應用實踐。如果你擁有音視頻領域獨當一面的能力,歡迎申請成為講師,分享你的實踐和洞察,請聯系 speaker@livevideostack.com。
點擊閱讀原文了解大會詳情。
總結
以上是生活随笔為你收集整理的HEVC支持苹果HLS的几个关键问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于AVS2的图片容器——TPG:现状与
- 下一篇: 下一代编解码标准的抉择