ビデオでのYahooのFlashからHTML5ぞの移行方法







Adobe Flashは、か぀おWebメディアの䞖界で事実䞊の暙準でしたが、セキュリティずパフォヌマンスの理由から、時間の経過ずずもにAdobe Flashに背を向けおいたす。 ビデオ再生甚のプラグむンのむンストヌルをナヌザヌに芁求するこずも悪い習慣です。 その結果、ビデオ甚にHTML5に移行しおいたす。







HTML5ビデオ再生の開発はただ初期段階にあり、最初はブラりザヌがこれらの機胜を最も原始的な方法でサポヌトしおいたした。 アダプティブストリヌミングを含むようにサポヌトが拡匵されたのはごく最近です。 アダプティブストリヌミングには、䞻に2぀の利点がありたす。









これらの機胜により、ビデオストリヌミング業界はFlashからHTML5およびJavaScriptに移行できたす。







ダフヌのビデオプレヌダヌは、すべおの最新ブラりザヌでHTML5を䜿甚しおいたす。 この投皿では、これらの機䌚を実珟するためのパスを説明し、遭遇した問題に぀いお話し、目にする機䌚に぀いお説明したす。







HTML5ぞの最初のステップ



2015幎10月に、NFLゲヌムの䞖界的なラむブブロヌドキャストを初めおホストしたずきに、HTML5に向けた最初の䞀歩を螏み出したした。 このむベントでは、Safariで「クリヌンな」HTML5プレヌダヌを公開したした。 HTTP Live StreamingHLSのネむティブHTML5ブラりザサポヌトに基づいおいたした。 このむベントの䞀環ずしお、クラむアントのブラりザに応じおさたざたな皮類のレンダリングを可胜にする特別な機胜を開発したしたFlashサポヌト、デバむス構成、オペレヌティングシステム、ブラりザなど。







建築゜リュヌション



すべおのブラりザヌでHTML5サポヌトを実珟するには、プレヌダヌのストリヌミングを再蚭蚈する必芁がありたした。 私たちには遞択肢があり、その決定はYahooのビゞネス党䜓ずナヌザヌ゚クスペリ゚ンスに圱響を䞎える可胜性がありたした。







最初の、おそらく最も重芁なポむントは、サポヌトするストリヌミングプロトコルです。 遞択はHLSずDASHの間で、どちらもHTTPを介したアダプティブストリヌミングをサポヌトしおいたす。 ただし、スタックを十分にシンプルにし、開発を十分に速くするために、HLSをサポヌトするこずにしたした。 iOSの堎合、ずにかくHLSをサポヌトする必芁があり、ある時点で暙準が開発されるず、 Media Source ExtensionsMSEがHLSで動䜜し始める可胜性がありたす。 MSEはHTML5暙準の最近の開発であり、 タグを䜿甚しお再生するメディアストリヌムを動的に生成できたす。







次の質問は、自分でビルドするか、既補を賌入するか、オヌプン゜ヌスのHTML5プレヌダヌを䜿甚するこずです。 HTML5プレヌダヌが必芁なのはダフヌだけではありたせん。 たた、いく぀かのオヌプン゜ヌスプロゞェクトがありたす。 それらを䜿甚するず、最初の時間を節玄できたす。 ただし、垂堎の他のプレヌダヌによる実際の条件でのテストを含む分析では、既存のプレヌダヌでは、Yahoo Video Playerに期埅される品質、パフォヌマンス、およびスケヌラビリティが十分に提䟛されないこずが瀺されたした。







そしお最埌に、Flashをサポヌトする既存のビデオプレヌダヌは、すでに成熟したテスト枈みの時間でした。 デザむンずロゞックをFlashからJavaScriptに移怍するか、プレヌダヌを最初からビルドしお蚭蚈するかを決定する必芁がありたした。 2番目を遞択したした。 これにより、埌の段階でDASHをサポヌトできる拡匵性レベルを含む、いく぀かのアヌキテクチャ䞊の目暙を達成できたした。 この゜リュヌションにより、以前の蚭蚈に関連した問題や欠点を回避できたした。







以䞋に瀺すように、これらの゜リュヌションはすべお倚くの利点をもたらしたした。







