JP6903172B2 - ライブアップリンク適応ストリーミングのための装置および方法 - Google Patents

ライブアップリンク適応ストリーミングのための装置および方法 Download PDF

Info

Publication number
JP6903172B2
JP6903172B2 JP2019569783A JP2019569783A JP6903172B2 JP 6903172 B2 JP6903172 B2 JP 6903172B2 JP 2019569783 A JP2019569783 A JP 2019569783A JP 2019569783 A JP2019569783 A JP 2019569783A JP 6903172 B2 JP6903172 B2 JP 6903172B2
Authority
JP
Japan
Prior art keywords
http
client
media
server
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019569783A
Other languages
English (en)
Other versions
JP2020524338A (ja
Inventor
トールステン ローマル,
トールステン ローマル,
モハメッド イブラヒム,
モハメッド イブラヒム,
エッサイリ, アリ エル
エッサイリ, アリ エル
ラファエル ワグナー,
ラファエル ワグナー,
Original Assignee
テレフオンアクチーボラゲット エルエム エリクソン(パブル)
テレフオンアクチーボラゲット エルエム エリクソン(パブル)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by テレフオンアクチーボラゲット エルエム エリクソン(パブル), テレフオンアクチーボラゲット エルエム エリクソン(パブル) filed Critical テレフオンアクチーボラゲット エルエム エリクソン(パブル)
Publication of JP2020524338A publication Critical patent/JP2020524338A/ja
Application granted granted Critical
Publication of JP6903172B2 publication Critical patent/JP6903172B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/764Media network packet handling at the destination 

Description

開示される実施形態は、ハイパーテキスト転送プロトコル(HTTP)を使用するライブアップリンク適応ストリーミングに関連するものである。
アップリンクストリーミング(すなわちクライアントからサーバへのストリーミング)のための最も一般的なストリーミングプロトコルは、Adobe社に権利があるリアルタイムメッセージ通信プロトコル(RTMP)である(www.adobe.com/devnet/rtmp.htmlを参照されたい)。最初に、RTMPはサーバからクライアントへのフラッシュビデオのストリーミング用に開発された。しかし、今日、RTMPはアップリンクストリーミング用に主として使用されている。RTMPは、信頼できるアップリンクストリーミング用に送信制御プロトコル(TCP)を使用する。RTMPはHTTPと比較して完全な代替案の実現である。RTMPストリームはRTMPプロトコルハンドラ方式(rtmp://)によって識別され得、そこで、rtmp://ex.com/live.swfの形式のURLはアプリケーションによって解釈され得る。
RTMPにはいくつかの短所がある。たとえば、規格が、開かれた標準化の団体または共同体によって管理されていないので、ビデオ、オーディオ、またはクローズドキャプション解決策を付加するためのルールもやり方もない。
RTMPの別の短所は、HTTPほど広範囲に使用されていないことである。それゆえに、HTTPを使用してライブアップリンクストリーミングを実施するのが有利であろう。HTTPのさらなる利益には、HTTPSのようなすべてのHTTP特有のセキュリティ機能またはソース認証が再利用され得ることがある。
2015年の通信に関するIEEE国際会議(ICC)の、C.Lottermannら、「Network−Aware Video Level Encoding for Uplink Adaptive HTTP Streaming」(「Lottermann」)は、HTTPを使用するアップリンクストリーミングを説明している。しかしながら、Lottermannにおいて開示されたシステムでは、ビデオパッケージャは、リモートHTTPクライアントからの要求を受信し、要求に応答してリモートHTTPクライアントにビデオをストリーミングするように機能するHTTPサーバと同一場所に配置されている。この実現では、HTTPクライアントがインフラストラクチュアに配置され、HTTPサーバがクライアントデバイス側(すなわちカメラ側)に据えられる。
Lottermannにおいて開示されたシステムに関する問題には、アップリンクビデオストリームを生成しようとするユーザの多くが、ファイアウォールまたはたとえば動的ホスト設定プロトコル(DHCP)を使用する動的IPアドレス割り当てと組み合わせて利用ネットワークのアドレス変換機構(NAT)など他のセキュリティ機能によって遮蔽して保護されることがある。たとえば、一般的にホームネットワークにおけるデバイスを遮蔽するファイアウォールは、ホームネットワークの外のクライアントが同デバイスに対するTCP接続を確立することを許容しない(すなわち、外部デバイスから、たとえばTCPまたはHTTPの接続を使用して住宅内のデバイスに到達することは禁止される)。これはホームネットワークの外部のハッカーからデバイスを保護する。この不利益はモバイル環境にも存在する。一般的には、オペレータは、モバイルデバイス(たとえばスマートフォン)を、ハッキング、サービスの拒否、およびスパム攻撃から保護するために、モバイルデバイスをインターネット方向のトラフィックから遮蔽して保護する。サーバとのセッションを開始または確立することができるのはユーザ(すなわちモバイルデバイス)のみである(その逆ではない)。
本開示は、この不利益を克服する実施形態を説明するものである。実施形態が提供する新規のライブアップリンクビデオの解決策では、提案されたようにHTTPサーバをクライアントデバイス側(すなわちカメラ側)に配置するのとは反対に、HTTPクライアントがカメラ側に配置される。これは、前述のファイアウォール問題を克服する一方で、既存の広く利用可能なHTTPライブラリおよびインフラストラクチュアを依然として利用可能にするものである。TCP上のHTTPは確実で融通のきくトランスポート機構をもたらす。この融通性は、セッションのスループットが、利用可能なリンクビットレートに、できるだけ迅速に調節されることを保証する。ライブソースが連続的に生成するメディアフレームは、できるだけ迅速にアップロードされるべきである。
本明細書で説明される実施形態では、クライアントデバイス上で作動する(またはクライアントデバイスの比較的近くに配置された)HTTPクライアントが、HTTP要求を使用してHTTPインジェストサーバに対する接続(たとえばHTTPS接続)を確立する。次いで、HTTP要求のHTTPボディの内部にライブアップリンクメディア(オーディオおよび/またはビデオ)が用意される。HTTPクライアントは、HTTPボディにメディアコンテンツを直接パイピングするために、HTTP 1.0原理またはHTTP 1.1チャンク転送符号化(Chunked Transfer Encoding)を使用してよい。HTTPチャンク転送符号化は、クライアントが、確立したTCP接続を後続のHTTPトランザクションのために再利用することを可能にする(持続性のTCP接続)。そのゆえに、本明細書では、HTTPクライアントからHTTPサーバへのライブアップリンクストリームのためのHTTP要求ボディの使用に関連した実施形態が開示される。とりわけ、これによって、送信ビットレートを利用可能なリンクビットレートに調節するためにHTTPセッションの信頼性および融通性を導入することが可能になる。
実施形態が提供する新規のレート整合方式は、融通のきくレート整合方式の進行を監視して、クライアントの送信バッファが遅延制約の範囲内でライブビデオフィードをアップロードすることおよび/または過剰なジッタを付加しないことを保証するものである。
実施形態は、新規のライブビデオの解決策を受け入れることができる新規のHTTPサーバ機能を提供するものである。実施形態では、クライアントは、HTTP要求の範囲内でライブアップリンクビデオを起動し得る。次いで、HTTPサーバは、受信したデータチャンクを(たとえば受信したとき、すべてのチャンクを受信する前に)後処理機能に渡してよい。
以下で説明される実施形態は、ライブアップリンクストリーミングを行うために、HTTPを、断片化されたMP4(fMP4)およびHTTPチャンク転送符号化と組み合わせて使用するやり方を明示するものである。実施形態が提供するビットレート適応のライブアップリンク解決策は、TCPレベル再送信、レート制御、および輻輳回避原理を導入することができる(すなわち別個のUDP再送信サーバは不要である)が、メディアビットレート適応は依然として可能である。
実施形態は、MPEGトランスポートストリーム(MPEG2−TS)、MPEGメディアトランスポート(MMT)、またはプロプライエタリなRTMPなどの手法に対する代替形態としてサーブすることができる。
要求から受信したあらゆるデータチャンクを(すなわち、要求からすべてのデータチャンクを受信する前に)デジッタバッファおよびABRトランスコーダ/パッケージャのような任意の後処理機能へパイピングし始めるように、既存のHTTPサーバを拡張することに関連した実施形態も開示される。
それゆえに、一態様では、メディアソース(たとえばカメラ)によって生成されたライブメディア(オーディオおよび/またはビデオ)フィードをサーバにアップストリーミングするためにクライアント装置(「クライアント」)によって実施される方法が提供される。一実施形態では、この方法は、クライアントがサーバとのトランスポートレイヤ接続(たとえばTCP接続)を確立することを含む。この方法は、クライアントが、トランスポートレイヤ接続を通じて、ヘッダおよびボディを含むハイパーテキスト転送プロトコル(HTTP)要求メッセージをサーバに送信することも含み、HTTP要求メッセージのヘッダはHTTP要求メッセージのボディのサイズを示さない。この方法は、メディアデータが生成されたとき、クライアントが、ライブメディアフィードに対応するメディアデータを送信バッファに記憶することも含み、メディアデータを生成するために品質セッティングが使用される。トランスポートレイヤ接続を通じてサーバにHTTP要求メッセージのボディを送信することは、1)クライアントが、送信バッファに現在記憶されているメディアデータの少なくとも一部分を、トランスポートレイヤ接続を通じてサーバに送信することと、2)クライアントが、メディアデータの前記少なくとも一部分を送信バッファから除去することと、3)クライアントが、ライブメディアフィードに対応するメディアデータを生成するために使用される品質セッティングを変更するべきかどうかを判定することと、4)クライアントが、送信終了トリガが検知されるまでステップ(1)、(2)および(3)を繰り返すこととを含む。
いくつかの実施形態ではメディアソースはカメラである。いくつかの実施形態では、カメラはクライアントの一体部品であり、他の実施形態では、カメラは、クライアントから遠隔である(たとえばBluetooth接続などのリンクを介してクライアントに接続されたドローン上のカメラ)。実施形態では、トリガは持続時間を指定するスケジュールに基づき、クライアントは、持続時間が過ぎたことを検知した結果としてトリガを検知する。
いくつかの実施形態では、この方法は、クライアントが、第1の品質セッティングを使用して、メディアソースによって生成されたメディアフレームの第1のセットを符号化し、符号化されたメディアフレームの第1のセットを生成することをさらに含む。送信バッファに記憶されたメディアデータは、符号化されたメディアフレームの第1のセットを含み、HTTP要求メッセージのボディを送信するステップは、クライアントが、第1のコーデック設定情報を送信することをさらに含み、第1のコーデック設定情報は第1の品質セッティングを示す情報を含む。この方法は、クライアントが、送信バッファに記憶されたデータ量を監視することと、クライアントが、送信バッファに記憶されたデータ量が閾値を超えたと判定することと、クライアントが、送信バッファに記憶されたデータ量が閾値を超えたと判定した結果として、第2の品質セッティングを使用して、メディアソースによって生成されたメディアフレームの第2のセットを符号化し、符号化されたメディアフレームの第2のセットを生成することとをさらに含む。この方法は、クライアントが、ライブメディアフィードに対応するさらなるメディアデータを送信バッファに記憶することをさらに含み、さらなるメディアデータは、符号化されたメディアフレームの第2のセットを含む。HTTP要求メッセージのボディを送信するステップは、クライアントが、第2のコーデック設定情報を送信することをさらに含み、第2のコーデック設定情報は第2の品質セッティングを示す情報を含む。
いくつかの実施形態では、この方法は、クライアントが、メディアソースによって生成されたメディアフレームの第1のセットを符号化して、符号化されたメディアフレームの第1のセットを生成することであって、送信バッファに記憶されたメディアデータが、符号化されたメディアフレームの第1のセットを含む、符号化されたメディアフレームの第1のセットを生成することと、クライアントが、送信バッファに記憶されたデータ量を監視することと、クライアントが、送信バッファに記憶されたデータ量が閾値を超えたと判定することと、クライアントが、送信バッファに記憶されたデータ量が閾値を超えたと判定したことの結果として、少なくともメディアフレームの第1のセットのサブセットを、サーバに送信しないように、送信バッファからドロップすることとをさらに含む。いくつかの実施形態では、前記送信バッファが記憶するメディアフラグメントは、メディアフレームの前記サブセットを含み、またメディアフレームのサブセットに関するメタデータをさらに含み、送信バッファからメディアフレームの前記サブセットをドロップするステップは、メディアフラグメントがサーバに送信されないように、送信バッファからメディアフラグメントをドロップすることを含む。
いくつかの実施形態では、この方法は、クライアントが、メディアソースによって生成された非圧縮ビデオフレームを取得することと、クライアントが、非圧縮ビデオフレームを符号化して、符号化されたビデオフレームを生成することと、クライアントが、i)符号化されたビデオフレームおよびii)符号化されたビデオフレームに関係するメタデータを含むビデオフラグメントを生成することと、クライアントが、このビデオフラグメントを送信バッファに記憶することとをさらに含む。実施形態では、ビデオフラグメントは、i)ISO−BMFFのビデオフラグメントおよびii)一般的なメディアアプリケーションフォーマット(CMAF)のビデオフラグメントのうち1つである。
いくつかの実施形態では、ライブフィードは、ライブ配信のために受信エンティティ(サーバ)によってさらに処理され得る。実施形態では、クライアントが、送信バッファに現在記憶されているメディアデータの少なくとも一部分を、トランスポートレイヤを通じてサーバに送信することは、送信バッファに現在記憶されているメディアデータの少なくとも一部分を含むデータチャンクを送信することを含む。実施形態では、クライアントが、ライブメディアフィードに対応するメディアデータを生成するのに使用される品質セッティングを変更するべきかどうかを前記判定することは、送信バッファレベルおよび/または送信バッファレベルの経時変化(たとえばバッファレベル勾配)を基に行われる。
別の態様では、メディアソースによって生成されたライブメディア(オーディオおよび/またはビデオ)フィードをクライアントから受け取るためにサーバによって実施される方法が提供される。この方法は、クライアントとのトランスポートレイヤ接続(たとえばTCP接続)を通じて、ボディを含むHTTP要求メッセージのためのハイパーテキスト転送プロトコル(HTTP)ヘッダを受信することを含む。HTTPヘッダは、HTTP要求メッセージのボディのサイズを示さない。この方法は、HTTPヘッダを受信した後にHTTP要求メッセージのボディを受信することをさらに含む。HTTP要求メッセージのボディを受信することは、HTTPクライアントから第1のデータチャンクを受信することと、HTTPクライアントから第2のデータチャンクを受信することと、第1のデータチャンクを受信した後、第2のデータチャンクを受信する前に、ストリーミングビデオを配信するために、配信システムに第1のデータチャンクを発送することとを含む。
別の態様では、メディアソースによって生成されたライブメディア(オーディオおよび/またはビデオ)フィードをサーバにアップストリーミングするための(たとえばモバイルデバイスまたはユーザ機器(UE)上の)HTTPクライアントが提供される。HTTPクライアントは、サーバとのトランスポートレイヤ接続(たとえばTCP接続)を確立することと、トランスポートレイヤ接続を通じて、ヘッダおよびボディを含むハイパーテキスト転送プロトコル(HTTP)要求メッセージをサーバに送信することであって、HTTP要求メッセージのヘッダはHTTP要求メッセージのボディのサイズを示さない、HTTP要求メッセージをサーバに送信することと、メディアデータが生成されたとき、ライブメディアフィードに対応するメディアデータを送信バッファに記憶することとを行うように適合されている。メディアデータを生成するために品質セッティングが使用される。トランスポートレイヤ接続を通じてサーバにHTTP要求メッセージのボディを送信することは、1)クライアントが、送信バッファに現在記憶されているメディアデータの少なくとも一部分を、トランスポートレイヤ接続を通じてサーバに送信することと、2)クライアントが、メディアデータの前記少なくとも一部分を送信バッファから除去することと、3)クライアントが、ライブメディアフィードに対応するメディアデータを生成するために使用される品質セッティングを変更するべきかどうかを判定することと、4)クライアントが、送信終了トリガが検知されるまでステップ(1)、(2)および(3)を繰り返すこととを含む。
別の態様では、メディアソースによって生成されたライブメディア(オーディオおよび/またはビデオ)フィードをサーバにアップストリーミングするための(たとえばモバイルデバイスまたはユーザ機器(UE)上の)HTTPクライアントが提供される。HTTPクライアントは、サーバとのトランスポートレイヤ接続(たとえばTCP接続)を確立するように設定されたトランスポートモジュールと、トランスポートレイヤ接続を通じて、ヘッダおよびボディを含むハイパーテキスト転送プロトコル(HTTP)要求メッセージをサーバに送信するように設定された送信モジュールであって、HTTP要求メッセージのヘッダはHTTP要求メッセージのボディのサイズを示さない、送信モジュールと、メディアデータが生成されたとき、ライブメディアフィードに対応するメディアデータを送信バッファに記憶するように設定されたデータ記憶モジュールとを含む。メディアデータを生成するために品質セッティングが使用される。トランスポートレイヤ接続を通じてサーバにHTTP要求メッセージのボディを送信することは、1)クライアントが、送信バッファに現在記憶されているメディアデータの少なくとも一部分を、トランスポートレイヤ接続を通じてサーバに送信することと、2)クライアントが、メディアデータの前記少なくとも一部分を送信バッファから除去することと、3)クライアントが、送信バッファレベルおよび/または送信バッファレベルの経時変化(たとえばバッファレベル勾配)を基に、ライブメディアフィードに対応するメディアデータを生成するために使用される品質セッティングを変更するべきかどうかを判定することと、4)クライアントが、送信終了トリガが検知されるまでステップ(1)、(2)および(3)を繰り返すこととを含む。
別の態様では、メディアソースによって生成されたライブメディア(オーディオおよび/またはビデオ)フィードをサーバにアップストリーミングするための(たとえばモバイルデバイスまたはユーザ機器(UE)上の)HTTPクライアントが提供される。HTTPクライアントは、受信器と、送信器と、データ記憶システムと、プロセッサを備えるデータ処理装置とを含む。データ処理装置は、データ記憶システム、送信器、および受信器に結合されており、データ処理装置は、サーバとのトランスポートレイヤ接続(たとえばTCP接続)を確立することと、トランスポートレイヤ接続を通じて、ヘッダおよびボディを含むハイパーテキスト転送プロトコル(HTTP)要求メッセージをサーバに送信することであって、HTTP要求メッセージのヘッダはHTTP要求メッセージのボディのサイズを示さない、HTTP要求メッセージをサーバに送信することと、メディアデータが生成されたとき、ライブメディアフィードに対応するメディアデータを、送信バッファに記憶することとを行うように設定されている。メディアデータを生成するために品質セッティングが使用される。トランスポートレイヤ接続を通じてサーバにHTTP要求メッセージのボディを送信することは、1)クライアントが、送信バッファに現在記憶されているメディアデータの少なくとも一部分を、トランスポートレイヤ接続を通じてサーバに送信することと、2)クライアントが、メディアデータの前記少なくとも一部分を送信バッファから除去することと、3)クライアントが、ライブメディアフィードに対応するメディアデータを生成するために使用される品質セッティングを変更するべきかどうかを判定することと、4)クライアントが、送信終了トリガが検知されるまでステップ(1)、(2)および(3)を繰り返すこととを含む。
別の態様では、メディアソースによって生成されたライブメディア(オーディオおよび/またはビデオ)フィードをクライアントから受信するHTTPサーバが提供される。HTTPサーバは、クライアントとのトランスポートレイヤ接続(たとえばTCP接続)を通じて、ボディを含むHTTP要求メッセージのためのハイパーテキスト転送プロトコル(HTTP)ヘッダを受信するように適合されている。HTTPヘッダは、HTTP要求メッセージのボディのサイズを示さない。HTTPサーバは、HTTPヘッダを受信した後にHTTP要求メッセージのボディを受信するようにさらに適合されている。HTTP要求メッセージのボディを受信することは、HTTPクライアントから第1のデータチャンクを受信することと、HTTPクライアントから第2のデータチャンクを受信することと、第1のデータチャンクを受信した後、第2のデータチャンクを受信する前に、ストリーミングビデオを配信するために、配信システムに第1のデータチャンクを発送することとを含む。
別の態様では、メディアソースによって生成されたライブメディア(オーディオおよび/またはビデオ)フィードをクライアントから受信するためのHTTPサーバが提供される。HTTPサーバは、クライアントとのトランスポートレイヤ接続(たとえばTCP接続)を通じて、ボディを含むHTTP要求メッセージのためのハイパーテキスト転送プロトコル(HTTP)ヘッダを受信するように設定された第1の受信モジュールであって、HTTPヘッダがHTTP要求メッセージのボディのサイズを示さない第1の受信モジュールと、第1の受信モジュールによってHTTPヘッダを受信した後に、HTTP要求メッセージのボディを受信するように設定された第2の受信モジュールとを含む。HTTP要求メッセージのボディを受信することは、HTTPクライアントから第1のデータチャンクを受信することと、HTTPクライアントから第2のデータチャンクを受信することと、第1のデータチャンクを受信した後、第2のデータチャンクを受信する前に、ストリーミングビデオを配信するために、発送モジュールによって配信システムに第1のデータチャンクを発送することとを含む。
別の態様では、メディアソースによって生成されたライブメディア(オーディオおよび/またはビデオ)フィードをクライアントから受信するためのHTTPサーバが提供される。HTTPサーバは、受信器と、送信器と、データ記憶システムと、データ記憶システムに結合されたプロセッサを備えるデータ処理装置とを含む。送信器、受信器、およびデータ処理装置は、クライアント(102)とのトランスポートレイヤ接続(たとえばTCP接続)を通じて、ボディを含むHTTP要求メッセージのための、HTTP要求メッセージのボディのサイズを示さないハイパーテキスト転送プロトコル(HTTP)ヘッダを受信することと、HTTPヘッダを受信した後にHTTP要求メッセージのボディを受信することとを行うように設定されている。HTTP要求メッセージのボディを受信することは、HTTPクライアントから第1のデータチャンクを受信することと、HTTPクライアントから第2のデータチャンクを受信することと、第1のデータチャンクを受信した後、第2のデータチャンクを受信する前に、ストリーミングビデオを配信するために、配信システムに第1のデータチャンクを発送することとを含む。
上記の実施形態および他の実施形態が以下で説明される。
添付の図面は本明細書に組み込まれて本明細書の一部分を形成し、様々な実施形態を図示するものである。
いくつかの実施形態によるネットワークアーキテクチャの図示である。 いくつかの実施形態によってフラグメントに分解されたメディアストリームの図示である。 いくつかの実施形態によるネットワークアーキテクチャの図示である。 いくつかの実施形態によるバッファサイズと符号化品質の間の関係を示すグラフである。 いくつかの実施形態による処理の流れ図である。 いくつかの実施形態による処理の流れ図である。 いくつかの実施形態による処理の流れ図である。 いくつかの実施形態によるHTTPクライアントの機能モジュールを示す図である。 いくつかの実施形態によるHTTPサーバの機能モジュールを示す図である。 いくつかの実施形態によるHTTPクライアントのブロック図である。 いくつかの実施形態によるHTTPサーバのブロック図である。
図1は例示的実施形態のエンドツーエンドアーキテクチャを図示するものである。示されるように、クライアント装置102(略して「クライアント102」)は、HTTPサーバ106(インジェストサーバとも呼ばれる)を備えるメディア処理ユニット104と通信している。これは、寄与リンクすなわちクライアント102(すなわちメディアソース)からメディア処理ユニット104(すなわちメディアシンク)へのリンク(別名「インジェストリンク」)を形成する。メディア処理ユニット104はトランスコーダパッケージャ108(たとえば適応ビットレート(ABR)トランスコーダ)をさらに含み得る。ライン107によって示されるように、HTTPサーバ106(入口)はトランスコーダパッケージャ108(出口)から切り離されてよく、すなわち、メディア処理ユニット104は、いくつかの実施形態では単一の物理ユニットでよく、いくつかの実施形態では、別個の物理デバイス上に存在するサーバ機能およびトランスコーダパッケージャ機能を備え得る。トランスコーダパッケージャ108はコンテンツ配信ネットワーク(CDN)110と通信してよく、CDN 110は、エンドユーザ受信器112に、パッケージ化されたメディアをさらに発送する。トランスコーダパッケージャ108、CDN 110、および受信器112は配送システムを備える。
全体にわたってカメラという用語が使用されているが、任意のメディアソース(たとえばマイクロフォン)が使用され得ることを理解されたい。
実施形態は、カメラ(たとえばモバイルカメラ)からインジェストサーバへの寄与リンクに対する改善を提供するものである。寄与リンクはコンテンツ準備パイプへのアップリンクである。概念的に、これは、たとえばCDNを通じたDASHを使用する配信準備のためのスクリーニング機能、ABRをコード変換してパッケージ化する機能を含んでよく、あるいは、それらの機能のいくつかまたはすべてが寄与リンクから切り離されてよく、配送システムの一部分と見なされ得る。
インジェストのために、HTTPインジェストサーバの解決策が提案される。HTTPインジェストサーバ106は、(任意の他のウェブサーバのように)入力を求めてリッスンする。一般的には、HTTPトラフィック用にはTCPポート80または443が使用されるが、他のポートも可能である。HTTPインジェストサーバ106は、安全なHTTPS接続が確立される前に、クライアントの認可と認証のためのセキュリティ機能をサポートし得る。ここで、HTTPという用語は、すべてのHTTPトランザクションが安全にされ得るので、HTTPSと同義的に使用される。
HTTPインジェストサーバ106は、全部のHTTP要求を受信する前に、後続の処理機能(たとえばABRコード変換およびパッケージング)に、データを(受信したとき)直ちに発送するように実施され得る。この挙動は、HTTPサーバが、要求の処理が起動される前にHTTP要求のすべてのデータを最初に受信する必要があり得る従来技術の解決策とは対照的である。現在説明されている実施形態では、HTTP入口サーバ106は、ABRトランスコーダパッケージャ108のように、あらゆる受信されたHTTPチャンクを後続の機能にパイピングする。このパイプラインには他の処理機能も採用され得る。たとえば、ABRトランスコーダ(図3のデジッタバッファ314など)への連続入力を保証するために、ABRトランスコーダの前にデジッタバッファも配置され得る。後処理機能は、HTTPインジェストサーバ106と同一の場所に配置されてよく、または分散されてよい。分散される場合には、HTTPインジェストサーバ106は、たとえばHTTPまたは他のプロトコルを使用して、ネットワークを通じて後処理機能にデータをパイピングしてよい。
次いで、ABRトランスコーダおよびパッケージャ機能は、インジェストの後に、配信するためのコンテンツを準備する。コード変換パラメータは、クライアント102による影響を受ける可能性があり、クライアントからインジェストへのアップリンク品質に依拠し得る。
HTTPインジェストサーバ106は、受信されたHTTP要求のボディ部分を(たとえばチャンク配送または無制約のボディサイズを使用して)処理することにより、ビデオをインジェストしてよい。無制約のボディサイズを使用する場合、クライアント102は、TCP接続を終了してアップロードを終了し得る。チャンク配送を使用する場合、クライアント102は、アップロードを停止して、後続のトランザクション(たとえばビデオの解像度の変更)のためにTCP接続を再利用することができる。
図2は、HTTPインジェストサーバ106によるインジェストを容易にするためにビデオが分割される様子を図示するものである。示された例では、クライアント102は、符号化されたビデオフレームの連続したストリームを生成する。1つまたは複数のそのようなフレームが単一のフラグメント(たとえば一般的なメディアアプリケーションフォーマット(CMAF)のチャンク)(たとえばフラグメント210、212、214、216)へと収集され得る。CMAFチャンクがイントラフレームを含む必要はない。CMAFチャンクは、示されたように、少なくともmoofボックスおよびmdatボックスを含む。コーデック設定のために、先頭に初期化セグメント202(moovボックスを含む)が追加される。
図2に示されるように、長さが未定義のHTTPボディを有するHTTP 1.0タイプの実現が使用される。別の実現は、HTTPチャンク転送符号化を使用するものであろう。(たとえばHTTP 1.1規格によって規定されるような)HTTPチャンクは、1つまたは複数のフラグメント(またはCMAFチャンク)を含み得ることに留意されたい。さらに、フラグメントは1つまたは複数のHTTPチャンクに区分され得る。HTTPチャンクとフラグメントの間に従属性はないが、いくつかの実施形態では単一のフラグメントは単一のHTTPチャンクに含まれる。
図3は、いくつかの実施形態によるクライアント102およびHTTPインジェストサーバ106を図示するものである。
クライアント102は、非圧縮フレームの連続シーケンスを所与のフレームレートで供給するカメラ302を含む。次いで、エンコーダ304は、入力として一連の非圧縮フレームを取得し、出力として一連の圧縮フレームを生成する。圧縮フレームは、ピクチャのグループ(GOP)構造の内部に構築される。次いで、パッケージャ306は1つまたは複数のフレーム(GOP構造を有する)を収集してフラグメントへとパッケージ化する。フラグメントは、CMAFチャンク(たとえば少なくとも1つのムービーフラグメントボックス(moof)区分および1つのメディアデータボックス(mdat)区分(任意選択の他のISO−BMFFボックスを有する))、ISO−BMFFフラグメントまたは他の適切な構造であり得る。結果として、各フラグメント(一定の秒数の圧縮メディアデータを含む)は、一定のサイズを有する。次いで、パッケージャ306は、フラグメントの内部の圧縮メディアデータの量に応じて一定間隔でフラグメントを出力する。
パッケージャ306はバッファ308にフラグメント(たとえばCMAFチャンク)を書き込み、これはバッファモニタ309によって監視される。HTTP要求によりHTTP接続を開始したHTTPクライアント310は、HTTP要求のボディを作成するためにバッファ308からフラグメントのバイト(たとえばCMAFチャンク)を受信する。バッファモニタ309は、バッファ308の排出を含むアップロード処理を監視する。バッファレベル(またはサイズ)が上昇したとき(すなわちバッファにおけるデータ量が閾値に達したとき)、モニタ309は、制御指令を起動して符号化処理を修正するかまたは他の方策を採用する。示されるように、これは、エンコーダ304とパッケージャ306とモニタ309の間のフィードバックループの形をとり得る。HTTPクライアント310はHTTPインジェストサーバ106にデータ(たとえばバイトまたはHTTPチャンク)を送る。
クライアント102はトリガソース311も含み得る。いくつかの実施形態では、トリガソースはスケジューラでよい(たとえば指定された時間および/または時間間隔において、メディアフィードの始動や停止をトリガする、またはメディアフィードの始動をトリガする)。いくつかの実施形態では、トリガソース311はバッファモニタ309(たとえば解像度が変化した、または解像度の変化が予期される、という指示)に由来し得る。トリガソース311はクライアント102の一部分として表現されているが、いくつかの実施形態では、トリガソース311はクライアント102の外部にもあり得る。
クライアント102のモジュール302〜311はすべて同一ハウジングの内部に収容されてよく、別個のハウジングに収容されてもよい。たとえば、モジュール302〜311は、すべて移動体通信デバイス(MCD)(たとえばスマートフォン、タブレット、ラップトップコンピュータ)の構成要素であり、MCDのハウジングの内部に収容されている。別の例として、カメラ302は第1のデバイス(たとえばドローン)の一部分でよく、他の構成要素304〜311は分離したデバイス(たとえばスマートフォン、ラップトップ、タブレット)の一部分でよい。そのような実施形態では、カメラ302とエンコーダ304は無線リンクによって通信可能に接続され得る。いくつかの実施形態では、クライアント102はパッケージャ306を含まない。
示された実施形態では、HTTPインジェストサーバ106はHTTPサーバ312およびデジッタバッファ314を含む。
図4は、いくつかの実施形態においてバッファモニタ309が機能し得る様子の例示的説明を図示するものである。縦軸に沿って、符号化品質は、「フレームドロッピング」から、「低品質」(LQ)、「中品質」(MQ)、および「高品質」(HQ)へと向上する。バッファサイズ(バッファ308に記憶されるメディア時間がミリ秒で表現されている)は、横軸に沿って0msから800msに及ぶ。示されるように、バッファ308のサイズが第1の閾値(ここでは200ms)未満であれば、符号化品質はHQである。バッファ308のサイズが第1の閾値を上回って第2の閾値(ここでは400ms)未満であると、符号化品質はMQに劣化され得る。バッファ308のサイズが第2の閾値を上回って第3の閾値(ここでは600ms)未満であると、符号化品質はLQにさらに劣化され得る。バッファ308のサイズが第3の閾値を上回ると、符号化品質は、フレームドロッピングを採用することによってさらに劣化され得る。バッファモニタ309は、バッファ308のサイズを監視して、満足すべきライブストリーミングQoSパラメータを維持するために特定の符号化方策を採用する。バッファ308が満たされるにつれて符号化の品質を劣化させることに加えて、反対の処理(すなわちバッファサイズが縮小するとき符号化の品質を改善すること)も採用されてよい。バッファモニタ309は、バッファ308の現行のサイズのみを検討すればよく、またはバッファサイズを時間の関数と見なして、適切な符号化パラメータを判定するとき、過去のバッファサイズ(または予測される将来のサイズ)を考慮に入れてよい。
このように、高品質(HQ)、中品質(MQ)、および低品質(LQ)の符号化は異なるコーデック設定を指し、異なる視覚品質をもたらし得る。いくつかの実施形態では、バッファモニタ309は、エンコーダの量子化パラメータを変更して、符号化されたビデオのビットレートを変化させてよい。
バッファモニタ309は、いくつかの実施形態では、バッファ308のバッファレベルを連続的に検査する。バッファに新規のCMAFチャンクを追加するときバッファ308が空であれば、バッファモニタ309は行動しない。バッファレベルが上昇するとき(メディア時間が圧縮されることで示される)、バッファモニタ309は制御動作を採用する。最初のアクションはビデオ品質(たとえばビットレート)を低下させるものであり得る。バッファレベルが依然として低下しなければ、バッファモニタ309は、バッファ308からフレーム、CMAFチャンク、またはフラグメントをドロップし始めてよい。個々のフレームをドロップするときには、GOPの端からのフレームのみをドロップするべきである。GOPはピクチャのグループであり、従属するピクチャのセットは、独立して復号することができるフレームと一緒にグループ化されている。
各フラグメントが、単一のビデオフレーム(またはISO−BMFF用語のサンプル)までの少数のフレームなどGOPの一部分しか含まないとき、バッファモニタ309は十分なフラグメントをドロップすることができる。その際、バッファモニタ309は、フレーム間の符号化の従属性も考慮に入れてよい(その結果、フレームのドロップは、品質の低下を最小限にするために、ランダムではなく、選択的かつインテリジェントに実施される)。バッファモニタ309は、(たとえばフラグメントが全体のGOPを含む場合)フラグメントを編集する(または書き換える)ことによってデータを除去してもよい。たとえば、バッファモニタ309は、メディアデータボックス(mdat)から一定のビデオフレームのデータを除去し、それに応じてボックスを縮小してよい。トラックフラグメントランボックス(trun)は、メディアデータボックス(mdat)のあらゆるサンプル(またはビデオフレーム)のエントリを、サンプルタイミングおよびサンプルサイズとともに含む。フラグメントからサンプルを除去するとき、trunボックスから対応するサンプルエントリを除去して相当する量だけtrunボックスのサイズを縮小することなどにより、trunボックスを調節する必要がある。いくつかの実施形態では、バッファモニタ309が完結したフレームを容易にドロップし得るように、フラグメントは、GOPの(全体ではなく)一部分のみを搬送するように構築される。各フラグメントが含むフレームが1つだけのとき、バッファモニタ309は、いかなるフラグメントボックスも書き換えることなく個別のフレームをドロップすることができる。
GOP構造がI1、B1、P1、B2、P2、B3、P3、B4を有する(GOPサイズ=8フレーム)と想定する。この表記法では、I1は独立して復号され得るピクチャであり、一般的にはIフレーム、イントラフレーム、キーフレーム、ストリームへのランダムアクセスポイント、またはストリームへのサービスアクセスポイントと称され、PピクチャはIフレームまたは他のPフレームに依拠する予測されたピクチャであり、またBフレームは、少なくとも2つの他のフレーム(I、PまたはB)に依拠する双方向の予測されたフレームである。他のフレームおよび従属フレームのフレーム構築が可能である。
フラグメントが単一のフレーム(またはピクチャ)を含んでいるとき、各フレームはフラグメントにパックされる。この例では、バッファモニタ309がフレームをドロップするなら、最初にフレームB4、続けてそれぞれフレームB3、B2、B1、P3、P2、P1をドロップすることになる。
GOP構造がI1、P1、P2、P3、P4、P5、P6、P7を有する(GOPサイズ=8フレーム)と想定する。
この例では、バッファモニタ309は、フレームを、P7に続けてP6、P5、P4、P3、P2、P1とドロップするべきである。
いくつかの実施形態では、フレームドロッピングは、フレーム従属性を考慮に入れて、左から始めて右へ行われる。
制御機能が解像度または他の符号化構造パラメータを変更するとき(たとえばシーケンスパラメータのセット(SPS)またはピクチャパラメータのセット(PPS)が変更される場合)、HTTPクライアント310は、アップロードを停止して新規の初期化セグメントから開始する必要がある。
図5は、HTTPチャンク転送符号化を使用する連続したアップロードのための例示的コールフローを図示するものである。
HTTPクライアント310は、要求および要求ヘッダを用いてHTTPセッションを開始する。HTTPクライアント310は、要求ボディのために、HTTPチャンクをアップロードするためにバッファ308から読み取る。各HTTPチャンクはチャンクサイズから始まり、チャンクが続く。いくつかの実施形態では、各HTTPチャンクはCMAFチャンクに対応するが、技術的には整列要求はない。
HTTP要求が進行中のため、HTTPサーバ312からのHTTP応答はない。HTTPクライアント310がゼロサイズのHTTPチャンクを用いてHTTPボディを終了しているときに限り、サーバは「200 OK」または「201 Created」のようなHTTP応答コードを用いて応答する。
チャンク転送符号化を使用しない実施形態(たとえば転送符号化が利用不可能なHTTP 1.0トランザクション)では、HTTPクライアント310がTCP接続を終了する必要がある。
チャンク転送符号化を使用する実施形態では、(表現されたように)後続のHTTPトランザクションのために既存のTCP接続を再利用することが可能である。HTTPチャンク転送符号化の利益は、HTTPボディがHTTPトランザクションの開始において未知のサイズを有することができ、確立されたTCP接続を再利用することが可能なことである(持続性のTCP接続)。
この実施形態では、HTTPクライアント310が、(「無限に」データを生成している)ライブソースから入力データを受信するので、HTTPトランザクションの終了をトリガするには外部イベントが必要である。外部イベントは、ライブフィードの最後またはライブフィードの解像度変更(たとえばバッファサイズが大きすぎるときバッファモニタ309によって起動される)であり得る。解像度変更の場合には、HTTPクライアント310は新規のコーデック設定および初期化パラメータ(たとえば新規のmoovボックス)を送る必要がある。この場合、バッファモニタ309(外部トリガとして働いている)は、コーデック設定(たとえばビデオ解像度)を変更する必要性を検知して、符号化処理を停止し、HTTPクライアント310による、HTTPチャンクのアップリンクトラフィックの停止をトリガする(しかしTCP接続は確立したままである)。次いで、エンコーダ処理は、異なる解像度(または異なるコーデック設定またはそうでなければ異なる符号化パラメータ)を用いて再開するべきである(すなわち、エンコーダ304はビデオフレームの生成を再開するべきである)。エンコーダ304はまず、コーデック設定を含む初期化セグメント(たとえばISO BMFF moovボックス)を吐き出す。次いで、エンコーダ304は、パッケージャ306によって、バッファモニタ309のアップロードバッファに、圧縮されたビデオフレームを供給する。
一実施形態では、HTTPクライアント310またはバッファモニタ309は、新規のコーデック設定を用いてエンコーダ304を再始動する前に、バッファ308からすべてのデータを棄却する。別の実施形態では、バッファ308からの古いデータは、ビデオタイムラインにおけるギャップを回避するために維持される。たとえば、アップロードされていない、バッファ308におけるあらゆるデータが、ビデオシーケンスにおけるフレームに対応する。
いくつかのエンコーダは、目標ビットレートのような符号化設定に対する(たとえば量子化パラメータ(QP)を変更することによる)変更を許容しない可能性がある。その場合、クライアントは、変更されたコーデック設定パラメータを用いてエンコーダ304を再始動するが、新規の初期化セグメント(たとえばmoovボックス)は生成しない。
実施形態は、使用事例に依拠して、外部トリガのそれ以上の実現をサポートする。自動操縦のドローンまたはボディカメラもしくは監視カメラのようないくつかの使用事例では、遠隔オペレータは、(たとえば品質向上またはバッファ遅延短縮のために)解像度変更を起動することができる。別の外部トリガにはプログラムドスケジュールがあり得、カメラは、一定時間の間のみ記録するように(すなわち開始時間および停止時間のトリガに)、または一定の期間にわたってのみ記録するように(すなわち停止時間のみのトリガに)プログラムされる。
たとえば輻輳制御および再送信のために、サーバからのTCPレベルトランザクションがある。
HTTPチャンク配送を使用するアップリンクライブストリームのための例示のHTTP要求は以下の通りである。
Figure 0006903172
この例では、ここで、アップリンクストリームを示すためのHTTPの方法としてHTTP POSTが使用される。別の解決策にはHTTP PUTを使用するものがあり得る。HTTP要求におけるHTTPのURL(ここでは/upload/xyz/live−session1.mp4)は、アップリンクストリーミングセッションの目標チャネルを示す。URLはアカウントに特化された保証付きのものであり、そのため、アップロードすることができるのは認可された送り手のみである。アカウント所有者は、データを送ることを許容された送り手を認可する。
この例では、未知のHTTPボディサイズを示すコンテンツ長HTTPヘッダはない。HTTPチャンク転送符号化はヘッダの中に示されており、(すなわち「Transfer−Encoding: chunked」)HTTPボディが一連のHTTPチャンクであると示す。
図6は処理600を図示するものである。処理600は、たとえばクライアント(たとえばクライアント装置102)によって実施され得る。クライアントは、サーバとのトランスポートレイヤ接続(たとえばTCP接続)を確立する(ステップ602)。クライアントは、トランスポートレイヤ接続を通じて、ヘッダおよびボディを含むハイパーテキスト転送プロトコル(HTTP)要求メッセージをサーバに送信する(ステップ604)。HTTP要求メッセージのヘッダはHTTP要求メッセージのボディのサイズを示さない。クライアントは、メディアデータが生成されたとき、ライブメディアフィードに対応するメディアデータを送信バッファに記憶する(ステップ606)。メディアデータを生成するために品質セッティングが使用される。トランスポートレイヤ接続を通じてサーバにHTTP要求メッセージのボディを送信することは、1)クライアントが、送信バッファに現在記憶されているメディアデータの少なくとも一部分を、トランスポートレイヤ接続を通じてサーバに送信すること(ステップ608)と、2)クライアントが、メディアデータの前記少なくとも一部分を送信バッファから除去すること(ステップ610)と、3)クライアントが、送信バッファレベルおよび/または送信バッファレベルの経時変化(たとえばバッファレベル勾配)を基に、ライブメディアフィードに対応するメディアデータを生成するのに使用される品質セッティングを変更するべきかどうかを判定すること(ステップ612)と、4)クライアントが、送信終了トリガが検知されるまでステップ(1)、(2)および(3)を繰り返すこと(ステップ614)とを含む。
いくつかの実施形態では、メディアソースはカメラであり、実施形態ではカメラはクライアントの一体部品でよく、またはクライアントから遠隔でよい(たとえばBluetooth接続などのリンクを通じてクライアントに接続されたドローン上のカメラ)。いくつかの実施形態では、トリガは持続時間を指定するスケジュールに基づき、クライアントは、持続時間が過ぎたことを検知した結果としてトリガを検知する。
いくつかの実施形態では、この処理は、クライアントが、第1の品質セッティングを使用して、メディアソースによって生成されたメディアフレームの第1のセットを符号化し、符号化されたメディアフレームの第1のセットを生成することをさらに含む。送信バッファに記憶されたメディアデータが、符号化されたメディアフレームの第1のセットを含む。HTTP要求メッセージのボディを送信するステップは、クライアントが第1のコーデック設定情報を送信することをさらに含む。第1のコーデック設定情報は、第1の品質セッティングを示す情報を含む。この処理は、クライアントが、送信バッファに記憶されたデータ量を監視することと、クライアントが、送信バッファに記憶されたデータ量が閾値を超えたと判定することとをさらに含む。この処理は、クライアントが、送信バッファに記憶されたデータ量が閾値を超えたと判定した結果として、第2の品質セッティングを使用して、メディアソースによって生成されたメディアフレームの第2のセットを符号化し、符号化されたメディアフレームの第2のセットを生成することをさらに含む。この処理は、クライアントが、ライブメディアフィードに対応するさらなるメディアデータを送信バッファに記憶することをさらに含む。さらなるメディアデータは、符号化されたメディアフレームの第2のセットを含む。HTTP要求メッセージのボディを送信するステップは、クライアントが第2のコーデック設定情報を送信することをさらに含む。第2のコーデック設定情報は、第2の品質セッティングを示す情報を含む。
いくつかの実施形態では、この処理は、クライアントが、メディアソースによって生成されたメディアフレームの第1のセットを符号化して、符号化されたメディアフレームの第1のセットを生成することをさらに含む。送信バッファに記憶されたメディアデータが、符号化されたメディアフレームの第1のセットを含む。この処理は、クライアントが、送信バッファに記憶されたデータ量を監視することと、クライアントが、送信バッファに記憶されたデータ量が閾値を超えたと判定することとをさらに含む。この処理は、クライアントが、送信バッファに記憶されたデータ量が閾値を超えたと判定したことの結果として、少なくともメディアフレームの第1のセットのサブセットを、サーバに送信しないように、送信バッファからドロップすることをさらに含む。
いくつかの実施形態では、送信バッファが記憶するメディアフラグメントは、メディアフレームのサブセットを含み、またメディアフレームのサブセットに関するメタデータをさらに含み、送信バッファからメディアフレームのサブセットをドロップするステップは、メディアフラグメントがサーバに送信されないように、送信バッファからメディアフラグメントをドロップすることを含む。いくつかの実施形態では、この処理は、クライアントが、メディアソースによって生成された非圧縮ビデオフレームを取得することと、クライアントが、非圧縮ビデオフレームを符号化して、符号化されたビデオフレームを生成することと、クライアントが、i)符号化されたビデオフレームおよびii)符号化されたビデオフレームに関係するメタデータを含むビデオフラグメントを生成することと、クライアントが、このビデオフラグメントを送信バッファに記憶することとをさらに含む。
いくつかの実施形態では、ビデオフラグメントは、i)ISO−BMFFのビデオフラグメントおよびii)一般的なメディアアプリケーションフォーマット(CMAF)のビデオフラグメントのうち1つである。いくつかの実施形態では、ライブフィードは、ライブ配信のために受信エンティティ(サーバ)によってさらに処理され得る。
いくつかの実施形態によれば、(たとえばモバイルデバイスまたはユーザ機器(UE)上の)HTTPクライアントは、メディアソースによって生成されたライブメディア(オーディオおよび/またはビデオ)フィードをサーバにアップストリーミングする処理600を実施するように適合されている。いくつかの実施形態によれば、HTTPクライアントは、受信器と、送信器と、データ記憶システムと、プロセッサを備えるデータ処理装置とを含み、データ処理装置は、処理600を実施するように設定されて、データ記憶システム、送信器、および受信器に結合されている。
図7は処理700を図示するものである。処理700は、HTTPサーバ(たとえばHTTPインジェストサーバ106)によって、メディアソースによって生成されたライブメディア(オーディオおよび/またはビデオ)フィードをクライアントから受信するために実施され得る。HTTPサーバ106は、クライアントとのトランスポートレイヤ接続(たとえばTCP接続)を通じて、ボディを含むHTTP要求メッセージのためのハイパーテキスト転送プロトコル(HTTP)ヘッダを受信する(ステップ702)。HTTPヘッダは、HTTP要求メッセージのボディのサイズを示さない。HTTPサーバ106は、HTTPヘッダを受信した後にHTTP要求メッセージのボディを受信する(ステップ704)。HTTP要求メッセージのボディを受信することは、HTTPクライアントから第1のデータチャンクを受信すること(ステップ706)と、HTTPクライアントから第2のデータチャンクを受信すること(ステップ708)と、第1のデータチャンクを受信した後、第2のデータチャンクを受信する前に、ストリーミングビデオを配信するために、配信システムに第1のデータチャンクを発送すること(ステップ710)とを含む。
いくつかの実施形態によれば、HTTPサーバは、メディアソースによって生成されたライブメディア(オーディオおよび/またはビデオ)フィードをクライアントから受信する処理700を実施するように適合されている。いくつかの実施形態によれば、HTTPサーバは、受信器と、送信器と、データ記憶システムと、プロセッサを備えるデータ処理装置とを含み、データ処理装置は、処理700を実施するように設定されて、データ記憶システム、送信器、および受信器に結合されている。
図8は、いくつかの実施形態によるHTTPクライアント800の機能モジュールを示す図である。図8に示されるように、HTTPクライアント800は、トランスポートモジュール802、送信モジュール804、およびデータ記憶モジュール806を含む。HTTPクライアント800は、メディアソースによって生成されたライブメディア(オーディオおよび/またはビデオ)フィードをサーバにアップストリーミングするために使用され得る。トランスポートモジュール802は、サーバとのトランスポートレイヤ接続(たとえばTCP接続)を確立するように設定されている。送信モジュール804は、トランスポートレイヤ接続を通じて、ヘッダおよびボディを含むハイパーテキスト転送プロトコル(HTTP)要求メッセージをサーバに送信するように設定されている。HTTP要求メッセージのヘッダはHTTP要求メッセージのボディのサイズを示さない。データ記憶モジュール806は、メディアデータが生成されたとき、ライブメディアフィードに対応するメディアデータを、送信バッファに記憶するように設定されている。メディアデータを生成するために品質セッティングが使用される。トランスポートレイヤ接続を通じてサーバにHTTP要求メッセージのボディを送信することは、1)クライアントが、送信バッファに現在記憶されているメディアデータの少なくとも一部分を、トランスポートレイヤ接続を通じてサーバに送信することと、2)クライアントが、メディアデータの前記少なくとも一部分を送信バッファから除去することと、3)クライアントが、送信バッファレベルおよび/または送信バッファレベルの経時変化(たとえばバッファレベル勾配)を基に、ライブメディアフィードに対応するメディアデータを生成するために使用される品質セッティングを変更するべきかどうかを判定することと、4)クライアントが、送信終了トリガが検知されるまでステップ(1)、(2)および(3)を繰り返すこととを含む。
図9は、いくつかの実施形態によるHTTPサーバ900の機能モジュールを示す図である。図9に示されるように、HTTPサーバ900は、第1の受信モジュール902、第2の受信モジュール904、および発送モジュール906を含む。HTTPサーバ900は、メディアソースによって生成されたライブメディア(オーディオおよび/またはビデオ)フィードをクライアントから受信するために使用され得る。第1の受信モジュール902は、クライアントとのトランスポートレイヤ接続(たとえばTCP接続)を通じて、ボディを含むHTTP要求メッセージのためのハイパーテキスト転送プロトコル(HTTP)ヘッダを受信するように設定されている。HTTPヘッダは、HTTP要求メッセージのボディのサイズを示さない。第2の受信モジュール904は、第1の受信モジュールによってHTTPヘッダを受信した後に、HTTP要求メッセージのボディを受信するように設定されている。HTTP要求メッセージのボディを受信することは、HTTPクライアントから第1のデータチャンクを受信することと、HTTPクライアントから第2のデータチャンクを受信することと、第1のデータチャンクを受信した後、第2のデータチャンクを受信する前に、ストリーミングビデオを配信するために、発送モジュール906によって配信システムに第1のデータチャンクを発送することとを含む。
図10は、いくつかの実施形態によるHTTPクライアント102のブロック図である。図10に示されるように、HTTPクライアント102は、1つまたは複数のプロセッサ(P)1055(たとえば汎用マイクロプロセッサ、および/または、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)などの1つもしくは複数の他のプロセッサ)を含み得るデータ処理装置(DPA)1002と、HTTPクライアント102が、ANノード(たとえば基地局)にデータを送信することを可能にするための送信器1005、およびANノードからデータを受信することを可能にするための受信器1004(どちらもアンテナ1022に結合されている)と、1つもしくは複数の不揮発性記憶デバイスおよび/または1つもしくは複数の揮発性記憶デバイス(たとえばランダムアクセスメモリ(RAM))を含み得るローカル記憶ユニット(別名「データ記憶システム」)1008とを備え得る。HTTPクライアント102が汎用マイクロプロセッサを含む実施形態では、コンピュータプログラム製品(CPP)1041が提供され得る。CPP 1041は、コンピュータ可読命令(CRI)1044を含むコンピュータプログラム(CP)1043を記憶しているコンピュータ可読媒体(CRM)1042を含む。CRM 1042は、それだけではないが、磁気媒体(たとえばハードディスク)、光媒体、メモリデバイス(たとえばランダムアクセスメモリ)などの非一時的コンピュータ可読媒体でよい。いくつかの実施形態では、コンピュータプログラム1043のCRI 1044は、データ処理装置1002によって実行されたとき、HTTPクライアント102に、上記で説明されたステップ(たとえば流れ図を参照しながら上記で説明されたステップ)を実施させるように設定されている。他の実施形態では、HTTPクライアント102は、コードを必要とすることなく本明細書で説明されたステップを実施するように設定され得る。すなわち、たとえば、データ処理装置1002は、単に1つまたは複数のASICから成るものでよい。よって、本明細書で説明された実施形態の機能はハードウェアおよび/またはソフトウェアで実施され得る。
図11は、いくつかの実施形態によるHTTPサーバ106のブロック図である。図11に示されるように、HTTPサーバ106は、1つまたは複数のプロセッサ(P)1155(たとえば汎用マイクロプロセッサ、および/または、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)などの1つもしくは複数の他のプロセッサ)を含み得るデータ処理装置(DPA)1102と、HTTPサーバ106が、ネットワーク110に接続された他のノードにデータを送信することを可能にするための送信器(Tx)1145、および同ノードからデータを受信することを可能にするための受信器(Rx)1147を備えるネットワークインターフェース1148(たとえばインターネットプロトコル(IP)ネットワーク)であって、ネットワーク110に接続されているネットワークインターフェース1148と、UEとの無線通信のためにアンテナシステム1104に結合されたサーキットリ1103(たとえば無線トランシーバサーキットリ)と、1つもしくは複数の不揮発性記憶デバイスおよび/または1つもしくは複数の揮発性記憶デバイス(たとえばランダムアクセスメモリ(RAM))を含み得るローカル記憶ユニット(別名「データ記憶システム」)1108とを備え得る。HTTPサーバ106が汎用マイクロプロセッサを含む実施形態では、コンピュータプログラム製品(CPP)1141が提供され得る。CPP 1141は、コンピュータ可読命令(CRI)1144を含むコンピュータプログラム(CP)1143を記憶しているコンピュータ可読媒体(CRM)1142を含む。CRM 1142は、それだけではないが、磁気媒体(たとえばハードディスク)、光媒体、メモリデバイス(たとえばランダムアクセスメモリ)などの非一時的コンピュータ可読媒体でよい。いくつかの実施形態では、コンピュータプログラム1143のCRI 1144は、データ処理装置1102によって実行されたとき、HTTPサーバ106に、上記で説明されたステップ(たとえば流れ図を参照しながら上記で説明されたステップ)を実施させるように設定されている。他の実施形態では、HTTPサーバ106は、コードを必要とすることなく本明細書で説明されたステップを実施するように設定され得る。すなわち、たとえば、データ処理装置1102は、単に1つまたは複数のASICから成るものでよい。よって、本明細書で説明された実施形態の機能はハードウェアおよび/またはソフトウェアで実施され得る。
使用事例
スマートフォンおよびドローンのような他のデバイスの進化によってアップリンク方向が強調されており、そのようなデバイスはハイエンドカメラ(ブロードキャスト品質のビデオストリームを生成することができる)を装備している。前述の実施形態は、これらの傾向を利用するように独自に適合されているものである。例示の使用事例が以下で説明される。
使用事例の一例には、ドローンを使用してたとえば上空の視点からライブイベントを取り込むものがあり、ドローンは、イベントの上空を飛行して、ネットワーク(たとえばブロードバンドネットワーク)を介して放送局(または他のサードパーティ)にコンテンツを直接送ることができる。そのような使用事例では、ドローンは高品質カメラ302のみを装備すればよく、一定の目標を追うために、視線を用いる手動またはフォローミーモードで運転され得る。ドローンはモデム(たとえば5Gモデム)を有し、HTTPクライアント310が作動する任意のオペレーティングシステムを作動させてよい。すなわち、ドローンはクライアント102のインスタンスであり得る。または、他の実施形態では、ドローンのカメラ302は、ドローンの近くの、モジュール304〜310を含むデバイスにリンク(Bluetoothリンクなど)を通じて接続してよい。上記で説明されたように、そのようなデバイスは、即時処理のためにライブビデオを遠隔サーバ106にストリーミングするように動作可能である。この使用事例は、スキーおよびラリーレースのようなイベントを取り込むためにスポーツイベントにおいて使用され得、またオリンピックなどのスポーツイベントに使用され得る(たとえば2018年のオリンピックでは、5Gネットワークが、別々のオリンピック競技をブロードキャストしたり取り込んだりするのを支援し得る)。
別の例示の使用事例には、カメラ302を有するスマートフォンからニュースをブロードキャストするものがある。すなわち、スマートフォンはクライアント102のインスタンスであり得る。スマートフォン技術は改善されており、ハイエンドスマートフォンのビデオ品質は、既に、プロのテレビプロダクション(ニュース速報など)において使用するのに十分に適している。スマートフォンがカメラをホスティングすることができる場合には、記者は、実施形態により、任意の位置から、広帯域アクセスを用いてニュースを直ちに報道することができる。
別の使用事例では、カメラ302はヘルメットカメラ(たとえばスポーツ選手が着用したカメラ)またはボディカメラ(たとえば警察官が着用したボディカメラ)である。カメラは、モジュール304〜310を含むデバイスにライブ映像をストリーミングすることができ、このデバイスは、上記で説明されたように、即時処理のためにライブビデオを遠隔サーバ106にストリーミングするように動作可能である。カメラは、たとえば取り込みレイテンシを短縮するため、ビデオ品質を向上するため、または録画のスタート/ストップのために、遠隔で動作してよい。実施形態は、そのようなカメラフィードのライブアップリンクストリーミングをサポートする。
携帯電話またはボディカメラを有するユーザがソーシャルメディアプラットフォームによってライブストリームを自分のウェブサイトにインジェストすることができる場合には、実施形態は、ユーザ作成コンテンツ(UGC)の傾向をサポートするうえでも大いに役立つものである。
ISOベースメディアファイルフォーマット(BMFF)を使用する断片化されたMP4ファイルの使用
ISOベースメディアファイルフォーマット(BMFF)を使用する断片化されたMP4ファイル(fMP4)は、本明細書で開示された実施形態に適用可能である。ISO BMFFはISO/EC 14996−12に規定されている。ISO BMFFはボックス構造上に構築される。各ボックスは、ボックスサイズ情報(4バイト)から始まり、一般的には4文字(たとえばファイルタイプとしてのftyp)として表現されるボックスタイプ情報(これも4バイト)が続く。ボックスは、複合ボックスであり得、ボックスが他の子ボックスを含むことを意味する。断片化されたMP4ファイル(またはISO−BMFFファイル)は、通常のMP4ファイルとは異なる構造である。通常のMP4ファイルはファイルタイプ(ftyp)から始まり、1つだけのムービーボックスおよび他のボックスが続く。メディアデータは、ムービーフラグメントボックス(moof)と関連するメディアデータボックス(mdat)の組合せであるフラグメントによって記述される。
ftypボックスは、ファイルおよび使用されるコーデックの互換性情報を含む。
ムービーボックス(moov)はコーデック設定情報を含む。DRMで保護されたコンテンツについては、追加のDRM情報が含まれている。通常のMP4ファイルとは異なり、時間対サンプル表は空にしておかれる。時間対サンプル表は、サンプル期間、サンプル組成、および復号時間、ならびにメディアデータボックスにおけるサンプルの正確なバイトオフセットおよび長さを記述する。
断片化されたMP4ファイルは多くのメディアデータボックス(mdat)を含む。mdatボックスは、ボックスへと連結された個々のサンプルの実メディアデータを含む。断片化されたMP4ファイルにおける各メディアデータボックスについて、個別のメディアデータボックスに関するタイミングおよびバイトオフセット情報を含む専用のムービーフラグメントボックスがある。
例示の断片化されたMP4ファイルが含み得る所与のボックス階層構造がここで説明される。このファイルは、最上位に単一のftypボックスおよび単一のmoovボックスを含む。次いで、多くのムービーフラグメントボックス(moof)およびメディアデータボックス(mdat)がある。mdatボックスと同数のmoofボックスがある。(たとえばDRM記述のための)他のボックスも含まれ得る。
関連するメディアデータボックスとのムービーフラグメントの組合せは、フラグメントと見なされてよい。いくつかの実施形態では、このフラグメントはHTTPクライアントおよびサーバが連携する粒度の細かいオブジェクトでよい。ISO/IEC 23000−19(Common Media Application FormatすなわちCMAF)では、ムービーフラグメントボックスとメディアデータボックスの組合せはCMAFチャンクと呼ばれる。
断片化されたMP4ファイルのmoovボックスは、コーデック設定を含むので初期化セグメントまたは初期化部とも呼ばれる。説明されている例では、断片化されたMP4ファイルは、H.264コーデック(avc1ボックスおよび関連する属性−値エントリによって表現される)を使用する単一のビデオトラック(trakボックス)を含み得る。
フラグメントには追加のボックス(moofボックスとmdatボックスの組合せ)が含まれ得る。moofボックスは他のいくつかの子ボックスを含む複合ボックスである。ここで最も重要な子ボックスは、トラックフラグメントヘッダボックス(tfhd)およびトラックフラグメントランボックス(trun)である。フラグメントが(オーディオおよびビデオのような)複数のトラックからのメディアを含むとき、フラグメントには複数のトラックフラグメント(traf)ボックスがある。
例示のトラックフラグメントランボックス(trun)は、フラグメントのmdat区分が単一のサンプル(またはビデオフレーム)のみを含むことを示し得る。(trunボックスの)data_offsetフィールドは、サンプルの開始バイトのオフセットを示すmdat区分へのポインタである。
(現在説明された例では)フラグメントに単一のサンプルしかないので、トラックフラグメントランボックスにはサンプル長情報がない。この例におけるサンプルサイズは、default_sample_sizeとしてトラックフラグメントヘッダボックス(tfhd)に含まれている。
トラックフラグメントヘッダボックスは、default_sample_duration(たとえば100)、default_sample_size(たとえば4318)およびdefault_sample_flag(たとえば0x100c0)を含み得る。ここのdefault_sample_flagは、これがsyncサンプルであること、すなわち復号を開始するために使用され得ることを記述する。
(tfhdボックスの)default_sample_durationは、サンプル期間を(時間スケール目盛で)示す。(メディアヘッダボックスまたはmdhdにおける)初期化セグメントからのトラック時間スケールを用いて、サンプル期間を秒で計算することができる(たとえば100/3000秒)。ビデオは30フレーム/秒のフレームレートで記録される。
フラグメントに複数のサンプルがあるとき、各サンプルがそれ自体のサイズを有するので、trunボックスには少なくとも各サンプルのセグメントサイズが含まれている。
次にtrunボックスの別の例を説明する。フラグメントは30フレームを含み得、フラグはフレームの符号化従属性を表現し得る。この例は、セグメント化されたメディアファイルからのものであり得、フラグメント情報が、styp(セグメントタイプ)および任意選択のsidxボックスのような付加情報と、別個のファイルへと組み合わされ得ることを意味することに留意されたい。
この出願が優先権を主張する米国仮出願は、規格の変更のための提案を含む付録を含むものであった。この提案(別名「寄書」)の関連する部分を以下で再現する。
2 一般的な使用事例説明および一般的な考察
2.1 一般的な使用事例およびアーキテクチャの考察
作業項目は、ライブアップリンクビデオストリーミングのための枠組みを規格化することを目的とするものである。考察の1つは、様々な3GPPアクセスシステムの手段および能力、具体的には新規のNRアクセス技術の新規の能力および機能を使用するものである。様々な3GPPアクセスシステム(たとえばLTEまたはNR)が有する異なる能力は、デバイス実現(およびデバイスカテゴリ)およびシステム配備に依拠するものである。
ライブアップリンクビデオは、一般的にはライブビデオ配信サービスのための寄与またはインジェストとして使用される。「寄与」という用語は、プロのテレビプロダクションでは、多くの場合メディアのライブインジェストに関して使用されている。そのようなビデオシステムの主な特徴は、ビデオフローが、ビデオソースからいくつかの仲介ノード経由で一般的には多くの受信器へと一方向であることである。インジェストリンクと可能な配信システムの関係が図1に表現されている。インジェストリンクは配信システムから切り離され得る。または、インジェストサーバは、後の使用のためにビデオデータのみ記憶すればよく、または監視画面にビデオストリームを発送してよい。たとえば、ソースのライブビデオは後の使用のためにファイルシステムに記憶されてよく、またはライブビデオソースからのビデオ資料は最初にスクリーニングされ、番組ディレクタが特定のライブソースを使用すると判断したときに限って使用されてよい。
配信側では、今日(DASHのような)適応ビットレートストリーミングが一般に使用されている。適応ビットレートのために、コンテンツは、たとえば数百kbpsから数百Mbpsまでの範囲の複数の品質表示(ビデオプロファイルと呼ばれる)で供給される必要がある。使用法に依拠して、配信のためにDRM保護が付加される。IPベースのシステムのための配信システムは、一般的にはコンテンツ配送ネットワーク(CDN)である。もちろん他の配信システム(IPおよび従来のブロードキャストシステム)も可能である。
ライブのインジェスト側(作業項目の範囲である)では、ライブメディアソースはフレームを取り込み、次いで、インジェストサーバ(すなわちメディアシンク)にフレームを送信する。ビデオコンテンツは、一般にオーディオまたは他のメディアよりもはるかに高いデータレートを必要とするので、この文献ではビデオコンテンツに的を絞る。しかしながら、オーディオまたは他のメディアも本開示に適用可能である。
取り込まれたビデオフレームは、インジェストリンクを通じて送信する前に、ビットレート低減のために圧縮されてよい。いくつかの実施形態における寄与リンクは、アップリンク方向に使用される3GPPアクセスシステムである。
NATおよびファイアウォールが、デバイス側のインジェストリンク経路(たとえばパーソナルファイアウォール)および3GPPシステムにわたって存在する(これらの機能は規格化されていないが依然として存在する)せいで、通信のメディアソース(たとえばカメラ)は、インジェストサーバ(たとえばメディアシンク)への通信セッションを活性化するべきである。この理由は、ファイアウォールにおける「開放ポート」がセキュリティの理由または(会社の)セキュリティのルールのために多くの場合禁止されているためである。さらに、経路にネットワークアドレス変換機構(NAT)があるとき、専用のNATが目標デバイスにルールを発送しているはずである。
クライアントデバイスは、多くの場合動的IPアドレスを用いて設定される。ファイアウォールおよびNAT発送ルールは、一般的にはデバイスIPアドレスに依拠し、したがってすべてのIPアドレス変更に対して調節される必要がある。
インジェストサーバは、クライアントデバイスとは対照的に、入接続を安全に受信するように(たとえば到達可能なように)適切に設定される。インジェストサーバがNATの後にあるときには、対応するNATを発送するルールが設定される。
したがって、3GPPのUE側でサーバを作動させることは技術的に可能であるが、この提案はUE側から分離したサーバに的を絞る。
2.2 ビデオ圧縮の考察
プロのブロードキャスト作業では、ライブビデオハンドリングおよび外部イベントから放送スタジオへライブビデオを送ることのために、一般に、シリアルデジタルインターフェース(SDI)が使用される。SMPTEは、RTPによってSDI信号を搬送するために2022においてRTPペイロードフォーマット(IETF RFC 4175)を規定した(RTPセッションは様々な手段によって確立され得ることに留意されたい)。SDIは非圧縮ビデオフレームまたは軽く圧縮されたビデオフレーム(たとえばJPEG2000を使用するもの)のいずれかを搬送するので、高解像度ビデオの一般的なSDIビットレートはギガビット域にある。SDIの重要な利益は、すべてのフレームをオンにする能力(GoPタイプの依存構造がない)および低レイテンシ(すべてのフレームが直ちに送られる)である。
3GPPは、ビデオビットレートを低減するために、VoLTE−ビデオ(ViLTE)の低レイテンシの対話形ビデオ用にさえ、(H.264またはHEVCを使用する)圧縮ビデオを使用する。低レイテンシのビデオ圧縮のために、もたらされるビデオビットレートに対してレイテンシに優先権が与えられ、Bフレームのようないくつかの圧縮ツールが回避される。あらゆる詳細な標準化作業を始める前に、3GPPライブアップリンクビデオの解決策について目標のビットレート/ビットレート範囲およびレイテンシ制限について論じて合意することが推奨される。
2.3 適応ビットレートおよびQoS
3GPPシステムは、LTEまたはNRのようなアクセスシステムの異なるセットをサポートする。アクセスシステムは、サポートされるリンクのビットレートまたはQoSなど異なる能力を有する。これらの能力は、たとえば割り当てられたキャリア帯域幅といった配備実現にある程度依拠する(たとえばLTEキャリーは20MHz、10MHzのような異なる帯域幅をサポートすることができる)。アクセスシステムは、複数の無線キャリアのアップリンク能力を単一のアップリンクへと組み合わせることを意味するキャリアアグリゲーションをサポートし得る。
3GPPのUEは、デバイス実現およびデバイス製造業者に依拠して、異なる能力を有し得る。
システム特性はデバイスの運動パターンに依拠し得る。たとえば、チャネル特性は、デバイスが静止しているかそれとも動いているかということに依拠し得る。デバイスは、動いているとき、ある基地局から他の基地局に、またはあるアクセスネットワークから別のアクセスネットワークにさえ、ハンドオーバを実施する可能性がある。これはストリームを一時的に混乱させる可能性があり、このような混乱は、インジェストサーバの前にたとえばさらなるバッファリング(およびレイテンシ)を導入することによって緩和され得る。
リンクインジェストの一定の最小ビットレートの利用可能性の確率を増加するために、サービス品質(QoS)および他の技法が使用され得る。
目標の解決策が、ネットワークのサービス品質(QoS)機構から利益を得ることが推奨される。しかしながら、3GPPアクセスシステム、モビリティおよび配備における相違のために、アップリンクストリーミングの解決策は、異なるビットレートで正しく動くことができ、適応ビットレート変更さえサポートすることが推奨される。
2.4 セキュリティの考察
ライブインジェストの解決策は誤用に対して適切に保護されなければならない。少なくとも以下の誤用の注意事項がある。
ライブインジェストの解決策は、複数の独立したメディアソースとともに、順次にまたは同時に使用可能であるものとする。この解決策は、各メディアソースについて別個のアカウントの使用を考慮に入れるかまたはサポートするべきである。ここでのアカウントは、(ABRトランスコーダのような)インジェストおよび後処理の機能の系統であり、また場合によっては(ライブフィードが受信器に提供される様子は)配信システムでもあり得る。認可されたクライアントのみがそのようなアカウントに対するアクセスや制御が可能であること、および各アカウントが固有のインジェストポイント記述を有することが保証されなければならない。
さらに、インジェストサーバが着信データを求めて一定のインジェストポイント(たとえばポートまたはURL)においてリッスンしているとき、後処理および配信系統にメディアデータをインジェストすることができるのは認可されたソースのみとすることが保証されるべきである。そうでなければ、ライブサービスは、代替ビデオまたは単なる不要データを挿入することによってハイジャックされるかまたはスパムを送られてしまう。そのため、ユーザプレーンは、インジェストサーバが認可されたコンテンツデータと無認可のデータを区別することができるように保護されるべきである。
2.5 能力交換
図1に示されるように、インジェストサーバ(メディアシンク)は、後続の機能リンクABRトランスコーダにデータを発送する。システムは、あらゆるトランスコーディングまたはあらゆるビデオレンダリングについて、最初に入来ストリームを復号する必要がある。広範な異なるコーデックおよびコーデックプロファイルが利用可能である。
インジェストサーバは、受信したストリームを後処理し得ることを保証するために、能力交換および可能性としてコーデック交渉が必要とされる。最も簡単な形態は、インジェストサーバが(サブタイトルサポートまたはサポートされるコーデックのような)それ自体の能力を通知するかまたはあらわにし、その結果クライアント(メディアソース)がライブインジェスト用に適切なサブセットを選択することができるものである。セッティングをあらわにするかまたは交渉するための別の手段がある。
一般的なインジェストサーバの能力は、コーデックおよびコーデックプロファイルがサポートされることである。サブタイトルストリームまたは広告機会マーカ挿入の配置をサポートすることのような追加機能がある。
あらわにすること/交渉枠組みの能力は、拡張可能であるべきであり、製造業者の特定の能力を許容するべきである。
3 実現の選択肢
利用可能な技術的解決策のセットがあり、実現のために考慮に入れることができる。以下で、利用可能な実現の選択肢のうち少なくともいくつかを簡単に導入する。他の実現の選択肢が利用可能であることに留意されたい。
3.1 RTPベースの方式
3.1.1 一般原理
RTPは様々な環境においてビデオ送信のために一般に使用されているプロトコルである。H.264(RFC 6184)ビデオまたはHEVC(RFC 7798)ビデオなど、様々なRTPペイロードフォーマットが利用可能である。RTP(RFC 2250)内のMPEG2トランスポートストリーム多重データまたはシリアルデジタルインターフェース(SDI(SMPTE 2022−6))(RFC 4175)の非圧縮ビデオさえ搬送するために利用可能なフォーマットもある。SDIはプロのテレビプロダクションシステムにおいて広く使用されていることに留意されたい。
RTPはUDPトランスポートを使用し、UDPトランスポートを確立したり設定したりするのに専用プロトコルが必要とされる。SRTPとともに、セキュリティの枠組みがRTP用に利用可能である。代替として、または補足として、DTLSが使用され得る。
3.1.2 IMSベースのライブインジェストセッション確立
3GPP会話サービスはIMSを使用して構築され、IMSはアップリンクライブビデオ(3GPP TS 26.114)を供給するために必要とされるRTPユーザプレーンを確立するのによく適している。ライブアップリンクの場合には、通信チャネルは一方向のビデオ用にのみ使用され、IMSシステムの、この使用事例のために可能な改善が検討されるべきである。
3GPPは、既に、様々なRTPビデオペイロードフォーマット、とりわけH.264およびHEVCビデオに対するサポートを有する。必要なとき、他のペイロードフォーマットが付加され得る。
IMSは、ユニキャストトランスポートセッションを確立するため、ならびにまたコーデックの交渉および選択のためにSIP/SDPを使用する。IMSは認可および認証のための枠組みを提供する。誤用に対してユーザプレーンインジェストを保護するためにSRTPおよび/またはDTLSが使用され得る。
IMSに対してセッションが確立され得る。メディアソースはIMSクライアントである。メディアシンクは(ここでは)MRFである。別の例には、自動応答するIMSクライアントがメディアシンクとして使用されるものがあり得る。
3GPPのTS 26.114はビデオレート制御を規定している。SCReAMのような他のRTPビデオレート制御方式がある。1つの選択肢は、IETの標準化の下のSCReAM(マルチメディアのための自己計測されたレート整合)である。SCReAMはネットワーク輻輳制御を扱い、また各メディアソース(複数可)向けに推奨されるビットレートを提供する。SCReAMの実装形態が利用可能である。
3.1.3 RTSPベースのライブインジェストセッション確立
3GPPのパケット交換ストリーミングサービス(PSS)(3GPPのTS 26.234)は、ダウンリンクストリーミングセッションを確立するためにRTSPを使用する。インフラストラクチュアにRTSPサーバ(メディアシンク)が配置されている場合には、RTSP上にライブアップリンクビデオストリーミングの解決策を構築するのが当然のように思われる。
UE側にRTSPサーバを配置することは、技術的に可能であるが非実用的である。詳細には、消費者デバイスはファイアウォールを使用して遮蔽されている。いくつかのMNOは、ネットワークアドレス変換さえ使用してIPアドレスを動的に割り当てる。
RTSPクライアントはメディアソースとして働くべきであり、RTSPサーバはメディアシンクとして働くべきである。RTSPクライアントは、RTSPサーバに向けたRTPアップリンクストリーミングセッションを確立するものとする。インジェストリンクのためのUDPトランスポートを確立するために、既存のRTSP設定プロシージャが使用され得る。次いで、アップリンクライブストリーミングセッションが、「RTSP記録」方法を使用して始動され、可能性としてRTSPセットパラメータを使用して変更される。
選択されたコーデックおよびコーデック設定を通知するために、RTSPが記述する方法が使用される。RTSPインジェストサーバによってサポートされるコーデックを照会するには別個のプロシージャが使用されるべきである。
RTSPクライアントおよびUDPユーザプレーンデータを認可して認証するためのセキュリティプロシージャをさらに研究して論じる必要がある。誤用に対してユーザプレーンインジェストを保護するためにSRTPまたはDTLSが使用され得る。
たとえばカバレッジの劣化のためにスループットが低下した場合の遅延要求を満たすために、既存のRTPストリーム用の様々なビデオレート制御方式が実施されるべきである。段落3.1.2で導入されたようなSCReAMは実現の選択肢の1つである。
3.1.4 WebRTCベースのライブインジェストセッション確立
WebRTCは、今日、サービスのような通信のために、ブラウザにおいて広くサポートされている。WebRTCは双方向通信サービス用に設計されているが、一方向ストリーミングサービス向けに成功裡に試験され、かつ使用されている。WebRTCゲートウェイがインジェストサーバとして使用され得る。
WebRTCはSRTP/UDPを通信トランスポートとして使用する。SRTPとDTLSの組合せを使用するセキュリティが内蔵されている。
3.2 TCP上のRTMP
アップリンクストリーミングのための最も一般的なストリーミングプロトコルはAdobe社のリアルタイムメッセージ通信プロトコル(RTMP)である。RTMPは明確なポート(すなわちポート1935)上での確実なアップリンクストリーミングのためにTCPを使用する。インフラストラクチュア側のサーバ構成要素を用いるTCPおよびHTTPのベースのアップリンクストリーミングフォーマットの利益には、ファイアウォール問題およびNAT問題の予防がある。TCPを使用すると低レイテンシを保証するTCP設定が必要となり、これは、TCP送信バッファの適切なセッティングならびに低レイテンシを保証する輻輳制御アルゴリズム(詳細はtbdである)の使用を包含する。
RTMPストリームはRTMPプロトコルハンドラ方式(rtmp://)によって識別され得、そこで、rtmp://ex.com/live.swfの形式のURLはアプリケーションによって解釈され得る。RTMP方式のために別個の周知のポート(ポート1935)が規定されており、そのためポートを供給する必要はない。もちろん、RTMPのURLは他のポートを許容する。
RTMPはそれ自体のメッセージフォーマットおよび多重化機構を規定する。RTMPをサポートするために、送り側と受け側の両方がRTMPメッセージタイプおよびメッセージハンドリングプロシージャの必要な範囲をサポートする必要がある。
RTMPはメッセージベースのプロトコルである。各メッセージが長さを含み、多くの場合タイムスタンプおよびいくつかのタイプ情報を含む。メッセージは、多重化および交互配置のために、より小さいRTMPチャンクへと細分され得る。RTMPは多重化され得る「チャンクストリーム」を規定する。RTMPチャンクとHTTPチャンクの間には明瞭な相違があることに留意されたい。
RTMPは、すべてのビデオコーデック、オーディオコーデックおよびクローズドキャプション解決策をサポートするわけではない。たとえば、HEVCは現在サポートされていないように思われる。
ウィキペディアによれば、(RTMPTを使用して)HTTPを通じてRTMPをトンネルすることが可能である。しかしながら、RTMP規格にはこの機能の説明がない。従来、RTMPは、サーバからクライアントへのダウンリンクストリーミング用に主として使用されてきた。
3.3 MPEG2−TSまたは断片化されたMP4を用いるHTTP
HTTPはライブアップリンクビデオストリーミング用にも使用され得る。HTTPの利益には、HTTPSのようなすべてのHTTP特有のセキュリティ機能またはソース認証が再利用され得ることがある。ここで、アップリンクストリーミング用に適切なフォーマットは、MPEG2−TS[ISO/IEC 13818−1]または断片化されたMP4[ISO/IEC 14996−12]のいずれかである。さらに、インフラストラクチュアは、ポート80または443上のHTTPトラフィックまたはHTTPSトラフィックが、任意の中間ファイアウォールをあちこち移動することを許容するように設定されている。
どちらの場合も、モバイル3GPPデバイス上のHTTPクライアントは、HTTP要求を使用して、HTTPインジェストサーバに対するHTTPS接続を開始する。次いで、ライブアップリンクビデオは要求のHTTPボディを与えられる。HTTPクライアントは、HTTPボディにビデオコンテンツを直接パイピングするために、HTTP 1.0原理またはHTTP 1.1チャンク転送符号化を使用してよい。HTTPチャンク転送符号化は、クライアントが、確立したTCP接続を後続のHTTPトランザクションのために再利用することを可能にする(持続性のTCP接続)。TCPを通じてのRTMPの場合と同様に、TCPの正確な設定を保証することが重要である。
図5は、HTTP上のライブインジェストフォーマットを有する断片化されたMP4を使用するコールフローを図示するものである。メディアソースは、ここではHTTPクライアントである。メディアシンクは、ここではHTTPサーバであり、受信したストリームチャンクを、ここではデジッタバッファとして図示されている後処理チェーンへ直ちに発送する。
クライアントは、ライブアップリンクストリームが始動される前に、最初にHTTPインジェストサーバの能力を照会して検査する。HTTPは能力を照会するために使用され得る。
次いで、HTTPクライアントは、HTTP要求のボディの内部のHTTPチャンク配送を使用してライブストリームをアップロードする。HTTPチャンクとして搬送されるフラグメントは、ISO/IEF 14996−12に従ってフォーマットされている。ムービーボックス(「moov」)は、コーデックと、コーデック設定と、可能性として他の情報とを含む。クライアントがライブインジェストを終了したとき、次いで、サーバがHTTP応答を供給する(この場合201が作成される)。
MPEG2_TS[ISO/EC 13818−1]がインジェストフォーマットとして使用されるとき、フラグメントはMPEG2−TSに従ってフォーマットされる。
この解決策ではレート制御が実施されるべきであり、これは、好ましくはTXバッファを監視し、それに応じてメディアソースを調節することができる。
4 解決策の必要条件
ライブアップリンクストリーミングの枠組みにおける標準化の研究のために、以下の解決策の機能(排他的リストではない)が提案される。
NATおよびファイアウォールの存在を考慮に入れるものとする。インジェストサーバは、インフラストラクチュア側に配置されるものとし、その結果、メディアソースは常に3GPPのUE側の通信イニシエータに配置される。
解決策はライブインジェストのみに的を絞るものとする。メディア配信またはメディア記憶の実現はインジェストから独立したものとする。
解決策は認可および認証をサポートするものとする。ライブインジェストトラフィックは、ユーザのアカウントまたはチャネルに対して分離可能にするべきである。
インジェストサーバにビデオトラフィックをインジェストすることができるのは、認証されたトラフィックソースのみとする。
解決策は3GPP QoSの枠組みを導入することができるべきである。
解決策は、(NRまたはLTEのような)利用可能なアクセスネットワークに依拠して、異なるビットレートをサポートするべきである。
解決策は、少なくともH.264ビデオコーデックおよびHEVCビデオコーデックをサポートするものとする。
解決策は、たとえばモビリティといったリンク条件の変化に応じてビットレートを適合させることができるべきである。
解決策は、(低レイテンシのライブインジェストが必要なとき)品質/もたらされるビットレートよりもレイテンシを優先させること、または(より優れた圧縮効率もしくは再送信のための時間があるとき)レイテンシよりも品質/もたらされるビットレートを優先させることができるべきである。
解決策は能力検索または能力交渉をサポートするべきである。
5 提案
上記で与えられた情報を考慮に入れることを提案する。(たとえば段落2、3および4で示されたような)解決策の設計要件および注意事項を収集するために、永続ドキュメントまたは技術報告書を作成することを提案する。
ライブアップリンクビデオストリーミングの枠組みに関する技術仕様に(段落3.3で説明されたような)HTTPベースの解決策を含めることをさらに提案する。
本明細書では本開示の様々な実施形態が説明されているが、例としてのみ提示されており、限定するものではないことを理解されたい。したがって、本開示の広さおよび範囲は前述の例示的実施形態のいかなるものによっても制限されるべきではない。その上に、前述の要素のあらゆる組合せが、すべての可能な変形形態において、本明細書で別様に示されることまたは文脈によって別途明らかに否定されることがなければ本開示によって包含される。
加えて、上記で説明されて図面に図示された処理は一連のステップとして示されているが、これは単なる具体例のためのものである。それゆえに、いくつかのステップを付加すること、いくつかのステップを省略すること、ステップの順番を再構成すること、およびいくつかのステップを並行させることが企図される。

Claims (20)

  1. メディアソースによって生成されたライブメディア(オーディオおよび/またはビデオ)フィードをサーバ(106)にアップストリーミングするためにクライアント装置(「クライアント」)(102)によって実施される方法であって、
    前記クライアント(102)が前記サーバ(106)とのトランスポートレイヤ接続(たとえばTCP接続)を確立することと、
    前記クライアント(102)が、前記トランスポートレイヤ接続を通じて、ヘッダおよびボディを含むハイパーテキスト転送プロトコル(HTTP)要求メッセージを前記サーバ(106)に送信することであって、前記HTTP要求メッセージの前記ヘッダが前記HTTP要求メッセージの前記ボディのサイズを示さない、HTTP要求メッセージを前記サーバ(106)に送信することと、
    メディアデータが生成されたとき、前記クライアント(102)が、前記ライブメディアフィードに対応する前記メディアデータを送信バッファ(308)に記憶することであって、前記メディアデータを生成するために品質セッティングが使用される、前記ライブメディアフィードに対応する前記メディアデータを送信バッファ(308)に記憶することと
    を含み、前記トランスポートレイヤ接続を通じて前記サーバ(106)に前記HTTP要求メッセージの前記ボディを送信することが、
    1)前記クライアント(102)が、前記送信バッファ(308)に現在記憶されている前記メディアデータの少なくとも一部分を、前記トランスポートレイヤ接続を通じて前記サーバ(106)に送信することと、
    2)前記クライアント(102)が、前記メディアデータの前記少なくとも一部分を前記送信バッファ(308)から除去することと、
    3)前記クライアント(102)が、前記ライブメディアフィードに対応する前記メディアデータを発生するために使用される前記品質セッティングを変更するべきかどうかを判定することと、
    4)前記クライアント(102)が、送信終了トリガが検知されるまでステップ(1)、(2)および(3)を繰り返すことと、
    を含む、方法。
  2. 前記メディアソースがカメラ(302)である、請求項1に記載の方法。
  3. 前記カメラ(302)が前記クライアント(102)と一体となる部品である、請求項2に記載の方法。
  4. 前記カメラ(302)が前記クライアント(102)から遠隔である、請求項2に記載の方法。
  5. 前記送信終了トリガは持続時間を指定するスケジュールに基づくものであり、前記クライアント(102)は前記持続時間が過ぎたことを検知した結果として前記送信終了トリガを検知する、請求項1から4のいずれか一項に記載の方法。
  6. 前記クライアント(102)が、第1の品質セッティングを使用して、前記メディアソースによって生成されたメディアフレームの第1のセットを符号化し、符号化されたメディアフレームの第1のセットを生成することであって、前記送信バッファ(308)に記憶された前記メディアデータが、前記符号化されたメディアフレームの第1のセットを含み、
    前記HTTP要求メッセージの前記ボディを送信する前記ステップが、前記クライアント(102)が第1のコーデック設定情報を送信することをさらに含み、前記第1のコーデック設定情報が前記第1の品質セッティングを示す情報を含む、第1の品質セッティングを使用して符号化されたメディアフレームの第1のセットを生成することと、
    前記クライアント(102)が、前記送信バッファ(308)に記憶されたデータ量を監視することと、
    前記クライアント(102)が、前記送信バッファ(308)に記憶された前記データ量が閾値を超えたと判定することと、
    前記クライアント(102)が、前記送信バッファ(308)に記憶された前記データ量が前記閾値を超えたと判定した結果として、第2の品質セッティングを使用して、前記メディアソースによって生成されたメディアフレームの第2のセットを符号化し、符号化されたメディアフレームの第2のセットを生成することと、
    前記クライアント(102)が、前記ライブメディアフィードに対応するさらなるメディアデータを前記送信バッファ(308)に記憶することであって、前記さらなるメディアデータが前記符号化されたメディアフレームの第2のセットを含む、前記ライブメディアフィードに対応するさらなるメディアデータを前記送信バッファ(308)に記憶することと
    をさらに含み、
    前記HTTP要求メッセージの前記ボディを送信する前記ステップが、前記クライアント(102)が第2のコーデック設定情報を送信することをさらに含み、前記第2のコーデック設定情報が前記第2の品質セッティングを示す情報を含む、請求項1から5のいずれか一項に記載の方法。
  7. 前記クライアント(102)が、前記メディアソースによって生成されたメディアフレームの第1のセットを符号化して、符号化されたメディアフレームの第1のセットを生成することであって、前記送信バッファ(308)に記憶された前記メディアデータが、前記符号化されたメディアフレームの第1のセットを含む、メディアフレームの第1のセットを符号化して符号化されたメディアフレームの第1のセットを生成することと、
    前記クライアント(102)が、前記送信バッファ(308)に記憶されたデータ量を監視することと、
    前記クライアント(102)が、前記送信バッファ(308)に記憶された前記データ量が閾値を超えたと判定することと、
    前記クライアント(102)が、前記送信バッファ(308)に記憶された前記データ量が前記閾値を超えたと判定したことの結果として、少なくとも前記メディアフレームの第1のセットのサブセットを、前記サーバ(106)に送信しないように、前記送信バッファ(308)からドロップすることと
    をさらに含む、請求項1から5のいずれか一項に記載の方法。
  8. 前記送信バッファ(308)が記憶するメディアフラグメントが、前記メディアフレームの第1のセットの前記サブセットを含み、またメディアフレームの前記サブセットに関するメタデータをさらに含み、
    前記送信バッファ(308)から前記メディアフレームの第1のセットの前記サブセットをドロップする前記ステップが、前記メディアフラグメントが前記サーバ(106)に送信されないように、前記送信バッファ(308)から前記メディアフラグメントをドロップすることを含む、請求項に記載の方法。
  9. 前記クライアント(102)が、前記メディアソースによって生成された非圧縮ビデオフレームを取得することと、
    前記クライアント(102)が、前記非圧縮ビデオフレームを符号化して、符号化されたビデオフレームを生成することと、
    前記クライアント(102)が、i)前記符号化されたビデオフレームおよびii)前記符号化されたビデオフレームに関係するメタデータを含むビデオフラグメントを発生することと、
    前記クライアント(102)が、前記フラグメントを前記送信バッファ(308)に記憶することと
    をさらに含む、請求項1から8のいずれか一項に記載の方法。
  10. 前記ビデオフラグメントが、i)ISO−BMFFビデオフラグメントおよびii)一般的なメディアアプリケーションフォーマット(CMAF)ビデオフラグメントのうち1つである、請求項9に記載の方法。
  11. 前記ライブメディアフィードが、ライブ配信のために、前記受信サーバ(106)によってさらに処理され得る、請求項1から10のいずれか一項に記載の方法。
  12. 前記クライアント(102)が、前記送信バッファ(308)に現在記憶されている前記メディアデータの少なくとも一部分を、前記トランスポートレイヤ接続を通じて前記サーバ(106)に送信することが、前記送信バッファ(308)に現在記憶されている前記メディアデータの少なくとも一部分を含むデータチャンクを送信することを含む、請求項1から11のいずれか一項に記載の方法。
  13. 前記クライアント(102)が、前記ライブメディアフィードに対応する前記メディアデータを生成するのに使用される前記品質セッティングを変更するべきかどうかを前記判定することが、送信バッファレベルおよび/または前記送信バッファレベルの経時変化(たとえばバッファレベル勾配)を基に行われる、請求項1から12のいずれか一項に記載の方法。
  14. メディアソースによって生成されたライブメディア(オーディオおよび/またはビデオ)フィードをクライアント(102)から受信するためにサーバ(106)によって実施される方法であって、
    前記クライアント(102)とのトランスポートレイヤ接続(たとえばTCP接続)を通じて、ボディを含むHTTP要求メッセージのためのハイパーテキスト転送プロトコル(HTTP)ヘッダを受信することであって、前記HTTPヘッダが前記HTTP要求メッセージの前記ボディのサイズを示さない、HTTPヘッダを受信することと、
    前記HTTPヘッダを受信した後に前記HTTP要求メッセージの前記ボディを受信することであって、
    記クライアント(102)から第1のデータチャンクを受信することと、
    記クライアント(102)から第2のデータチャンクを受信することと、
    前記第1のデータチャンクを受信した後、前記第2のデータチャンクを受信する前に、ストリーミングビデオを配信するために、配信システムに前記第1のデータチャンクを発送することと
    を含む、前記HTTP要求メッセージの前記ボディを受信することと
    を含む方法。
  15. メディアソースによって生成されたライブメディア(オーディオおよび/またはビデオ)フィードをサーバ(106)にアップストリーミングするための、(たとえばモバイルデバイスまたはユーザ機器(UE)上の)HTTPクライアント(102)であって、
    前記サーバ(106)とのトランスポートレイヤ接続(たとえばTCP接続)を確立することと、
    前記トランスポートレイヤ接続を通じて、ヘッダおよびボディを含むハイパーテキスト転送プロトコル(HTTP)要求メッセージを前記サーバ(106)に送信することであって、前記HTTP要求メッセージの前記ヘッダが前記HTTP要求メッセージの前記ボディのサイズを示さない、HTTP要求メッセージを前記サーバ(106)に送信することと、
    メディアデータが生成されたとき、前記ライブメディアフィードに対応する前記メディアデータを送信バッファ(308)に記憶することであって、前記メディアデータを生成するために品質セッティングが使用される、前記ライブメディアフィードに対応する前記メディアデータを送信バッファ(308)に記憶することと
    を行うように適合され、前記トランスポートレイヤ接続を通じて前記サーバ(106)に前記HTTP要求メッセージの前記ボディを送信することが、
    1)前記HTTPクライアント(102)が、前記送信バッファ(308)に現在記憶されている前記メディアデータの少なくとも一部分を、前記トランスポートレイヤ接続を通じて前記サーバ(106)に送信することと、
    2)前記HTTPクライアント(102)が、前記メディアデータの前記少なくとも一部分を前記送信バッファ(308)から除去することと、
    3)前記HTTPクライアント(102)が、前記ライブメディアフィードに対応する前記メディアデータを生成するために使用される前記品質セッティングを変更するべきかどうかを判定することと、
    4)前記HTTPクライアント(102)が、送信終了トリガが検知されるまでステップ(1)、(2)および(3)を繰り返すことと、
    を含む、HTTPクライアント(102)。
  16. メディアソースによって生成されたライブメディア(オーディオおよび/またはビデオ)フィードをサーバ(106)にアップストリーミングするための、(たとえばモバイルデバイスまたはユーザ機器(UE)上の)HTTPクライアント(102)であって、
    前記サーバ(106)とのトランスポートレイヤ接続(たとえばTCP接続)を確立するように設定されたトランスポートモジュールと、
    前記トランスポートレイヤ接続を通じて、ヘッダおよびボディを含むハイパーテキスト転送プロトコル(HTTP)要求メッセージを前記サーバ(106)に送信するように設定された送信モジュールであって、前記HTTP要求メッセージの前記ヘッダが前記HTTP要求メッセージの前記ボディのサイズを示さない、送信モジュールと、
    メディアデータが生成されたとき、前記ライブメディアフィードに対応する前記メディアデータを送信バッファ(308)に記憶するように設定されたデータ記憶モジュールであって、前記メディアデータを生成するために品質セッティングが使用され、前記トランスポートレイヤ接続を通じて前記サーバ(106)に前記HTTP要求メッセージの前記ボディを送信することが、
    1)前記HTTPクライアント(102)が、前記送信バッファ(308)に現在記憶されている前記メディアデータの少なくとも一部分を、前記トランスポートレイヤ接続を通じて前記サーバ(106)に送信することと、
    2)前記HTTPクライアント(102)が、前記メディアデータの前記少なくとも一部分を前記送信バッファ(308)から除去することと、
    3)前記HTTPクライアント(102)が、送信バッファレベルおよび/または前記送信バッファレベルの経時変化(たとえばバッファレベル勾配)を基に、前記ライブメディアフィードに対応する前記メディアデータを生成するために使用される前記品質セッティングを変更するべきかどうかを判定することと、
    4)前記HTTPクライアントが、送信終了トリガが検知されるまでステップ(1)、(2)および(3)を繰り返すことと
    を含む、データ記憶モジュールと
    を備えるHTTPクライアント(102)。
  17. メディアソースによって生成されたライブメディア(オーディオおよび/またはビデオ)フィードをサーバ(106)にアップストリーミングするための、(たとえばモバイルデバイスまたはユーザ機器(UE)上の)HTTPクライアント(102)であって、
    受信器と、
    送信器と、
    データ記憶システムと、
    プロセッサを備え、前記データ記憶システム、前記送信器、および前記受信器に結合されたデータ処理装置であって、
    前記サーバ(106)とのトランスポートレイヤ接続(たとえばTCP接続)を確立することと、
    前記トランスポートレイヤ接続を通じて、ヘッダおよびボディを含むハイパーテキスト転送プロトコル(HTTP)要求メッセージを前記サーバ(106)に送信することであって、前記HTTP要求メッセージの前記ヘッダが前記HTTP要求メッセージの前記ボディのサイズを示さない、HTTP要求メッセージを前記サーバ(106)に送信することと、
    メディアデータが生成されたとき、前記ライブメディアフィードに対応する前記メディアデータを送信バッファ(308)に記憶することであって、前記メディアデータを生成するために品質セッティングが使用される、前記ライブメディアフィードに対応する前記メディアデータを送信バッファ(308)に記憶することと
    を行うように設定され、前記トランスポートレイヤ接続を通じて前記サーバ(106)に前記HTTP要求メッセージの前記ボディを送信することが、
    1)前記HTTPクライアント(102)が、前記送信バッファ(308)に現在記憶されている前記メディアデータの少なくとも一部分を、前記トランスポートレイヤ接続を通じて前記サーバ(106)に送信することと、
    2)前記HTTPクライアント(102)が、前記メディアデータの前記少なくとも一部分を前記送信バッファ(308)から除去することと、
    3)前記HTTPクライアント(102)が、前記ライブメディアフィードに対応する前記メディアデータを生成するために使用される前記品質セッティングを変更するべきかどうかを判定することと、
    4)前記HTTPクライアント(102)が、送信終了トリガが検知されるまでステップ(1)、(2)および(3)を繰り返すことと、
    を含む、データ処理装置と
    を備えるHTTPクライアント(102)。
  18. メディアソースによって生成されたライブメディア(オーディオおよび/またはビデオ)フィードをHTTPクライアント(102)から受信するためのHTTPサーバ(106)であって、
    前記HTTPクライアント(102)とのトランスポートレイヤ接続(たとえばTCP接続)を通じて、ボディを含むHTTP要求メッセージのためのハイパーテキスト転送プロトコル(HTTP)ヘッダを受信することであって、前記HTTPヘッダが前記HTTP要求メッセージの前記ボディのサイズを示さない、HTTPヘッダを受信することと、
    前記HTTPヘッダを受信した後に前記HTTP要求メッセージの前記ボディを受信することであって、
    前記HTTPクライアント(102)から第1のデータチャンクを受信することと、
    前記HTTPクライアント(102)から第2のデータチャンクを受信することと、
    前記第1のデータチャンクを受信した後、前記第2のデータチャンクを受信する前に、ストリーミングビデオを配信するために、配信システムに前記第1のデータチャンクを発送することとを含む、HTTP要求メッセージのボディを受信することと
    を行うように適合されているHTTPサーバ(106)。
  19. メディアソースによって生成されたライブメディア(オーディオおよび/またはビデオ)フィードをHTTPクライアント(102)から受信するためのHTTPサーバ(106)であって、
    前記HTTPクライアント(102)とのトランスポートレイヤ接続(たとえばTCP接続)を通じて、ボディを含むHTTP要求メッセージのためのハイパーテキスト転送プロトコル(HTTP)ヘッダを受信するように設定された第1の受信モジュールであって、前記HTTPヘッダが前記HTTP要求メッセージの前記ボディのサイズを示さない、第1の受信モジュールと、
    前記第1の受信モジュールによって前記HTTPヘッダを受信した後に、前記HTTP要求メッセージの前記ボディを受信するように設定された第2の受信モジュールであって、前記HTTP要求メッセージの前記ボディを受信することが、
    前記HTTPクライアント(102)から第1のデータチャンクを受信することと、
    前記HTTPクライアント(102)から第2のデータチャンクを受信することと、
    前記第1のデータチャンクを受信した後、前記第2のデータチャンクを受信する前に、ストリーミングビデオを配信するために、発送モジュールによって配信システムに前記第1のデータチャンクを発送することと
    を含む、第2の受信モジュールと
    を備えるHTTPサーバ(106)。
  20. メディアソースによって生成されたライブメディア(オーディオおよび/またはビデオ)フィードをHTTPクライアント(102)から受信するためのHTTPサーバ(106)であって、
    受信器と、
    送信器と、
    データ記憶システムと、
    プロセッサを備え、前記データ記憶システム、前記送信器、および前記受信器に結合されたデータ処理装置であって、
    前記HTTPクライアント(102)とのトランスポートレイヤ接続(たとえばTCP接続)を通じて、ボディを含むHTTP要求メッセージのためのハイパーテキスト転送プロトコル(HTTP)ヘッダを受信することであって、前記HTTPヘッダが前記HTTP要求メッセージの前記ボディのサイズを示さない、HTTPヘッダを受信することと、
    前記HTTPヘッダを受信した後に前記HTTP要求メッセージの前記ボディを受信することであって、
    前記HTTPクライアント(102)から第1のデータチャンクを受信することと、
    前記HTTPクライアント(102)から第2のデータチャンクを受信することと、
    前記第1のデータチャンクを受信した後、前記第2のデータチャンクを受信する前に、ストリーミングビデオを配信するために、配信システムに前記第1のデータチャンクを発送することと
    を含む、前記HTTP要求メッセージの前記ボディを受信することを行うように設定されているデータ処理装置と
    を備えるHTTPサーバ(106)。
