CDNでのクラウドベースのビデオ処理

画像 こんにちは、Habralyudi!



すでに数回、Habréでコンテンツ配信ネットワークのサービス、またはCDN (コンテンツ配信ネットワーク)について話しまし 。 インターネットビデオの地理的に分散したオンラインブロードキャスト、ビデオのストリーミング、HTTP経由の静的コンテンツの配信にはCDNが必要であることを思い出させてください。 しかし、今日は基本的な話ではなく、CDNネットワークの追加サービスについて話したいと思います。その多くはクラウドでのビデオ処理に関連しています。 このようなサービスには、クラウドへのビデオのマウント、アダプティブブロードキャスト用のトランスコーディング、ビデオストリームからのスクリーンショットのカットなどが含まれます。







それでは始めましょう。 まず、 アダプティブビデオ放送サービスについてお話したいと思います。 あなたのサイトにビデオを高品質で表示するとしますが、多くのユーザーがビデオをダウンロードするのに十分な帯域幅がないためにビデオをバッファリングしたという不満があります。 動画のビットレートを下げることにしました。ユーザーからの苦情は少なくなりましたが、サイトの動画の品質が気に入らなくなったため、広告主が広告の掲載を停止するのではないかと心配しています。 一度に複数のビットレートでビデオを表示することにしましたが、サイトへのすべての訪問者がビットレートとは何か、なぜビットレートを変更する必要があるかを理解しているかどうかはまったくわかりません。



したがって、アダプティブブロードキャストを使用すると、ビットレートが自動的に低下し、それに応じて、インターネットチャネルが不十分なユーザーのインターネットビデオの品質が低下し、逆に、良好なチャネルを使用するユーザーの品質が向上します。 そして、これはユーザー自身の参加なしに起こります:Flashプレーヤー(またはiOSプレーヤー)自体は、ビデオバッファリングがないように、どのビットレートでビデオをこのユーザーに最適に表示するかを計算しますが、同時に最高の品質で表示されます。 ビットレートの切り替えは、使用可能な帯域幅が増減する場合、ビットレートの減少と増加の両方で連続的に発生する可能性があります。



原則として、アダプティブブロードキャストは、Flashの標準RTMPプロトコルをサポートしています。 ただし、私たちの経験では、ビデオをFlashで一貫して表示するには、Adobe HTTP Dynamic Streaming(HDS)プロトコルを使用する必要があります。 このプロトコルはOSMF(Open Source Media Framework)仕様でサポートされており、これに基づいて多くの最新のFlashプレーヤーが構築されています。 Appleデバイスに問題はありません。HTTPLive Streaming(HLS)プロトコルは非常に安定して動作します。



適応型ビデオブロードキャストサービスへの興味深い追加は、 オンラインビデオトランスコーディングサービスです。 一般に、アダプティブモードでブロードキャストするビデオをサイトに公開する前に、まずいくつかのビットレートでエンコードする必要があります。 しかし、アダプティブブロードキャストサービスを使用する場合、これを行うことはできません。ビデオのコピーを高品質でダウンロードするだけで十分であり、ユーザーからリクエストを受信すると、ビデオは異なるビットレートにトランスコードされます。 したがって、ビデオをサイトにアップロードする時間を最小限に抑えることができるため、再エンコードに時間を費やす必要はありません。 CDNネットワークについて話す場合、これまでHDSを介してビデオを配信するオプションに対してのみ実装してきましたが、現在はHLSサポートに取り組んでいます。 このサービスの他のCDN実装では、率直に会っていません。



別の興味深いサービスは、ストリームからスクリーンショットをスライスすることです。 あなたのサイトがリアルタイムでライブビデオを放送しているとしましょう。 このビデオにリンクするにはどうすればよいですか? これを行うのが最も論理的で、このビデオの最後のフレームの1つを表示して、ユーザーが何を表示するかを理解できるようにします。 そのため、この最後のフレームは、単純なAPIリクエストを使用してCDNからリクエストできます(もちろん、使用するCDNがこの機能をサポートしていない限り)。



さて、実際にはクラウドビデオ処理についてです。 クラウドのビデオで最も簡単なことは、ビデオをマウントすることです。 これを行うには、ビデオ自体で何かをする必要はありません。ビデオ全体を再生するのではなく、その一部のみを再生するだけで十分です。 ビデオのどの部分を再生するかを示すために、一部のCDN(少なくとも私たちのもの)には対応するAPIがあります。 たとえば、このAPIでは、CDNに5秒から70秒まで、次に100秒から106秒までなど、ビデオを再生するように要求できます。 この場合も、オンザフライトランスコーディングサービスの場合と同様に、このサービスにより、サイトでのビデオのアップロード時間が大幅に短縮されます。 たとえば、特派員はイベントの場所からクラウドにビデオをアップロードでき、編集者はそこにマウントしてすぐにニュースサイトにアップロードできます(ビデオのダウンロード、コンピューターでの編集、サーバーへのアップロードの代わりに)。



私はCDNサービスの完全なリストからはほど遠い話をしました。 また、CDNには「仮想TVチャンネル」(ビデオクリップからのビデオストリーミングの作成)、ビデオへのテキストのオーバーレイ、TVチャンネルの録画、CDNを介した放送用の衛星からのTVチャンネルの着陸、および録画済みのバックアップビデオへのビデオストリームの切り替えもあります-すべてをリストすることはできません。 ちなみに、新しいサービスの提案があれば、それを共有してください。アイデアに感謝し、喜んでそれらを実装します(おそらく、この記事を読んでいる競合他社と競います-ところで、彼らにこんにちは:))



All Articles