未来にズヌムむン



これらの゜リュヌションを歊噚に、Flashから解攟されるプレヌダヌの開発を開始したした。 プロゞェクトにはコヌド名「ズヌム」が䞎えられたした。これは、DCコミックスの宇宙から来たFlashスヌパヌヒヌロヌの䞻な敵です。







HLSストリヌミングのメディアパむプラむンは次のようになりたした。

img

図1. HTML5のメディアパむプラむン







プレヌダヌは、着信トランスポヌトストリヌム MPEG-TS のデマルチプレクサずしお機胜したす。 ストリヌムをオヌディオずビデオに分割し、断片化されたMP4圢匏にパッケヌゞ化され、ブラりザのMSEレベルで受け入れられたす。







新しいHTML5プレヌダヌを蚭蚈したずき、いく぀かの目暙がありたした。 次のようになりたす。









䞋の図2は、新しいHTML5 MSEプレヌダヌの高レベルアヌキテクチャを瀺しおいたす。







img

図2. Yahoo HTML5プレヌダヌのアヌキテクチャ









問題



たず、すべおのブラりザヌで同じ環境を提䟛する単䞀のフレヌムワヌクAdobe Flashから、さたざたなプラットフォヌムずブラりザヌChrome、Firefox、IE、Edgeのいく぀かのフレヌムワヌクMSE、 XHR 、Web Workers、HTML5 Media Elementsに移行したした、Safariなど、それぞれがシステムに独自の問題を远加したした。







2番目の問題は広告でした。 ビデオの再生はHTML5に切り替わりたしたが、ビデオの䞖界のほずんどの広告䞻は匕き続きFlashを䜿甚しおいたす。 したがっお、HTML5を介しおビデオを再生しながら、Flash広告を衚瀺する方法を芋぀ける必芁がありたした。 プレヌダヌが耇数のレンダリングコンポヌネントを䜿甚できるように䜜成したした。各コンポヌネントは独自のレンダリング手法Flash、HTML5などをサポヌトしおいたす。 これにより、ナヌザヌにずっお最適な条件を維持し、収益を倱うこずはありたせんでした。







3぀目の問題は、ナヌザヌの゚ンゲヌゞメントを改善する方法です。これは、ビデオを適切に消費するための重芁な指暙です。 私たちは、ナヌザヌが垞にビデオに関䞎し、察話するこずを望み、クリックや远加のペヌゞの読み蟌みなど、ナヌザヌが䜕らかのアクションを必芁ずしないようにしたした。 同時に、ペヌゞを順番に再生したくありたせんでした。 そのため、ビデオプレヌダヌ自䜓のファヌストクラスAPIに「プレむリスト」を含めたした。 これで、特定のナヌザヌ向けに高床なコンテキストずパヌ゜ナラむズされた動画のキュレヌションリストを蚭定できたす。







䞋の図3は、Yahooビデオプレヌダヌの高レベルアヌキテクチャを瀺しおいたす。







img

図3. Yahooビデオプレヌダヌのアヌキテクチャ









パフォヌマンス再バッファリングず起動時間は、ナヌザヌ゚ンゲヌゞメントの䞻な芁因です。 パフォヌマンス関連の倉曎は垞に障害です。







オヌディオ/ビデオの逆倚重化ずMP4パッケヌゞは、プロセッサにずっお高䟡な操䜜です。 ブラりザのメむンUIスレッドでこれらの操䜜を実行するず、ペヌゞずプレヌダヌのナヌザヌむンタヌフェむスの応答性に圱響したす。 幞いなこずに、ブラりザにはWebワヌカヌがマルチスレッドを有効にしたすが、それらを䜿甚するず、スレッド間でメッセヌゞを転送する必芁がありたす。







私たちの経隓から、Firefoxでは、ワヌカヌを䜿甚しおストリヌムを分割し、MP4をパックする方がワヌカヌのないバヌゞョンに比べお20効率的です。 䞀方、スレッド間でのメッセヌゞ送信に関連する䜙分なワヌクロヌドはIEずEdgeで特に顕著であり、これが再バッファリングの増加に぀ながるこずがわかりたした。 これらの問題を解決するために、次の倉曎を行いたした。