JP2019569783A 2017-06-20 2018-06-11 ライブアップリンク適応ストリーミングのための装置および方法 Active JP6903172B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762522422P 2017-06-20 2017-06-20
US62/522,422 2017-06-20
PCT/EP2018/065381 WO2018234080A1 (en) 2017-06-20 2018-06-11 APPARATUSES AND METHODS FOR ADAPTIVE DIRECT UPLINK CONTINUOUS BROADCAST

Publications (2)

Publication Number Publication Date
JP2020524338A JP2020524338A (ja) 2020-08-13
JP6903172B2 true JP6903172B2 (ja) 2021-07-14

Family

ID=62597519

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019569783A Active JP6903172B2 (ja) 2017-06-20 2018-06-11 ライブアップリンク適応ストリーミングのための装置および方法

Country Status (7)

Country Link
EP (1) EP3643032B1 (ja)
JP (1) JP6903172B2 (ja)
KR (1) KR102262813B1 (ja)
CN (1) CN110785978B (ja)
AU (1) AU2018288502B2 (ja)
CO (1) CO2019014076A2 (ja)
WO (1) WO2018234080A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111586344B (zh) * 2019-02-18 2022-03-11 浙江宇视科技有限公司 一种网络摄像机的消息发送方法及装置
KR102337811B1 (ko) * 2020-03-09 2021-12-09 국방과학연구소 가변적 협대역 네트워크 환경에 적응적인 영상 압축 장치 및 영상 압축 방법
US11438398B2 (en) 2020-03-30 2022-09-06 Tencent America LLC 3rd generation partnership project (3gpp) framework for live uplink streaming (flus) sink capabilities determination
CN112532719B (zh) * 2020-11-26 2024-04-02 腾讯科技(深圳)有限公司 信息流的推送方法、装置、设备及计算机可读存储介质
CN112583818B (zh) * 2020-12-08 2021-12-24 清华大学 针对移动Web服务的自适应传输协议选择方法和装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7418007B1 (en) * 2000-09-20 2008-08-26 General Instrument Corporation Method and apparatus for determining a transmission bit rate in a statistical multiplexer
JP4384238B2 (ja) * 2008-05-26 2009-12-16 株式会社東芝 コンテンツ送信装置、コンテンツ受信装置、およびコンテンツアップロード方法
JP5640649B2 (ja) * 2010-10-27 2014-12-17 ソニー株式会社 データ通信方法及び情報処理装置
US10079710B2 (en) * 2012-02-16 2018-09-18 Brightcove, Inc. System and method for dynamic file availability during encoding
CN103297452B (zh) * 2012-02-24 2016-08-24 北京对角巷科技发展有限公司 一种在互联网发布和直播流媒体的方法及系统
WO2014041547A1 (en) * 2012-09-13 2014-03-20 Yevvo Entertainment Inc. Live video broadcasting from a mobile device
US10476930B2 (en) * 2014-01-06 2019-11-12 Intel IP Corporation Client/server signaling commands for dash
WO2015131934A1 (en) * 2014-03-05 2015-09-11 2Kb Beteiligungs Gmbh System and method for live video streaming
US20160088326A1 (en) * 2014-09-23 2016-03-24 Watchcorp Holdings LLC Distributed recording, managing, and accessing of surveillance data within a networked video surveillance system
JP2017004220A (ja) * 2015-06-09 2017-01-05 株式会社東芝 通信装置、通信システム、通信方法およびプログラム

