(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-08-29
(54)【発明の名称】ライブイベントにおける低レイテンシビデオストリームの動的生成
(51)【国際特許分類】
H04N 21/2343 20110101AFI20240822BHJP
【FI】
H04N21/2343
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024515147
(86)(22)【出願日】2022-09-12
(85)【翻訳文提出日】2024-03-07
(86)【国際出願番号】 US2022043237
(87)【国際公開番号】W WO2023039255
(87)【国際公開日】2023-03-16
(32)【優先日】2021-09-10
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】521316660
【氏名又は名称】ブライトコーブ インコーポレイテッド
【氏名又は名称原語表記】BRIGHTCOVE INC.
(74)【代理人】
【識別番号】100105957
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】チャン、ボー
(72)【発明者】
【氏名】レズニック、ユーリー
【テーマコード(参考)】
5C164
【Fターム(参考)】
5C164MB13S
5C164MB44S
5C164PA36
5C164SB02P
(57)【要約】
低レイテンシHLSビデオストリーム(LL_HLS)から低レイテンシDASH(LL_DASH)ビデオストリームを生成する方法が提供される。ライブイベントに対応するLL_HLSビデオストリームが取得される。LL_HLSビデオストリームは、LL_DASHビデオストリームに変換される。このLL_HLSストリームからLL_DASHストリームへの変換は、LL_DASHストリームの再符号化なしに再フォーマット化することで行われる。
【特許請求の範囲】
【請求項1】
ライブイベント用の低レイテンシビデオストリームを生成する方法であって、
前記ライブイベントに対応する第1の低レイテンシビデオストリームを取得することであって、低レイテンシHTTPライブストリーミング(LL_HLS)を使用するとともに第1の複数のビデオチャンクファイルを含む前記第1の低レイテンシビデオストリームを取得すること、
前記第1の低レイテンシビデオストリームを第2の低レイテンシビデオストリームに変換することであって、HTTP上での低レイテンシ動的適応ストリーミング(LL_DASH)を使用する前記第2の低レイテンシビデオストリームに変換すること、
を備え、
前記第1の低レイテンシビデオストリームを前記第2の低レイテンシビデオストリームに変換することが、前記第1の複数のビデオチャンクファイルを第2の複数のビデオチャンクファイルに再符号化することなく再フォーマット化することを含む、ライブイベント用の低レイテンシビデオストリームを生成する方法。
【請求項2】
前記第1の低レイテンシビデオストリームおよび前記第2の低レイテンシビデオストリームが、前記第1の低レイテンシビデオストリームおよび前記第2の低レイテンシビデオストリームの受信と、ユーザデバイス上における前記低レイテンシビデオストリームのレンダリングとの間の遅延を示す、請求項1に記載のライブイベント用の低レイテンシビデオストリームを生成する方法。
【請求項3】
前記第1の低レイテンシビデオストリームが第1のマニフェストファイルを含み、前記第2の低レイテンシビデオストリームが第2のマニフェストファイルを含む、請求項1に記載のライブイベント用の低レイテンシビデオストリームを生成する方法。
【請求項4】
前記LL_HLSのストリームが、Apple(登録商標)によって製造されたデバイスによって使用され、前記LL_DASHのストリームが、Apple(登録商標)とは別の製品によって使用される、請求項1に記載のライブイベント用の低レイテンシビデオストリームを生成する方法。
【請求項5】
前記LL_HLSのストリームが、m3u8ファイルである前記第1のマニフェストファイルを使用するものである、請求項3に記載のライブイベント用の低レイテンシビデオストリームを生成する方法。
【請求項6】
前記m3u8ファイルが前記LL_HLSのストリームを記述する、請求項5に記載のライブイベント用の低レイテンシビデオストリームを生成する方法。
【請求項7】
ライブイベント用の低レイテンシビデオストリームを生成するシステムであって、
前記ライブイベントに対応する第1の低レイテンシビデオストリームを取得するように構成された低レイテンシHLSコンバータであって、低レイテンシHTTPライブストリーミング(LL_HLS)のフォーマットを使用するとともに第1の複数のビデオチャンクファイルを含む前記第1の低レイテンシビデオストリームを取得する前記低レイテンシHLSコンバータと、
前記第1の低レイテンシビデオストリームを第2の低レイテンシビデオストリームに変換するように構成されたLL_HLS-LL_DASHコンバータであって、HTTP上での低レイテンシ動的適応ストリーミング(LL_DASH)のストリームを使用する前記第2の低レイテンシビデオストリームに変換する前記LL_HLS-LL_DASHコンバータと、
を備え、
前記第1の低レイテンシビデオストリームを前記第2の低レイテンシビデオストリームに変換することが、前記第1の複数のビデオチャンクファイルを第2の複数のビデオチャンクファイルに再符号化することなく再フォーマット化することを含む、ライブイベント用の低レイテンシビデオストリームを生成するシステム。
【請求項8】
前記第1の低レイテンシビデオストリームおよび前記第2の低レイテンシビデオストリームが、前記第1の低レイテンシビデオストリームおよび前記第2の低レイテンシビデオストリームの受信と、ユーザデバイス上における前記低レイテンシビデオストリームのレンダリングとの間の遅延を示す、請求項7に記載のライブイベント用の低レイテンシビデオストリームを生成するシステム。
【請求項9】
前記第1の低レイテンシビデオストリームが第1のマニフェストファイルを含み、前記第2の低レイテンシビデオストリームが第2のマニフェストファイルを含む、請求項7に記載のライブイベント用の低レイテンシビデオストリームを生成するシステム。
【請求項10】
前記LL_HLSのストリームが、Apple(登録商標)によって製造されたデバイスによって使用され、前記LL_DASHのストリームが、Apple(登録商標)とは別の製品によって使用される、請求項7に記載のライブイベント用の低レイテンシビデオストリームを生成するシステム。
【請求項11】
前記LL_HLSのストリームが、m3u8ファイルである前記第1のマニフェストファイルを使用するものである、請求項9に記載のライブイベント用の低レイテンシビデオストリームを生成するシステム。
【請求項12】
前記m3u8ファイルが前記LL_HLSのストリームを記述する、請求項11に記載のライブイベント用の低レイテンシビデオストリームを生成するシステム。
【請求項13】
前記変換が、前記LL_HLSのストリームの前記m3u8ファイルを、前記LL_DASHのストリーム用のメディアプレゼンテーション記述(MPD)ファイルであるメタデータファイルに変換することによって行われる、請求項12に記載のライブイベント用の低レイテンシビデオストリームを生成するシステム。
【請求項14】
ライブイベント用の低レイテンシビデオストリームを生成するための命令が埋め込まれた非一時的コンピュータ可読媒体であって、前記命令は、1つまたは複数のコンピュータによって実行されたときに、
前記ライブイベントに対応する第1の低レイテンシビデオストリームを取得することであって、低レイテンシHTTPライブストリーミング(LL_HLS)を使用するとともに第1の複数のビデオチャンクファイルを含む前記第1の低レイテンシビデオストリームを取得すること、
前記第1の低レイテンシビデオストリームを第2の低レイテンシビデオストリームに変換することであって、HTTP上での低レイテンシ動的適応ストリーミング(LL_DASH)のストリームを使用する前記第2の低レイテンシビデオストリームに変換すること、
を前記1つまたは複数のコンピュータに実行させるものであり、
前記第1の低レイテンシビデオストリームを前記第2の低レイテンシビデオストリームに変換することが、前記第1の複数のビデオチャンクファイルを第2の複数のビデオチャンクファイルに再符号化することなく再フォーマット化することを含む、非一時的コンピュータ可読媒体。
【請求項15】
前記第1の低レイテンシビデオストリームおよび前記第2の低レイテンシビデオストリームが、前記第1の低レイテンシビデオストリームおよび前記第2の低レイテンシビデオストリームの受信と、ユーザデバイス上における前記低レイテンシビデオストリームのレンダリングとの間の遅延を示す、請求項14に記載の非一時的コンピュータ可読媒体。
【請求項16】
前記第1の低レイテンシビデオストリームが第1のマニフェストファイルを含み、前記第2の低レイテンシビデオストリームが第2のマニフェストファイルを含む、請求項14に記載の非一時的コンピュータ可読媒体。
【請求項17】
前記LL_HLSのストリームが、Apple(登録商標)によって製造されたデバイスによって使用され、前記LL_DASHのストリームが、Apple(登録商標)とは別の製品によって使用される、請求項14に記載の非一時的コンピュータ可読媒体。
【請求項18】
前記LL_HLSのストリームが、m3u8ファイルである前記第1のマニフェストファイルを使用するものである、請求項16に記載の非一時的コンピュータ可読媒体。
【請求項19】
前記m3u8ファイルが前記LL_HLSのストリームを記述する、請求項18に記載の非一時的コンピュータ可読媒体。
【請求項20】
前記変換が、前記LL_HLSのストリームの前記m3u8ファイルを、前記LL_DASHのストリーム用のメディアプレゼンテーション記述(MPD)ファイルであるメタデータファイルに変換することによって行われる、請求項19に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は概してライブビデオストリーミングに関し、これに限定しないが、ライブイベントにおけるライブビデオストリーミング用の低レイテンシビデオストリームを生成することに関する。本開示は、2021年9月10日に出願されたZhangらによる「DYNAMIC CREATION OF LOW LATENCY VIDEO STREAMS IN A LIVE EVENT」を名称とする米国仮特許出願第63/261,094号の優先権を主張し、参照によりその開示の全体が本明細書に組み込まれる。
【背景技術】
【0002】
ライブストリーミングは、公共の場で発生したイベントのライブ体験を、様々な場所にいる複数のユーザに配信するために使用される。ライブコンテンツは典型的にはサーバに配信され、サーバは、それぞれのユーザデバイス上でライブコンテンツを再生するためにそのコンテンツを様々なユーザに送信する。ユーザが利用可能なデバイスは、ビデオストリームを受信して再生するために、異なるストリーミングフォーマットを使用し得る。このようなストリーミングフォーマットとしては、ハイパーテキスト転送プロトコル(HTTP)ライブストリーミング(HLS)フォーマットや、HTTP上での動的適応ストリーミング(Dynamic Adaptive Streaming over HTTP:DASH)フォーマットが挙げられる。低レイテンシHLS(Low Latency HLS:LL_HLS)および低レイテンシDASH(Low Latency DASH:LL_DASH)は、近年導入されたHLSフォーマットおよびDASHフォーマットのそれぞれ拡張版であり、これらは、より低遅延なライブストリーミングを可能にする。ユーザデバイス上でのビデオのレンダリングには、HLSフォーマットまたはDASHフォーマットのいずれかでビデオを処理する必要がある。しかしながら、既存のデバイスの中には、HLS(またはLL_HLS)ストリームのみを受信して処理できるものもあれば、DASH(またはLL_DASH)ストリームのみを受信して処理できるものもある。したがって、すべての受信デバイスの人口に対応するには、ストリーミングコンテンツを作成するパイプラインは、両方のフォーマットのストリームを生成する必要がある。
【発明の概要】
【0003】
本開示の更なる適用可能性の領域は、以下に提供される発明を実施するための形態から明らかになる。発明を実施するための形態および具体例は、様々な実施形態を示しているが、例示のみを目的とするものであり、必ずしも本開示の範囲を限定するものではない。
【0004】
一実施形態において、本開示は、低レイテンシHLS(LL_HLS)ビデオストリームから低レイテンシDASH(LL_DASH)ビデオストリームを生成する方法を提供する。LL_HLSビデオストリームは、ライブイベントからキャプチャされたライブイベントストリームから取得される。LL_HLSビデオストリームは、LL_HLSストリームを記述した情報を含む第1のマニフェストファイルを使用する。このLL_HLSストリームから、第1のマニフェストファイルを第2のマニフェストファイルに変換することによってLL_DASHストリームが取得される。このLL_HLSストリームからLL_DASHストリームへの変換は、LL_DASHファイルの符号化なく再フォーマット化することにより行われる。
【0005】
一実施形態において、ライブイベント用の低レイテンシビデオストリームを生成する方法が提供される。当該方法は、ライブイベントに対応する第1の低レイテンシビデオストリームを取得することを含む。前記第1の低レイテンシビデオストリームは、低レイテンシHTTPライブストリーミング(LL_HLS)を使用するとともに、第1の複数のビデオチャンクファイルを含む。当該方法はさらに、前記第1の低レイテンシビデオストリームを第2の低レイテンシビデオストリームに変換することを含む。前記第2の低レイテンシビデオストリームは、HTTP上での低レイテンシ動的適応ストリーミング(LL_DASH)を使用する。LL_HLSからLL_DASHへの変換は、前記第1の複数のビデオチャンクファイルを第2の複数のビデオチャンクファイルに再符号化することなく再フォーマット化することを含む。
【0006】
さらに別の実施形態において、ライブイベント用の低レイテンシビデオストリームを生成するシステムが提供される。当該システムは、ライブイベントに対応する第1の低レイテンシビデオストリームを取得するように構成された低レイテンシHLSコンバータを備える。前記第1の低レイテンシビデオストリームは、低レイテンシHTTPライブストリーミング(LL_HLS)を使用するとともに、第1の複数のビデオチャンクファイルを含む。当該システムはさらに、前記第1の低レイテンシビデオストリームを第2の低レイテンシビデオストリームに変換するように構成されたLL_HLS-LL_DASHコンバータを備える。前記第2の低レイテンシビデオストリームは、HTTP上での低レイテンシ動的適応ストリーミング(LL_DASH)を使用する。前記変換は、前記第1の複数のビデオチャンクファイルを第2の複数のビデオチャンクファイルに再符号化することなく再フォーマット化することを含む。
【0007】
一実施形態において、ライブイベント用の低レイテンシビデオストリームを生成するための命令が埋め込まれた非一時的コンピュータ可読媒体が提供される。前記命令は、1つまたは複数のコンピュータによって実行されたときに、
低レイテンシHTTPライブストリーミング(LL_HLS)を使用するとともに第1の複数のビデオチャンクファイルを含む第1の低レイテンシビデオストリームを取得すること、
前記第1の低レイテンシビデオストリームを第2の低レイテンシビデオストリームに変換することであって、HTTP上での低レイテンシ動的適応ストリーミング(LL_DASH)のストリームを使用する前記第2の低レイテンシビデオストリームに変換すること、
を前記1つまたは複数のコンピュータに実行させるものであり、
前記LL_HLSからLL_DASHへの前記変換が、前記第1の複数のビデオチャンクファイルを、前記第2のマニフェストファイルを用いる第2の複数のビデオチャンクファイルに再符号化することなく再フォーマット化することを含む、非一時的コンピュータ可読媒体。
【図面の簡単な説明】
【0008】
【
図1】
図1は、本開示の一実施形態による、複数のユーザデバイスに対するライブビデオストリームのレンダリングを説明する例示的な実施形態を示す図である。
【
図2】
図2は、本開示の一実施形態による、取り込み、コード変換、セグメント化、および適応ストリーミングの例示的な処理を示す機能ブロック図である。
【
図3】
図3は、本開示の一実施形態による、低レイテンシビデオストリーム生成システムを示すブロック図である。
【
図4】
図4は、本開示の一実施形態による、LL_HLSストリームからLL_DASHストリームへの変換の概要を示す図である。
【
図5】
図5は、本開示の一実施形態による、低レイテンシビデオストリームを生成する方法を説明するフローチャートである。
【
図6】
図6は、本開示の一実施形態による、LL_HLSストリームをLL_DASHストリームに変換する方法を説明するフロー図である。
【発明を実施するための形態】
【0009】
本開示は、添付の図面と併せて説明される。添付の図面において、同様の構成要素および/または特徴は、同じ参照ラベルを有し得る。さらに、同じ種類の様々な構成要素は、参照ラベルの後に続く同様の構成要素を区別する第2のアルファベットラベルによって区別され得る。第1の参照ラベルのみが本明細書で使用される場合、説明は、第2の参照ラベルにかかわらず、同じ第1の参照ラベルを有する同様の構成要素のうちの任意の1つに適用可能である。
【0010】
以下の説明は、好ましい例示的な実施形態を提供するだけのものであり、本開示の範囲、適用可能性、または構成を限定することを意図するものではない。むしろ、好ましい例示的な実施形態の以下の説明は、好ましい例示的な実施形態を実装するための実施可能な説明を当業者に提供するものである。添付の特許請求の範囲に記載される思想および範囲から逸脱することなく、要素の機能および配置に様々な変更を行うことができる。
【0011】
一実施形態において、本発明は、コンテンツの符号化およびパッケージング操作の数を倍増させることなく、LL_HLSフォーマットおよびLL_DASHフォーマットの両方でストリームを生成する方法を提案する。したがって、本発明は、LL_HLSストリーミングおよびLL_DASHストリーミングのための直接的な符号化ワークフローの実装と比較して、関係する売上原価(COGS)をほぼ2倍削減することを可能にする。
【0012】
図1を参照すると、本開示のいくつかの実施形態による、複数のユーザデバイスへのライブビデオストリームのレンダリングを説明する例示的な実施形態が示されている。ライブイベント102は、例えば、スポーツイベントであってよい。ライブイベント102をキャプチャするために、イベントキャプチャ装置104が使用され得る。イベントキャプチャ装置104は、連続ビデオストリームの形態でライブイベント102をキャプチャし得る。イベントキャプチャ装置104によってキャプチャされるコンテンツは、ビデオおよびオーディオコンテンツを含み得る。一実施形態において、キャプチャされたコンテンツは、サーバ106に送信する前に、イベントキャプチャ装置104によって圧縮し得る。サーバ106への送信は、無線通信手段を介して行われ得る。
【0013】
サーバ106は、イベントキャプチャ装置104から受信したライブビデオストリームを処理する。この処理は、異なるデバイスを使用する異なるユーザが利用できるように、異なるフォーマットでライブビデオストリームを変換することを含み得る。また、サーバ106は、ユーザが異なるビットレートを使用してライブビデオストリームを再生できるように、異なるビットレートでライブビデオストリームを変換する。
【0014】
サーバ106による処理後、ライブビデオストリームは、ネットワーク108を経由して異なるユーザデバイス110-1,110-2,110-3上でレンダリングされ得る。ユーザデバイス110-2,110-3は、Apple(登録商標)、Android(登録商標)、Windows(登録商標)等のオペレーティングシステムを有するスマートフォンを含み得る。また、ユーザデバイス110-1は、ラップトップ、コンピュータ、iPad(登録商標)等の他のコンピューティングデバイスを含み得る。異なるオペレーティングシステムを有する異なるユーザデバイス110-1,110-2,110-3は、ライブビデオストリームを再生するために異なるファイルフォーマットを使用し得る。例えば、ユーザデバイス110-1,110-2,110-3は、HLS、DASH等の様々なビデオストリーミングプロトコルを使用して、異なるフォーマットのライブビデオストリームを再生し得る。
【0015】
ここで、
図2を参照すると、本開示のいくつかの実施形態による、取り込み(ingesting)、コード変換(transcoding)、セグメント化(segmenting)、および適応ストリーミング(adaptive streaming)のための例示的な処理を示す機能ブロック図が提供されている。サーバ106によって準備されるコンテンツおよび/またはサーバ106から配信されるコンテンツは、HTTP適応ストリーミングとして分類され得る。適応ストリーミング(または、適応ビットレート(ABR)ストリーミングとも呼ばれる)は、所与のエンドポイントに対して実際のネットワークスループット内にとどまるように再生レートを動的に調整することで動作し、リバッファリングを必要としない。そのため、ネットワークのスループットが突然低下した場合、画像は劣化し得るが、エンドユーザは依然として画像を見ることができる。
【0016】
適応ストリーミング技術を使用することで、ネットワークが混雑している期間中、オペレータは、新たなセッションを(例えば、最終回線(last-mile)の帯域幅の可用性が制限されていて他のクライアントの参加を許可できない場合等に)ブロックするのではなく、セッション管理ポリシーを設定して、予め規定したレベルのネットワーク・オーバーサブスクリプションを許可する。このような柔軟性は、加入者がより高画質な配信(例えば、1080pおよび4K等)を求めるようになればなるほど不可欠になり得る。
【0017】
本明細書で使用するHTTP適応ストリーミングは、様々な実装の総称である。これらの実装は、Apple(登録商標)によって製造されたデバイスで使用されるHTTPライブストリーミング(HLS)、マイクロソフトIISスムースストリーミング、アドビHTTPダイナミックストリーミング(HDS)、およびApple(登録商標)とは別の製品(例えば、Android(登録商標))によるDASH等である。
【0018】
HTTP適応ストリーミングの様々な実装はそれぞれ異なるが、共通の特性のセットを有している。例えば、ソースコンテンツ202は、取り込みおよびコード変換処理204を使用することによって、複数のビットレートで並列にコード変換(例えば、マルチレートコーディング)される。ソースコンテンツ202は、ライブソースコンテンツおよび/またはファイルソースコンテンツ等のメディアコンテンツを含み得る。例えば、ファイルソースコンテンツは、映画、テレビ番組等を含み得る。ライブソースコンテンツは、スポーツ番組または試合のライブ放送等のライブストリーミングを含み得る。
【0019】
符号化されたコンテンツは、セグメント処理206で、一定長さのセグメント(例えば、チャンク)に分割される。セグメントまたはチャンクは典型的にはその長さが2秒~10秒であるが、より長くても短くてもよい。いくつかの実施形態では、より短いセグメントは符号化効率を低下させ、より大きいセグメントはネットワークスループットの変化に適応する速度に影響を与える。
【0020】
マニフェストファイルは、マニフェストファイル作成処理212において、符号化レートおよびセグメントへのURLポインタを記述するために必要に応じて作成および更新される。本明細書で使用されるマニフェストファイルまたはプレイリストは、コンテンツがどのように準備されているのか、異なる符号化ビットレートの数、各ビットレートストリームにおけるセグメントの長さ、および各ビットレートストリームの各セグメントを取得する場所を記述する。
【0021】
いくつかの実施形態において、クライアントは、HTTPを使用してネットワークからセグメントをフェッチし、それらをバッファリングし、次いでそれらを復号化して再生する。クライアントは、バッファのアンダーフローや再生のストール(例えば、リバッファリング)のリスクを回避し、品質を最大化するために最適なプロファイルを選択するように設計された1つまたは複数のアルゴリズムを利用し得る。例えば、クライアントは、セグメントをフェッチするたびにセグメントまでの測定時間に基づいてプロファイルを選択し得る。
【0022】
ここで、
図3を参照すると、本開示のいくつかの実施形態による低レイテンシビデオストリーム生成システム300のブロック図が示されている。システム300は、エンコーダ302と、インジェスタ304と、メディアストレージ306と、低レイテンシ(LL)ストリームコンバータ308と、LL_HLSコンバータ310と、LL_HLS-LL_DASHコンバータ312と、LL_DASH/HLSサーバ314と、ネットワーク316と、複数のユーザデバイス110とを備える。
【0023】
エンコーダ302は、ライブイベントからビデオストリームを受信し、インジェスタ304に送信可能なストリームを生成する。一実施形態において、エンコーダ302は、複数のチャンクにさらに分割された連続的なオーディオおよびビデオストリームを受信し得る。別の実施形態では、エンコーダ302は、ビデオストリームの複数のチャンクを直接受信し得る。ビデオストリームの複数のチャンクは、オーディオおよびビデオを含む連続的なストリームであり得る。
【0024】
エンコーダ302は、受信したビデオストリームを容易に伝送することができるフォーマットに圧縮する。例えば、エンコーダ302は、H.264圧縮技術等の1つまたは複数のプロトコルを使用してビデオストリームを圧縮し得る。ビデオの圧縮は、ビデオストリームの送信中の帯域幅を節約する。
【0025】
エンコーダ302は、例えば、セキュアリライアブル転送(Secure Reliable Transport:SRT)、リアルタイムストリーミングプロトコル(Real-Time Streaming Protocol:RTSP)、またはリアルタイムメッセージングプロトコル(Real-Time Messaging Protocol:RTMP)等のフォーマットでビデオストリームをインジェスタ304に送信する。インジェスタ304は、入力ストリームを処理し、例えば、共通メディアアプリケーションフォーマット(Common Media Application Format:CMAF)セグメントまたは断片化されたMPEG-4_Part_14(MP4)セグメント等のフォーマットで出力をメディアストレージ306に保存する。インジェスタ304は、符号化されたビデオコンテンツをエンコーダ302からメディアストレージ306に供給する仲介部として機能する。
【0026】
LLストリームコンバータ308は、メディアストレージ306に記憶されたコンテンツを読み出し、そのコンテンツを低レイテンシHTTPライブストリーミング(LL_HLS)に変換する。特に、LLストリームコンバータ308は、低レイテンシHLS(LL_HLS)コンバータ310と、低レイテンシHLSから低レイテンシDASH(LL_DASH)へのコンバータ(すなわち、LL_HLS-LL_DASHコンバータ)312とを備える。したがって、メディアストレージ306からの記憶コンテンツは、LL_HLSコンバータ310によってLL_HLSストリームに変換される。このLL_HLSストリームは、m3u8ファイルと呼ばれる第1のマニフェストファイル(または第1のメタデータファイル)を使用する。m3u8ファイルは、LL_HLSストリームを生成するために必要な要素を含む。言い換えれば、m3u8ファイルは、LL_HLSビデオストリームを記述する。m3u8ファイルは、様々な再生フォーマットに関する情報を含むメタデータファイルである。LL_HLSストリームのm3u8ファイルは、LL_HLSストリームをLL_DASHストリームに変換するために必要な情報のほとんどを含む。具体的には、この変換は、LL_HLSストリームのm3u8ファイルを、LL_DASHストリームのメディアプレゼンテーション記述(Media Presentation Description:MPD)ファイルと呼ばれるメタデータファイルに変換することによってなされ得る。
【0027】
m3u8ファイルは、LL_DASHファイルを生成するために再利用することができる様々な要素を含む得る。m3u8ファイルに存在しない要素の一部は、LL_DASHファイルを生成するために別途にmpdファイルに追加される。以下の表1は、LL_HLSファイルからLL_DASHファイルを生成するために使用される様々な要素を説明するものである。
【0028】
【0029】
【0030】
【0031】
表1は、LL_DASHファイルを生成するために必要な様々なMPD要素を説明する。MPD要素は、LL_HLSファイルからLL_DASHファイルを生成するために使用され得る第2のマニフェストファイル(または第2のメタデータファイル)である。この表はさらに、LL_DASHファイルを生成する際の要素の必要性とともに、その要素がLL_HLSファイルから取り出されたものなのか、それとも別途に追加されたものなのかを説明するために、各要素とともに種々のコメントを記載している。
【0032】
例えば、要素「@profiles」は、LL_HLSとLL_DASHとに共通であり、したがって、この要素はm3u8ファイルから抽出されてMPDファイルで使用され得る。また、要素「@minimumUpdatePeriod」は、LL_DASHファイル専用の要素であり、m3u8ファイル(LL_HLS)から抽出することはできない。
【0033】
加えて、LL_HLS-LL_DASHコンバータ312による変換処理中には「ProducerReferenceTime(prft)」ボックスを挿入する必要がある。このボックスは、LL_DASHストリームを有効にして、プレーヤによる正しい再生を可能にするために必要である。これはLL_HLSプレーヤでは無視される。
【0034】
LL_HLSとLL_DASHで同じセグメントのセットを共有/再使用するためには、MPD内のビデオセグメントシーケンス番号とセグメントURLが正しく設定されている必要がある。それらが一致していない場合、ストリーミングサーバはプレーヤが要求する正しいセグメントを見つけることができない。
【0035】
LL_HLSコンバータ310が実行されており、セグメントとm3u8プレイリストとを出力しているとき、LL_HLS-LL_DASHコンバータ312に別の処理である動的マニフェストコンバータ(dynamic_manifest_converter)が存在することにより、m3u8ファイルをmpdファイル(LL_DASHのマニフェストファイル)に動的に変換するように同時に実行することが可能である。動的マニフェストコンバータを永続的なデーモンとして実行する必要はなく、初期mpdファイルが生成されるとき、またはmpdファイルを更新する必要があるときにそれが実行される。LL_HLSのマスターm3u8ファイルとバリアントm3u8ファイルは、単一のLL_DASHのmpdファイルを生成するために変換および結合される必要がある。
【0036】
具体的に、入力側において、動的マニフェストコンバータは、LL_HLSのm3u8ファイルの本体全体をそのメモリ空間に読み込み、関連するすべてのLL_HLSタグを識別して、タグ名とタグ値を格納するテーブルを作成する。出力側において、動的マニフェストコンバータは、出力されるLL_DASHのmpdファイルの本体を格納するためのテキストバッファを作成し、LL_HLSタグ/値を格納するテーブルを参照することによりmpdファイルを生成して出力する。
【0037】
新たなセグメントおよびチャンクが追加されたときに常に更新されるLL_HLSのm3u8ファイルとは異なり、LL_DASHのmpdファイルは、そのコンテンツがサービスプロバイダによって散発的に更新されない限り、静的なファイルである。多くの場合、散発的なmpd更新は、ストリーミングサーバの設定変更によって引き起こされる。したがって、動的マニフェストコンバータは、ストリーミングセッションがまさに開始したときに初期mpdファイルを作成するために実行されるか、または設定変更を知らせるために散発的なmpd更新が課されるごとに実行される。
【0038】
出力されたmpdファイルでは、MPDレベルの要素および属性がレンディション(DASHではリプレゼンテーションと呼ばれる)間で共有される。異なるバリアントプレイリストに含まれるレンディション固有の情報は、mpdファイルの<adaptationSet>の要素を生成するために統合される。
【0039】
一実施形態において、システム300は処理ユニット(図示略)を備える。処理ユニットは、エンコーダ302、インジェスタ304、メディアストレージ306、およびLLストリームコンバータ308に結合され、システム300に存在する異なる構成要素間の通信を支援する。例えば、処理ユニットは、エンコーダ302とインジェスタ304との間、インジェスタ304とメディアストレージ306との間、メディアストレージ306とLL-ストリームコンバータ308との間の通信の確立を支援する。
【0040】
LL_HLSコンバータ312からのLL_HLSストリームは、LL_DASH/HLSサーバ316に送信され、LL_HLS-LL_DASHコンバータ314から得られたLL_DASHストリームは、LL_DASH/HLSサーバ316に送信される。これにより、LL_DASH/HLSサーバ316は、ネットワーク318を介してユーザデバイス110-1,110-2,110-3に、再生用のLL_DASHストリームを送信することができる。LL_DASH/HLSサーバ316は、LL_DASHのmpdファイルとメディアセグメントを提供するために実行中である必要がある。ユーザデバイス110-1がLL_DASHのmpdファイルを要求し、サーバ316がそのファイルをどこにも保存していない場合、サーバ316は初めてmpdファイルを生成してクライアントに応答する。そうでない場合、サーバ316は、保存されているmpdファイルのコピーを読み出し、要素「@publishTime」を修正した後、ユーザデバイス110-1に応答する。ストリームのmpdファイルを提供した後、LL_DASH/HLSサーバ316は、クライアントからのセグメントの要求を待つ。LL_DASH/HLSサーバ316は、CMAF初期化およびメディアセグメントをあたかもそれらがLL_DASHストリーミングのために元々生成されたかのように適切に提供することができる。
【0041】
一実施形態において、ネットワーク318は、コンテンツ配信ネットワーク(CDN)である。CDNは、プロキシサーバおよびデータセンタの地理的に分散されたネットワークである。コンテンツ配信ネットワークは、エンドユーザ110-1,110-2,110-3に対してコンテンツを空間的に配信することによって高い可用性および性能を提供する。
【0042】
一実施形態において、LL_DASHストリームは、メディアストレージ306に格納されたコンテンツから直接生成され得る。そのような場合、LL_DASHファイルは破棄される。
【0043】
図4は、本開示のいくつかの実施形態による、LL_HLSストリームからLL_DASHストリームへの変換の概要について説明するものである。上述したように、複数のチャンク402がライブビデオストリームから生成される。複数のチャンク402は、チャンク402-1、チャンク402-2、・・・、チャンク402-nとしてラベル付けされている。複数のチャンク402は、メタデータファイルとしてのm3u8ファイル406とともに、低レイテンシHLS(LL_HLS)ビデオストリーム404に変換される。このLL_HLSファイル404は次いで、LL_HLS-LL_DASHコンバータ314に供給される。コンバータ314は、m3u8ファイルとmpdファイル410とを使用することにより、LL_HLSファイルをLL_DASHファイル408に変換する。mpdファイル410は、LL_DASHストリームのメタデータファイルであり、LL_DASHファイルを生成するための要素(LL_HLSファイルとLL_DASHファイルとに共通の新たな要素)を含む。
【0044】
一実施形態において、生成されたLL_HLSストリームは、複数のチャンクに対して時間遅延されている。この時間遅延は3~10秒であり得る。また、変換されたLL_DASHストリームは、LL_HLSストリームに対してさらに時間遅延され得る。この時間遅延は、ライブイベントをキャプチャしてからユーザデバイス110-1,110-2,110-3上でコンテンツをレンダリングするまでの遅延である。
【0045】
図5は、本開示のいくつかの実施形態による低レイテンシビデオストリームを生成する方法500を説明するものである。ライブビデオストリームは、ライブイベントからキャプチャされ、コード変換され、一連のチャンクで徐々に出力される。複数のチャンクは、ライブイベントからキャプチャされたビデオストリームがネットワークを介して1つまたは複数のサーバに送信されるように形成され得る。複数のコード変換されたビデオチャンクは、その後、低レイテンシHLSストリーム(第1の低レイテンシビデオストリーム)および低レイテンシDASHストリーム(第2の低レイテンシビデオストリーム)に変換される。別々のLL_HLSストリームとLL_DASHストリームは、異なるデバイスでの再生に使用できるように生成される。この別個のストリームの生成は、LL_HLSストリームおよびLL_DASHストリームの生成処理における重複を伴う。本開示は(LL_HLSストリームから得られる)第1の複数のビデオチャンクファイルを第2の複数のビデオファイルに再符号化することなくLL_DASHストリームの再フォーマットを提供する。
【0046】
方法500はブロック502で始まり、ライブイベントからライブビデオストリームがキャプチャされる。ライブビデオストリームは、イベントキャプチャ装置104によってキャプチャされ得る。ライブビデオストリームは、ライブイベントでキャプチャされたビデオおよびオーディオを含み得る。
【0047】
ライブビデオストリームがキャプチャされると、方法500はブロック504に進み、ライブビデオストリームが複数のチャンクに徐々に符号化される。このビデオストリームの複数のチャンクは、ユーザデバイス110-1,110-2,110-3での再生のために、ライブビデオストリームを徐々にサーバ106に送信できるように生成される。このようなチャンクの漸進的なすなわち「チャンクベース」の伝送は、低遅延を保証するために必要とされる。ビデオストリームの複数のチャンクは、連続的なビデオストリームであり得る。
【0048】
ブロック506において、ビデオストリームの複数のチャンクから低レイテンシHLSビデオストリームが生成される。このLL_HLSストリームの生成処理は、符号化されたビデオチャンクをLL_HLS配信に使用される最終フォーマット(例えば、断片化されたMP4またはCMAF)に再パッケージ化または再多重化すること、および関連するLL_HLSマニフェストファイルを生成することを含む。
【0049】
LL_HLSストリームが生成されると、ブロック508において、第1のマニフェストファイルまたは第1のメタデータファイルがLL_HLSファイルで使用される。第1のマニフェストファイルまたは第1のメタデータファイルはm3u8ファイルであり得る。第1のマニフェストファイルは、LL_HLSファイルに存在する要素または属性を含む。この要素または属性は、上記の表1に記載された要素であり得る。表1に示すように、m3u8ファイルに存在する要素または属性は、LL_HLSストリームをLL_DASHストリームに変換するために後で使用可能な情報を含む。
【0050】
ブロック510において、m3u8ファイルは、LL_DASHファイルを生成するために使用可能な第2のマニフェストファイルまたは第2のメタデータファイルに変換される。m3u8ファイルからの共通要素が特定されてmpdファイルに追加される。また、m3u8ファイルとmpdファイルとの間で共通ではないが、LL_DASHファイルを生成するために必要な要素が特定されて、mpdファイルに追加される。こうしてmpdファイルが生成され、このmpdファイルがブロック512でLL_DASHファイルを生成するために使用される。
【0051】
一実施形態において、第1のマニフェストファイルの生成、したがって第2のマニフェストファイルの生成は省略され得る。この場合、LL_DASHストリームは、第1のマニフェストファイルを生成することなく、LL_HLSファイルから直接取得され得る。
【0052】
ここで、
図6を参照すると、LL_HLSストリームをLL_DASHストリームに変換するための方法600が示されている。ブロック602において、m3u8ファイルがフェッチされる。上述したように、m3u8ファイルは、第1のメタデータファイルまたは第1のマニフェストファイルと呼ばれる。一実施形態では、m3u8ファイルは、サーバ106のメモリに存在し得る。別の実施形態では、m3u8ファイルは、LL_HLSストリームから抽出され得る。ブロック604において、LL_HLSストリームとLL_DASHストリームとの共通要素がm3u8ファイルから特定される。特に、第1のマニフェストファイル(またはm3u8ファイル)と第2のマニフェストファイル(またはmpdファイル)との共通要素が特定される。ブロック606において、LL_HLSストリームとLL_DASHストリームとの共通要素が存在すると特定された場合、ブロック610において、LL_HLSストリームからの共通要素がmpdファイルに追加される。しかしながら、要素が見つからずLL_HLSストリームから欠落している場合、LL_HLSファイルからLL_DASHファイルを生成できないことが示され、方法600は終了する(ブロック608)。
【0053】
方法600は、次いでブロック612に進み、LL_DASHストリームの生成に必要な欠落要素がLL_DASHストリーム内にあるかどうかが特定される。欠落要素が特定された場合、ブロック614において、欠落要素がブロック618においてmpdファイルに追加される。しかしながら、欠落要素が見つからない場合、方法600はブロック616で終了する。最後に、ブロック620において、ブロック618で得られたmpdファイルからLL_DASHストリームが生成される。
【0054】
上記の説明では、実施形態の完全な理解を提供するために特定の詳細が与えられているが、実施形態は、これらの特定の詳細がなくても実施され得ることが理解される。例えば、不必要な詳細で実施形態を不明瞭にしないようにするために、回路はブロック図で示され得る。他の例では、実施形態を不明瞭にすることを回避するために、周知の回路、処理、アルゴリズム、構造、および技術は、不必要な詳細なしに示され得る。
【0055】
また、実施形態は、フローチャート、フロー図、スイム図、データフロー図、構造図、またはブロック図として示される処理として説明され得る。図示は、動作を順次の処理として説明し得るものであるが、動作の多くは、並列または同時に実行可能である。また、動作の順番は並べ替えられてもよい。処理は、その動作が完了したときに終了するが、図に含まれていない追加のステップを有することができる。処理は、方法、関数、プロシージャ、サブルーチン、サブプログラム等に対応し得る。処理が関数に対応する場合、その終了は、呼び出し関数またはメイン関数への関数に戻ることに対応する。
【0056】
ファームウェアおよび/またはソフトウェアの実装の場合、本方法は、本明細書で説明する機能を実行するモジュール(例えば、プロシージャ、関数等)を用いて実装され得る。本明細書で説明する方法を実装する際にあたって、命令を有形に具現化する任意の機械可読媒体が使用され得る。例えば、ソフトウェアコードは、メモリに記憶され得る。メモリは、プロセッサ内またはプロセッサの外部に実装され得る。本明細書で使用される「メモリ」という用語は、任意の種類の長期の、短期の、揮発性の、不揮発性の、または他の記憶媒体を指し、任意の特定の種類のメモリ、メモリの数、またはメモリを格納する媒体の種類に限定されるものではない。
【0057】
上記実施形態では、例示の目的で、特定の順序で処理が記載され得る。代替の実施形態では、本方法は、記載された順序とは異なる順序で実行され得る。また、上述した方法および/またはシステム構成要素は、ハードウェアおよび/またはソフトウェア構成要素(集積回路、処理ユニット等を含む)によって実行され得るか、または一連の機械可読命令またはコンピュータ可読命令で具現化され得る。これらの命令は、汎用プロセッサもしくは特定用途プロセッサ、あるいは命令によりプログラムされた論理回路等の機械に本方法を実行させるために使用され得る。さらに、本明細書に開示される「記憶媒体」という用語は、データを記憶するための1つまたは複数のメモリを表し得るものであり、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気RAM、コアメモリ、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、および/または情報を記憶するための他の機械可読媒体を含む。「機械可読媒体」という用語は、これらに限定されないが、可搬型または固定型の記憶装置、光記憶装置、および/または、命令および/またはデータを含むかまたは搬送する、記憶することが可能な他の種々の記憶媒体を含む。これらの機械可読命令は、CD-ROMまたは他のタイプの光ディスク、ソリッドステートドライブ、テープカートリッジ、ROM、RAM、EPROM、EEPROM、磁気カードもしくは光カード、フラッシュメモリ、または電子命令を記憶するのに適した他の種類の機械可読媒体等の、1つまたは複数の機械可読媒体に記憶され得る。あるいは、本方法は、ハードウェアとソフトウェアとの組み合わせによって実行され得る。
【0058】
上述した技術、ブロック、ステップ、および手段の実装は、種々の方法で行われ得る。例えば、これらの技術、ブロック、ステップ、および手段は、ハードウェア、ソフトウェア、またはそれらの組み合わせで実装され得る。デジタルハードウェア実装の場合、処理ユニットは、1つまたは複数の特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブルロジックデバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、上述した機能を実行するように設計された他の電子ユニット、および/またはそれらの組み合わせ内に実装され得る。アナログ回路の場合には、ディスクリート部品で実装されるか、モノリシックマイクロ波集積回路(MMIC)、無線周波数集積回路(RFIC)、および/またはマイクロ電気機械システム(MEMS)技術を使用して実装され得る。
【0059】
さらに、実施形態は、ハードウェア、ソフトウェア、スクリプト言語、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、および/またはそれらの任意の組み合わせによって実装され得る。ソフトウェア、ファームウェア、ミドルウェア、スクリプト言語、および/またはマイクロコードで実装される場合、必要なタスクを実行するためのプログラムコードまたはコードセグメントは、記憶媒体等の機械可読媒体に記憶され得る。コードセグメントまたは機械実行可能命令は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、スクリプト、クラス、あるいは、命令、データ構造、および/またはプログラムステートメントの任意の組み合わせを表し得る。コードセグメントは、情報、データ、引数、パラメータ、および/またはメモリ内容を受け渡しすることによって、別のコードセグメントまたはハードウェア回路に結合され得る。情報、引数、パラメータ、データ等は、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信等を含む任意の適切な手段により渡され、転送され、または送信され得る。
【0060】
本明細書で説明する方法、システム、装置、グラフ、表は一例である。種々の構成は、種々の手順または構成要素を適宜省略、置換、または追加し得る。例えば、代替的構成において、方法は、記載された順序とは異なる順序で実行され得る、および/または種々の段階が追加、省略、および/または組み合わせられ得る。また、特定の構成に関して説明した特徴は、他の種々の構成において組み合わせられ得る。構成の異なる態様および要素が同様に組み合わせられ得る。また、技術は進化しており、したがって要素の多くは例示であり、本開示または特許請求の範囲を限定するものではない。また、本明細書で説明する技術は、異なる種類のコンテキスト認識分類器を用いて異なる結果を提供し得る。
【0061】
特に規定されない限り、本明細書で使用されるすべての技術的および科学的用語は、一般的にまたは従来から理解されているのと同じ意味を有する。本明細書で使用される「1つ」は、1つまたは複数(すなわち、少なくとも1つ)を指す。例として、「1つの要素」は、1つの要素、または2つ以上の要素を意味する。量や時間的持続時間等の測定可能値を指すときに本明細書で使用されている「約」および/または「およそ」は、本明細書に記載されるシステム、デバイス、回路、方法、および他の実装の文脈において適切である場合、指定された値に対して、±20%、±10%、±5%、または+0.1%の変動を包含する。量や時間的持続時間や物理的属性(頻度等)等の測定可能値を指すときに本明細書で使用される「実質的に」は、本明細書に記載されるシステム、デバイス、回路、方法、および他の実装の文脈において適切である場合、指定された値に対して、±20%、±10%、±5%、または+0.1%の変動を包含する。
【0062】
特許請求の範囲を含めて本明細書で使用される「少なくとも1つ」または「1つ以上」は、列挙された項目の任意の組み合わせを使用できることを示す。例えば、「A、B、およびCのうちの少なくとも1つ」のリストは、A、B、C、AB、AC、BC、および/またはABC(すなわち、AとBとC)の任意の組み合わせを含む。さらに、項目A、B、またはCの複数の発生または使用が可能である限り、A、B、および/またはCの複数の使用が、意図される組み合わせの一部を形成し得る。例えば、「A、B、およびCのうちの少なくとも1つ」のリストには、AA、AAB、AAA、BB等も含まれ得る。
【0063】
開示されるシステム、方法、および機械可読媒体の例示的なおよび現在の好ましい実施形態を本明細書で詳細に説明したが、本発明の概念は、別様に種々に具現化および採用され得るものであって、添付の請求項は、従来技術によって限定されるものを除き、そのような変形例を含むように解釈されることが意図される。本開示の原理を特定の装置および方法に関連して上記で説明したが、この説明は、単に例示であって、本開示の範囲を限定するものではない。
【国際調査報告】