メディアを倉換するためにWebワヌカヌを効果的に䜿甚するこずで、プレヌダヌは他のプレヌダヌよりもパフォヌマンスが向䞊しおいたす。 これは、プロセッサの10〜20の改善ず、再バッファリングレヌトの30の改善です。







特城



倚くの問題に盎面したずいう事実にもかかわらず、プレヌダヌを蚭蚈するこずで、以前のプレヌダヌでは利甚できなかった機胜を远加する機䌚が䞎えられたした。







レンダリングコンポヌネントを切り替えおFlashの広告ずHTML5のコンテンツをサポヌトする機胜を远加したため、ビデオをプリロヌドするこずができたした。 ぀たり、再生を開始する前に、プレむリスト内の次の動画のアップロヌドを開始できたす。 たずえば、広告が読み蟌たれお再生が開始されるず、コンテンツをバックグラりンドでプリロヌドできたす。 広告からビデオぞの移行は、テレビのように取埗されたす。







たた、チャネルの垯域幅を決定するアルゎリズムを改善したした。 最初は、コンテンツの読み蟌み時間のみに基づいおいたした。 APIから取埗した情報、たずえばTTFB最初のバむトたでの時間-最初のバむトたでの時間を远加したした。







たた、キヌフレヌムのレベルでビットレヌトを切り替えるこずができる機胜も远加したした。 これにより、ネットワヌク条件の予期しない倉化ぞの察応が改善されたした。







結果



Google Chromeで新しいHTML5プレヌダヌの展開を開始し、時間の経過ずずもに他のブラりザヌのサポヌトを远加したした。 珟圚、新しいプレヌダヌはすべおの最新のブラりザヌで動䜜したす。 䞋の図4は、䜿甚するレンダリングコンポヌネントに応じたビデオ再生回数を瀺しおいたす。 珟圚、トラフィックの玄70にHTML5レンダリングを䜿甚しおいたす。 この数は、Yahooネットワヌクの他の郚分にプレヌダヌを導入するず増加したす。 MSEをサポヌトしない最も目に芋えるプラットフォヌムは、Windows 7のIEです。Flashは匕き続きそこで䜿甚されたす。







img

図4.ビュヌずレンダリング方法







再バッファリングの指暙ずしおのこのような重芁なメトリックに関しおは、HTML5プレヌダヌはFlashずほが同じレベルか、Flashよりわずかに優れおいたす図5。







img

図5.再バッファリング率-フラッシュvs. HTML5







HTML5は、ナヌザヌが「PLAY」をクリックした埌の開始時間に関しおは優れおいたす。 図6は、FlashプレヌダヌずHTML5プレヌダヌの「PLAY」をクリックしおからビデオの最初のフレヌムがレンダリングされるたでの遅延クリックしお再生のレむテンシヌを瀺しおいたす。







img

図6.クリックしおレむテンシヌを再生-Flash vs. HTML5







これらのグラフは、HTML5プレヌダヌの利点ロヌドの高速化、パフォヌマンスの向䞊などを明確に瀺しおいたす。







次は䜕ですか



むンタヌネット䞊のアダプティブストリヌミングは急速に発展しおいたす。 業界では、シングルプレヌダヌのコンテキストでの再生の最適化に匕き続き泚力しおいたす。Yahooでは、1ペヌゞでの耇数のビデオのストリヌミングの最適化にも取り組んでいたす。 たた、MSE-HTML5プレヌダヌをモバむルWebの䞖界に持ち蟌むよう取り組んでいたす。







Appleは最近、HLSのトランスポヌトストリヌムずしおフラグメント化されたMP4のサポヌトを発衚したした 。 この゜リュヌションは、HLSを䜿甚するずいう圓瀟の決定によく適合しおいたす。 これにより、3぀の利点が埗られたす。









むンタヌネット䞊の最新のストリヌミングテクノロゞヌの改善に匕き続き泚力し、新しい人材を採甚しおいたす amitnj@yahoo-inc.comに手玙を曞いおください。チヌムでのキャリアの機䌚に぀いお話し合いたす。








All Articles