Also Published As

Publication number Publication date
AU2018288502A1 (en) 2020-02-06
AU2018288502B2 (en) 2021-08-26
JP2020524338A (ja) 2020-08-13
CN110785978A (zh) 2020-02-11
CN110785978B (zh) 2022-03-15
KR102262813B1 (ko) 2021-06-09
WO2018234080A1 (en) 2018-12-27
EP3643032B1 (en) 2021-04-07
EP3643032A1 (en) 2020-04-29
CO2019014076A2 (es) 2020-01-17
KR20200007947A (ko) 2020-01-22

Similar Documents

Publication Publication Date Title
US11805163B2 (en) Apparatuses, methods, computer programs, and computer program products for live uplink adaptive streaming
JP6903172B2 (ja) ライブアップリンク適応ストリーミングのための装置および方法
KR102093618B1 (ko) 미디어 데이터를 송수신하기 위한 인터페이스 장치 및 방법
CN110915180B (zh) 低时延媒体摄取系统、设备和方法
JP6455741B2 (ja) ビデオの向きの調整(cvo)を伴うストリーミング
KR102203162B1 (ko) Dash 클라이언트 qoe 메트릭들의 미들웨어 전달
KR101991192B1 (ko) Http를 통한 동적 적응형 스트리밍(dash)에서의 일반화된 http 헤더를 위한 시스템 및 방법
EP2604012B1 (en) A method in a media client, a media client, a control entity and a method in a control entity
WO2017103856A1 (en) Media distribution with sample variants for normalized encryption
WO2020086452A1 (en) Low-latency video internet streaming for management and transmission of multiple data streams
US10499094B2 (en) Transmission apparatus, transmitting method, reception apparatus, and receiving method
US20200021867A1 (en) Broadcast signal transmitting and receiving method and device
WO2022006229A1 (en) Streaming media data including an addressable resource index track with switching sets
KR20190132323A (ko) Mmt 전송 패킷의 설정 방법 및 전송 방법
US10432989B2 (en) Transmission apparatus, transmission method, reception apparatus, receiving method, and program
WO2016205674A1 (en) Dynamic adaptive contribution streaming
JP6927338B2 (ja) 送信方法
WO2017100569A1 (en) Trick mode restrictions for mpeg dash
WO2016004237A1 (en) Media presentation description signaling in typical broadcast content

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210401

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210525

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210622

R150 Certificate of patent or registration of utility model

Ref document number: 6903172

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150