(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-05-10
(54)【発明の名称】ゲームデータの処理方法、装置、コンピュータ機器、及びコンピュータプログラム
(51)【国際特許分類】
H04N 21/242 20110101AFI20240501BHJP
A63F 13/215 20140101ALI20240501BHJP
A63F 13/35 20140101ALI20240501BHJP
A63F 13/355 20140101ALI20240501BHJP
A63F 13/655 20140101ALI20240501BHJP
A63F 13/71 20140101ALI20240501BHJP
A63F 13/86 20140101ALI20240501BHJP
【FI】
H04N21/242
A63F13/215
A63F13/35
A63F13/355
A63F13/655
A63F13/71
A63F13/86
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023571192
(86)(22)【出願日】2022-08-01
(85)【翻訳文提出日】2023-11-15
(86)【国際出願番号】 CN2022109392
(87)【国際公開番号】W WO2023024834
(87)【国際公開日】2023-03-02
(31)【優先権主張番号】202110974053.3
(32)【優先日】2021-08-24
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】517392436
【氏名又は名称】▲騰▼▲訊▼科技(深▲セン▼)有限公司
【氏名又は名称原語表記】TENCENT TECHNOLOGY (SHENZHEN) COMPANY LIMITED
【住所又は居所原語表記】35/F,Tencent Building,Kejizhongyi Road,Midwest District of Hi-tech Park,Nanshan District, Shenzhen,Guangdong 518057,CHINA
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】包 ▲増▼▲輝▼
(72)【発明者】
【氏名】▲ゴン▼ 志▲鵬▼
【テーマコード(参考)】
5C164
【Fターム(参考)】
5C164FA22
5C164MB13S
5C164PA41
5C164SB04S
5C164SB10P
5C164SB12S
5C164SB29S
5C164UB81S
(57)【要約】
本願実施例は、ゲームデータ処理方法、装置、及び記憶媒体を開示し、ここで、方法は、クラウドゲームクライアントから送信された、ターゲットクラウドゲームに対するクラウドゲームライブ配信要求を受信し、クラウドゲームライブ配信要求に基づいて、クラウドサーバと、クラウドゲームクライアントに関連付けられたライブ配信サーバとの間のライブ配信サービス接続を確立するステップ(S101)と、ライブ配信サービス接続に基づいてターゲットクラウドゲームのゲーム画像データ、及びゲームオーディオデータを取得し、ゲーム画像データに対応する画像収集タイムスタンプと、ゲームオーディオデータに対応するオーディオ収集タイムスタンプとを記録するステップ(S102)と、クラウドゲームクライアントから送信されたライブ配信者対象の処理対象オーディオデータを取得したときに、ゲームオーディオデータ、及び処理対象オーディオデータに対して音声ミキシング処理を行って、音声ミキシングオーディオデータを得るステップ(S103)と、音声ミキシングオーディオデータ、オーディオ収集タイムスタンプ、ゲーム画像データ、及び画像収集タイムスタンプに基づいて、ターゲットクラウドゲームに対応するライブ配信データストリームを得て、ライブ配信データストリームを、ライブ配信サーバを通じて、クラウドゲームクライアントに関連付けられたライブ配信クライアントに配信するステップ(S104)と、を含む。
【特許請求の範囲】
【請求項1】
コンピュータ機器により実行される、ゲームデータの処理方法であって、
クラウドゲームクライアントから送信された、ターゲットクラウドゲームに対するクラウドゲームライブ配信要求を受信し、前記クラウドゲームライブ配信要求に基づいて、クラウドサーバと、前記クラウドゲームクライアントに関連付けられたライブ配信サーバとの間のライブ配信サービス接続を確立するステップと、
前記ライブ配信サービス接続に基づいて前記ターゲットクラウドゲームのゲーム画像データ、及びゲームオーディオデータを取得し、前記ゲーム画像データに対応する画像収集タイムスタンプと、前記ゲームオーディオデータに対応するオーディオ収集タイムスタンプとを記録するステップであって、前記画像収集タイムスタンプと前記オーディオ収集タイムスタンプは、同一の参照系におけるタイムスタンプである、ステップと、
前記クラウドゲームクライアントから送信されたライブ配信者対象の処理対象オーディオデータを取得したときに、前記ゲームオーディオデータ、及び処理対象オーディオデータに対して音声ミキシング処理を行って、音声ミキシングオーディオデータを得るステップであって、前記音声ミキシングオーディオデータに対応する音声ミキシングタイムスタンプは、前記オーディオ収集タイムスタンプと一致するように保持される、ステップと、
前記音声ミキシングオーディオデータ、前記オーディオ収集タイムスタンプ、前記ゲーム画像データ、及び前記画像収集タイムスタンプに基づいて、前記ターゲットクラウドゲームに対応するライブ配信データストリームを得て、前記ライブ配信データストリームを、前記ライブ配信サーバを通じて、前記クラウドゲームクライアントに関連付けられたライブ配信クライアントに配信するステップと、を含む、ことを特徴とするゲームデータの処理方法。
【請求項2】
前記クラウドゲームクライアントから送信された、ターゲットクラウドゲームに対するクラウドゲームライブ配信要求を受信する前に、前記方法は、
クラウドゲームクライアントがターゲットクラウドゲームに対して送信したゲームアクセス要求を取得したときに、前記ゲームアクセス要求に基づいて前記クラウドゲームクライアントに対応するゲーム開始識別子に対して権限認証処理を行って、前記ゲーム開始識別子に対応する権限認証結果を得るステップであって、前記ゲームアクセス要求には、前記クラウドゲームクライアントが所属するクライアント環境システムを含まれている、ステップと、
もし前記権限認証結果が、前記クラウドゲームクライアントが前記ゲーム開始識別子を通じて前記ターゲットクラウドゲームにアクセスする権限を有することを指示していれば、前記クラウドサーバと前記クラウドゲームクライアントとの間のゲームサービス接続を確立し、且つ前記ゲームサービス接続に基づいて前記クラウドゲームクライアントが所属するクライアント環境システムのために、前記ターゲットクラウドゲームを動作させることに用いられるクラウド仮想容器を設けるステップと、
前記クラウド仮想容器において前記ターゲットクラウドゲームのゲーム進行プログラムを開始し、前記ゲーム進行プログラムを通じて前記ターゲットクラウドゲームを動作させるステップと、をさらに含む、ことを特徴とする請求項1に記載の方法。
【請求項3】
前記クラウドゲームクライアントに対応するゲーム表示インタフェース上には、前記ライブ配信者対象がクラウドゲームライブ配信を行うように指示することに用いられるライブ配信指示コントロールが含まれ、
前記クラウドゲームライブ配信要求に基づいて、クラウドサーバと、前記クラウドゲームクライアントに関連付けられたライブ配信サーバとの間のライブ配信サービス接続を確立するステップは、
クラウドゲームクライアントから送信された、前記ターゲットクラウドゲームに対するクラウドゲームライブ配信要求を受信するステップであって、前記クラウドゲームライブ配信要求は、前記クラウドゲームクライアントが前記ライブ配信者対象により前記ライブ配信指示コントロールに対して実行されたトリガー操作に応答して生成されたものである、ステップを含む、ことを特徴とする請求項2に記載の方法。
【請求項4】
前記クラウドゲームライブ配信要求には、前記ゲーム開始識別子が含まれており、
前記クラウドゲームライブ配信要求に基づいて、クラウドサーバと、前記クラウドゲームクライアントに関連付けられたライブ配信サーバとの間のライブ配信サービス接続を確立するステップは、
前記ゲーム開始識別子に基づいて前記クラウドゲームクライアントに関連付けられたライブ配信サーバにライブ配信認証要求を送信することで、前記ライブ配信サーバに、前記ライブ配信認証要求に基づいて前記クラウドゲームクライアントのために前記ターゲットクラウドゲームをライブ配信することに用いられるライブ配信ストリームプッシュアドレスを設定させるステップと、
前記ライブ配信サーバから返された前記ライブ配信ストリームプッシュアドレスを受信し、前記ライブ配信ストリームプッシュアドレスを前記クラウドゲームクライアントに返すときに、前記クラウドサーバと前記ライブ配信サーバとの間のライブ配信サービス接続の確立をトリガーするステップと、を含む、ことを特徴とする請求項2に記載の方法。
【請求項5】
前記ターゲットクラウドゲームは、クラウド仮想容器におけるゲーム進行プログラムにより動作し、前記クラウド仮想容器は、前記クラウドサーバにより前記クラウドゲームクライアントが所属するクライアント環境システムのために設けられ、
前記ライブ配信サービス接続に基づいて前記ターゲットクラウドゲームのゲーム画像データ、及びゲームオーディオデータを取得し、前記ゲーム画像データに対応する画像収集タイムスタンプと、前記ゲームオーディオデータに対応するオーディオ収集タイムスタンプとを記録するステップは、
前記ライブ配信サービス接続に基づいて、前記クラウド仮想容器において前記ゲーム進行プログラムに関連付けられたメディアエンコード進行プログラムを開始するステップと、
前記メディアエンコード進行プログラムにより指示されたデータ収集アセンブリを通じて、前記ターゲットクラウドゲームに関連付けられた背景オーディオフレームデータ、及びゲームビデオフレームデータをキャプチャーし、キャプチャーされた前記背景オーディオフレームデータと前記ゲームビデオフレームデータとを、前記データ収集アセンブリに関連付けられたクラウドキャッシュ空間に保存するステップであって、前記クラウドキャッシュ空間は、前記クラウド仮想容器から独立したクラウドメモリである、ステップと、
前記メディアエンコード進行プログラムにより指示されたタイマーを通じて、前記クラウドメモリにより記憶された前記ゲームビデオフレームデータ中から、第1収集時間インターバルにより指示された第1フレームレートとマッチングする画像フレームを収集し、収集された画像フレームを前記ターゲットクラウドゲームのゲーム画像データとし、かつ前記タイマーにより指示された参照系において、前記ゲーム画像データに対応する画像収集タイムスタンプを記録するステップと、
前記タイマーを通じて、前記クラウドメモリにより記憶された前記背景オーディオフレームデータ中から、第2収集時間インターバルにより指示された第2フレームレートとマッチングするオーディオフレームを収集し、収集されたオーディオフレームを前記ターゲットクラウドゲームのゲームオーディオデータとし、かつ前記タイマーにより指示された同一の参照系において、前記ゲームオーディオデータに対応するオーディオ収集タイムスタンプを記録するステップであって、前記第2収集時間インターバルの記録は、前記第1収集時間インターバルよりも小さく、且つ前記第2フレームレートは、前記第1フレームレートよりも大きい、ステップと、を含む、ことを特徴とする請求項1に記載の方法。
【請求項6】
前記方法は、
前記クラウド仮想容器において前記メディアエンコード進行プログラムに関連付けられた第1エンコードスレッドを動作させるステップと、
前記第1エンコードスレッドにより指示されたクラウドゲームエンコード標準を取得し、前記クラウドゲームエンコード標準を通じてキャプチャーされた前記背景オーディオフレームデータに対してオーディオエンコードを行って、前記ターゲットクラウドゲームの第1オーディオエンコードストリームを得るステップと、
前記クラウドゲームエンコード標準を通じてキャプチャーされた前記ゲームビデオフレームデータに対してビデオエンコードを行って、前記ターゲットクラウドゲームの第1ビデオエンコードストリームを得るステップと、
前記第1オーディオエンコードストリームと前記第1ビデオエンコードストリームとを前記ターゲットクラウドゲームのゲームエンコードストリームとし、前記ゲームエンコードストリームを前記クラウドゲームクライアントに返すことで、前記クラウドゲームクライアントに前記ゲームエンコードストリームに対してデコード処理を行わせ、前記クラウドゲームクライアントにおいて同期再生を行うことに用いられる前記背景オーディオフレームデータと前記ゲームビデオフレームデータとを得るステップと、をさらに含む、ことを特徴とする請求項5に記載の方法。
【請求項7】
前記クラウドサーバは、前記ゲーム進行プログラム、前記メディアエンコード進行プログラム、及びメディア伝送進行プログラムを動作させることに用いられ、前記メディア伝送進行プログラムは、前記クラウド仮想容器から独立した補助仮想容器において動作し、
前記方法は、
前記クラウド仮想容器において前記メディアエンコード進行プログラムに関連付けられた第2エンコードスレッドを動作させるステップと、
前記第2エンコードスレッドにより指示されたクラウドライブ配信エンコード標準を取得し、前記クラウドライブ配信エンコード標準を通じて前記第2フレームレートに関連付けられた前記ゲームオーディオデータに対してオーディオエンコードを行って、前記ターゲットクラウドゲームの第2オーディオエンコードストリームを得るステップと、
前記クラウドライブ配信エンコード標準を通じて前記第1フレームレートに関連付けられた前記ゲーム画像データに対してビデオエンコードを行って、前記ターゲットクラウドゲームの第2ビデオエンコードストリームを得るステップと、
前記第2オーディオエンコードストリームと前記第2ビデオエンコードストリームとを前記ターゲットクラウドゲームの処理対象エンコードストリームとし、前記処理対象エンコードストリームを前記メディア伝送進行プログラムに転送することで、前記メディア伝送進行プログラムに、前記処理対象エンコードストリームに基づいて補助クラウド仮想容器において、前記クラウドゲームクライアントから送信されたライブ配信者対象の処理対象オーディオデータを取得したときに、前記ゲームオーディオデータ、及び処理対象オーディオデータに対して音声ミキシング処理を行って、音声ミキシングオーディオデータを得るステップを実行させるステップと、をさらに含む、ことを特徴とする請求項5に記載の方法。
【請求項8】
前記クラウドゲームクライアントから送信されたライブ配信者対象の処理対象オーディオデータを取得したときに、前記ゲームオーディオデータ、及び処理対象オーディオデータに対して音声ミキシング処理を行って、音声ミキシングオーディオデータを得るステップは、
前記クラウドゲームクライアントから送信されたライブ配信者対象の処理対象オーディオデータを取得したときに、前記処理対象オーディオデータに対してデコード処理を行って、前記ライブ配信者対象の処理対象オーディオフレーム、及び前記処理対象オーディオフレームの録画タイムスタンプを得るステップと、
前記ゲームオーディオデータに対応する第2収集時間インターバルに基づいて、前記ゲームオーディオデータにおけるオーディオフレームを取得し、取得したオーディオフレームを参照オーディオフレームとし、且つ前記ゲームオーディオデータに対応する収集オーディオタイムスタンプに基づき、前記参照オーディオフレームの音声ミキシングタイムスタンプを決定するステップと、
前記音声ミキシングタイムスタンプに基づいて前記録画タイムスタンプを調整し、調整後の録画タイムスタンプに基づいて前記参照オーディオフレームと処理対象オーディオフレームとに対して音声ミキシング処理を行って、前記収集タイムスタンプと一致するように保持される音声ミキシングタイムスタンプに対応する音声ミキシングオーディオフレームを得て、得た音声ミキシングオーディオフレームと前記音声ミキシングオーディオフレームに対応する音声ミキシングタイムスタンプとを前記ターゲットクラウドゲームの音声ミキシングオーディオデータとするステップと、を含む、ことを特徴とする請求項1に記載の方法。
【請求項9】
前記方法は、
取得したオーディオフレームのフレーム数を統計処理し、もし前記オーディオフレームのフレーム数がMフレームであり、且つMがゼロ以外の正の整数であれば、Mを用いて音声ミキシング処理を行うべき回数を特徴づけるステップと、
前記音声ミキシング処理を行うべき回数に基づいて、前記音声ミキシングタイムスタンプに基づいて前記録画タイムスタンプを調整し、調整後の録画タイムスタンプに基づいて前記参照オーディオフレームと処理対象オーディオフレームとに対して音声ミキシング処理を実行するときに、前記処理対象オーディオフレームの音量に対して強化処理を行い、且つ前記参照オーディオフレームの音量に対して弱化処理を行うステップと、をさらに含む、ことを特徴とする請求項8に記載の方法。
【請求項10】
前記方法は、
もし前記オーディオフレームのフレーム数が空値であるか、又は前記処理対象オーディオフレームのフレーム数が空値であれば、前記参照オーディオフレームと処理対象オーディオフレームとに対して音声ミキシング処理を行わないステップをさらに含む、ことを特徴とする請求項9に記載の方法。
【請求項11】
前記クラウドサーバは、前記クラウドゲームライブ配信要求に基づいて開始したメディア転送進行プログラムを含み、前記メディア転送進行プログラムは、前記クラウドサーバと前記ライブ配信サーバとの間の前記ライブ配信サービス接続を保持することに用いられ、
前記音声ミキシングオーディオデータ、前記オーディオ収集タイムスタンプ、前記ゲーム画像データ、及び前記画像収集タイムスタンプに基づいて、前記ターゲットクラウドゲームに対応するライブ配信データストリームを得て、前記ライブ配信データストリームを、前記ライブ配信サーバを通じて、前記クラウドゲームクライアントに関連付けられたライブ配信クライアントに配信するステップは、
前記音声ミキシングオーディオデータを取得し、前記音声ミキシングオーディオデータ中から音声ミキシングオーディオフレーム、及び前記音声ミキシングオーディオフレームに対応する前記オーディオ収集タイムスタンプを取得し、前記オーディオ収集タイムスタンプに基づいて前記音声ミキシングオーディオフレームに対してソート処理を行い、ソート処理済みの音声ミキシングオーディオフレームを、前記メディア転送進行プログラムに関連付けられたオーディオキャッシュキューに書込むステップと、
前記ゲーム画像データを取得し、前記ゲーム画像データ中から画像フレーム、及び前記画像フレームに対応する前記画像収集タイムスタンプを取得し、前記画像収集タイムスタンプに基づいて前記画像フレームに対してソート処理を行い、ソート処理済みの画像フレームを、前記メディア転送進行プログラムに関連付けられたビデオキャッシュキューに書込むステップと、
メディア転送進行プログラムに関連付けられたスムーズ取得スレッドを取得し、前記スムーズ取得スレッドを通じて前記ビデオキャッシュキュー中から第1収集時間インターバルにより指示された第1フレームレートとマッチングするビデオデータパケットを取得し、かつ前記スムーズ取得スレッドを通じて前記オーディオキャッシュキュー中から第2収集時間インターバルにより指示された第2フレームレートとマッチングするオーディオデータパケットを取得するステップと、
前記ビデオデータパケットと前記オーディオデータパケットとに対してパッケージ処理を行い、前記ターゲットクラウドゲームに対応するライブ配信データストリームを得て、前記ライブ配信データストリームを、前記ライブ配信サーバを通じて、前記クラウドゲームクライアントに関連付けられたライブ配信クライアントに配信するステップと、を含む、ことを特徴とする請求項1に記載の方法。
【請求項12】
メディア転送進行プログラムに関連付けられたスムーズ取得スレッドを取得し、前記スムーズ取得スレッドを通じて前記ビデオキャッシュキュー中から第1収集時間インターバルにより指示された第1フレームレートとマッチングするビデオデータパケットを取得し、かつ前記スムーズ取得スレッドを通じて前記オーディオキャッシュキュー中から第2収集時間インターバルにより指示された第2フレームレートとマッチングするオーディオデータパケットを取得するステップは、
メディア転送進行プログラムに関連付けられたスムーズ取得スレッドを取得し、且つ前記スムーズ取得スレッドと同じ収集時間インターバルを有するデータ収集アセンブリを取得し、前記データ収集アセンブリの収集時間インターバルに基づいて前記ゲーム画像データに関連付けられた第1収集時間インターバルと、前記ゲームオーディオデータに関連付けられた第2収集時間インターバルとを決定するステップと、
前記スムーズ取得スレッドを通じて前記第1収集時間インターバルとマッチングするスムーズビデオ取得タイムスタンプを決定し、前記ビデオキャッシュキュー中から画像収集タイムスタンプが前記スムーズビデオ取得タイムスタンプよりも小さいキャッシュされたビデオフレームを取得し、取得した、キャッシュされたビデオフレームと前記キャッシュされたビデオフレームに対応する画像収集タイムスタンプとに対してカプセル化処理を行って、前記第1収集時間インターバルにより指示された第1フレームレートとマッチングするビデオデータパケットを得るステップと、
前記スムーズ取得スレッドを通じて前記第2収集時間インターバルとマッチングするスムーズオーディオ取得タイムスタンプを決定し、前記オーディオキャッシュキュー中からオーディオ収集タイムスタンプが前記スムーズオーディオ取得タイムスタンプよりも小さいキャッシュされたオーディオフレームを取得し、取得した、キャッシュされたオーディオフレームと前記キャッシュされたオーディオフレームに対応するオーディオ収集タイムスタンプとに対してカプセル化処理を行って、前記第2収集時間インターバルにより指示された第2フレームレートとマッチングするオーディオデータパケットを得るステップと、を含む、ことを特徴とする請求項11に記載の方法。
【請求項13】
前記ライブ配信データストリームを、前記ライブ配信サーバを通じて、前記クラウドゲームクライアントに関連付けられたライブ配信クライアントに配信するステップの後に、前記方法は、
前記ライブ配信データストリームの最大オーディオ収集タイムスタンプを決定するステップと、
もし前記スムーズ取得スレッドを通じて、送信対象オーディオデータパケットのオーディオ収集タイムスタンプが前記最大オーディオ収集タイムスタンプよりも小さいと記録されていれば、前記送信対象オーディオデータパケットを廃棄するステップであって、前記送信対象オーディオデータパケットとは、前記ライブ配信サーバに送信対象の次のオーディオデータパケットを指す、ステップと、をさらに含む、ことを特徴とする請求項12に記載の方法。
【請求項14】
前記ライブ配信データストリームを、前記ライブ配信サーバを通じて、前記クラウドゲームクライアントに関連付けられたライブ配信クライアントに配信するステップの後に、前記方法は、
前記ライブ配信データストリームの最大画像収集タイムスタンプを決定するステップと、
もし前記スムーズ取得スレッドを通じて、送信対象ビデオデータパケットのビデオ収集タイムスタンプが最大ビデオ収集タイムスタンプよりも小さいと記録されていれば、前記送信対象ビデオデータパケットを廃棄するステップであって、前記送信対象ビデオデータパケットとは、前記ライブ配信サーバに送信対象の次のビデオデータパケットを指す、ステップと、をさらに含む、ことを特徴とする請求項12に記載の方法。
【請求項15】
ゲームデータ処理装置であって、
クラウドゲームクライアントから送信された、ターゲットクラウドゲームに対するクラウドゲームライブ配信要求を受信し、前記クラウドゲームライブ配信要求に基づいて、クラウドサーバと、前記クラウドゲームクライアントに関連付けられたライブ配信サーバとの間のライブ配信サービス接続を確立することに用いられるライブ配信要求受信モジュールと、
前記ライブ配信サービス接続に基づいて前記ターゲットクラウドゲームのゲーム画像データ、及びゲームオーディオデータを取得し、前記ゲーム画像データに対応する画像収集タイムスタンプと、前記ゲームオーディオデータに対応するオーディオ収集タイムスタンプとを記録することに用いられるデータ取得モジュールであって、前記画像収集タイムスタンプと前記オーディオ収集タイムスタンプは、同一の参照系におけるタイムスタンプである、データ取得モジュールと、
前記クラウドゲームクライアントから送信されたライブ配信者対象の処理対象オーディオデータを取得したときに、前記ゲームオーディオデータ、及び処理対象オーディオデータに対して音声ミキシング処理を行って、音声ミキシングオーディオデータを得ることに用いられる音声ミキシング処理モジュールであって、前記音声ミキシングオーディオデータに対応する音声ミキシングタイムスタンプは、前記オーディオ収集タイムスタンプと一致するように保持される、音声ミキシング処理モジュールと、
前記音声ミキシングオーディオデータ、前記オーディオ収集タイムスタンプ、前記ゲーム画像データ、及び前記画像収集タイムスタンプに基づいて、前記ターゲットクラウドゲームに対応するライブ配信データストリームを得て、前記ライブ配信データストリームを、前記ライブ配信サーバを通じて、前記クラウドゲームクライアントに関連付けられたライブ配信クライアントに配信することに用いられるライブ配信ストリーム配信モジュールと、を含む、ことを特徴とするゲームデータ処理装置。
【請求項16】
メモリと、1つ又は複数のプロセッサと、を含み、前記メモリには、コンピュータ可読指令が記憶されているコンピュータ機器であって、前記コンピュータ可読指令は、前記プロセッサによって実行されるときに、前記1つ又は複数のプロセッサに請求項1~14のいずれか1項に記載の方法のステップを実行させる、ことを特徴とするコンピュータ機器。
【請求項17】
コンピュータ可読指令が記憶されている1つ又は複数の不揮発性可読記憶媒体であって、前記コンピュータ可読指令は、1つ又は複数のプロセッサに実行されるときに、前記1つ又は複数のプロセッサに請求項1~14のいずれか1項に記載の方法のステップを実現させる、ことを特徴とする1つ又は複数の不揮発性可読記憶媒体。
【請求項18】
コンピュータ可読指令を含むコンピュータプログラム製品であって、前記コンピュータ可読指令は、プロセッサに実行されるときに、請求項1~14のいずれか1項に記載の方法のステップを実現する、ことを特徴とするコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、コンピュータ計算分野に関し、具体的には、ゲームデータの処理方法、装置、及び記憶媒体に関する。
【0002】
本願は、2021年8月24日に中国特許庁に提出され、出願番号が第202110974053.3号であり、出願名称が「ゲームデータの処理方法、装置、及び記憶媒体」である中国特許出願の優先権を主張し、その全部の内容は、引用により本願中に組み込まれる。
【背景技術】
【0003】
現在、従来のゲームライブ配信シーンにおいては、ライブ配信者ユーザーは、移動端末上で2次元ゲーム(すなわち、2Dゲーム)を操作して動作させ、該移動端末を通じて現在動作中の2Dゲームに対してライブ配信録画を行い、さらに該移動端末によりリアルタイムに録画されたオーディオビデオストリームをライブ配信ストリームプッシュとしてプッシュすることができる。
【0004】
明らかなように、従来のゲームライブ配信シーンにおいては、リアルタイムに録画されたオーディオビデオストリームは、いずれも移動端末側において得られることにより、従来のゲームライブ配信シーンにおいては、該ライブ配信者ユーザーが使用した移動端末の性能に依存してエンコード後のライブ配信ストリームを遠隔ライブ配信ストリームに直接プッシュする必要がある。従来のゲームライブ配信シーンにおいては、従来の2Dゲームとクラウドゲームとが、それぞれ移動端末に対して異なる性能要件を有することにより、従来のゲームライブ配信方式に直接依存してクラウドゲームのライブ配信を実現することは不可能である。従って、クラウドゲームのライブ配信シーンにおいては、如何に異なる端末の間でデータ伝送時のオーディオとビデオの同期を実現するかが、解決すべき緊急の技術的課題の1つである。
【発明の概要】
【課題を解決するための手段】
【0005】
本願により提供される各種の実施例に基づき、ゲームデータの処理方法、装置、及び記憶媒体を提供する。
【0006】
一態様では、ゲームデータの処理方法を提供し、コンピュータ機器により実行され、方法は、
クラウドゲームクライアントから送信された、ターゲットクラウドゲームに対するクラウドゲームライブ配信要求を受信し、クラウドゲームライブ配信要求に基づいて、クラウドサーバと、クラウドゲームクライアントに関連付けられたライブ配信サーバとの間のライブ配信サービス接続を確立するステップと、
ライブ配信サービス接続に基づいてターゲットクラウドゲームのゲーム画像データ、及びゲームオーディオデータを取得し、ゲーム画像データに対応する画像収集タイムスタンプと、ゲームオーディオデータに対応するオーディオ収集タイムスタンプとを記録するステップであって、画像収集タイムスタンプとオーディオ収集タイムスタンプとは、同一の参照系におけるタイムスタンプである、ステップと、
クラウドゲームクライアントから送信されたライブ配信者対象の処理対象オーディオデータを取得したときに、ゲームオーディオデータ、及び処理対象オーディオデータに対して音声ミキシング処理を行って、音声ミキシングオーディオデータを得るステップであって、音声ミキシングオーディオデータに対応する音声ミキシングタイムスタンプは、オーディオ収集タイムスタンプと一致するように保持される、ステップと
音声ミキシングオーディオデータ、オーディオ収集タイムスタンプ、ゲーム画像データ、及び画像収集タイムスタンプに基づいて、ターゲットクラウドゲームに対応するライブ配信データストリームを得て、ライブ配信データストリームを、ライブ配信サーバを通じて、クラウドゲームクライアントに関連付けられたライブ配信クライアントに配信するステップと、を含む。
【0007】
別の態様では、ゲームデータ処理装置を提供し、装置は、
クラウドゲームクライアントから送信された、ターゲットクラウドゲームに対するクラウドゲームライブ配信要求を受信し、クラウドゲームライブ配信要求に基づいて、クラウドサーバと、クラウドゲームクライアントに関連付けられたライブ配信サーバとの間のライブ配信サービス接続を確立することに用いられるライブ配信要求受信モジュールと、
ライブ配信サービス接続に基づいてターゲットクラウドゲームのゲーム画像データ、及びゲームオーディオデータを取得し、ゲーム画像データに対応する画像収集タイムスタンプと、ゲームオーディオデータに対応するオーディオ収集タイムスタンプとを記録することに用いられるデータ取得モジュールであって、画像収集タイムスタンプとオーディオ収集タイムスタンプとは、同一の参照系におけるタイムスタンプである、データ取得モジュールと、
クラウドゲームクライアントから送信されたライブ配信者対象の処理対象オーディオデータを取得したときに、ゲームオーディオデータ、及び処理対象オーディオデータに対して音声ミキシング処理を行って、音声ミキシングオーディオデータを得ることに用いられる音声ミキシング処理モジュールであって、音声ミキシングオーディオデータに対応する音声ミキシングタイムスタンプは、オーディオ収集タイムスタンプと一致するように保持される、音声ミキシング処理モジュールと、
音声ミキシングオーディオデータ、オーディオ収集タイムスタンプ、ゲーム画像データ、及び画像収集タイムスタンプに基づいて、ターゲットクラウドゲームに対応するライブ配信データストリームを得て、ライブ配信データストリームを、ライブ配信サーバを通じて、クラウドゲームクライアントに関連付けられたライブ配信クライアントに配信することに用いられるライブ配信ストリーム配信モジュールと、を含む。
【0008】
別の態様では、コンピュータ機器を提供し、メモリと、1つ又は複数のプロセッサと、を含み、前記メモリには、コンピュータ可読指令が記憶されており、前記コンピュータ可読指令は、前記プロセッサに実行されるときに、前記1つ又は複数のプロセッサに上記ゲームデータ処理方法のステップを実行させる。
【0009】
1つ又は複数の不揮発性可読記憶媒体であって、それには、コンピュータ可読指令が記憶されており、前記コンピュータ可読指令は、1つ又は複数のプロセッサに実行されるときに、前記1つ又は複数のプロセッサに上記ゲームデータ処理方法のステップを実現させる。
【0010】
コンピュータプログラム製品であって、コンピュータ可読指令を含み、前記コンピュータ可読指令は、プロセッサに実行されるときに、上記ゲームデータ処理方法のステップを実現する。
【0011】
本願の1つ又は複数の実施例の細部は、以下の図面、及び記述において提出される。本願のその他の特徴、目的、及び利点は、明細書、図面、及び特許請求の範囲から明らかになる。
【0012】
本願実施例、又は従来技術における技術的解決手段をより明確に説明するために、以下、実施例、又は従来技術記述において使用される必要がある図面を簡単に紹介する。明らかなように、以下の記述における図面は、本願のいくつかの実施例に過ぎず、当業者にとっては、創造的な労働を必要としない前提において、さらにそれらの図面に基づきその他の図面を取得することができる。
【図面の簡単な説明】
【0013】
【
図1】本願実施例により提供されるネットワークアーキテクチャの構造模式図である。
【
図2】本願実施例により提供されるクラウドゲームシーンにおいてライブ配信ストリームプッシュを行うシーン模式図である。
【
図3】本願実施例により提供されるゲームデータの処理方法のプロセス模式図である。
【
図4】本願実施例により提供されるクラウドゲームシーンにおいてターゲットクラウドゲームに対してクラウドライブ配信を行うシーン模式図である。
【
図5】本願実施例により提供されるメディアエンコード進行プログラムを通じてゲーム画面、及びオーディオをキャプチャーするシーン模式図である。
【
図6】本願実施例により提供されるメディア転送モジュールのシーン模式図である。
【
図7】本願実施例により提供される優先度キューのシーン模式図である。
【
図8】本願実施例により提供されるゲームデータの処理方法のプロセス模式図である。
【
図9】本願実施例により提供されるメディア転送モジュールを通じて受信されたオーディオフレーム、及びビデオフレームに対してスムーズ処理を行うシーン模式図である。
【
図10】本願実施例により提供されるゲームデータ処理装置の構造模式図である。
【
図11】本願実施例により提供されるコンピュータ機器の構造模式図である。
【発明を実施するための形態】
【0014】
以下、本願実施例における図面を組み合わせて、本願実施例における技術的解決手段を明確で、完全に記述する。明らかなように、記述された実施例は、本願の一部の実施例に過ぎず、全部の実施例ではない。本願における実施例に基づいて、当業者が創造的な労働を行わない前提において取得したすべてのその他の実施例は、いずれも本願の保護範囲に属する。
【0015】
本願実施例は、クラウド技術(cloud technology)、クラウドコンピューティング(cloud computing)、及びクラウドゲーム(cloud gaming)に関する。クラウドゲームは、ゲームオンデマンド(gaming on demand)とも呼称されてもよく、クラウドコンピューティング技術を基礎とするオンラインゲーム技術である。クラウドゲーム技術により、グラフィックス処理、及びデータ演算能力が比較的限られたシンクライアント(thin client)が、高品質のゲームの動作ができるようにする。クラウドゲームシーンにおいて、ゲームは、プレイヤーのゲーム端末(それをゲーム対象に対応するゲーム端末と呼称することもできる)上ではなく、クラウドサーバにおいて動作し、かつクラウドサーバによりゲームシーンをビデオオーディオストリーム(すなわち、オーディオビデオストリーム)としてレンダリングし、ネットワークを通じてプレイヤーのゲーム端末に伝送する。たとえば、本願実施例では、該クラウドサーバが採用したレンダリング技術は、容器内のレンダリング技術に属する。ここでの容器とは、クラウドサーバにおいて仮想して得たクラウド仮想容器を指し、すなわち、本願実施例では、クラウド仮想容器においてレンダリングすることにより得られたビデオオーディオストリームをネットワークを通じてプレイヤーのゲーム端末に伝送することができる。ここでのプレイヤーのゲーム端末は、強いグラフィックス演算、及びデータ処理能力を持つ必要がなく、基本的なストリームメディア再生能力、及びプレイヤー(すなわち、ゲームユーザー)の入力指令を取得しかつクラウドサーバに送信する能力を持たせればよい。
【0016】
クラウドゲームシーンにおいて、プレイヤー(すなわち、上記ゲーム対象)は、プレイヤーのゲーム端末において動作するゲームクライアントを通じてクラウドサーバとの間でデータ交換を行うことができる。このように、クラウドサーバがクラウド端のクラウド仮想容器において該ゲームクライアントにおけるゲームデータに対するレンダリング操作を完了した後に、さらにレンダリングすることにより得られたゲーム画面、及びオーディオに対してエンコード操作を行うことができることにより、エンコードされた後のオーディオビデオストリームをプレイヤーのゲーム端末に配信してデコード操作を行う。オーディオビデオストリームは、オーディオストリーム、又はビデオストリームのうちの少なくとも1種を含むことができる。
【0017】
図1は、本願実施例により提供されるネットワークアーキテクチャの構造模式図である。
図1に示すように、ネットワークアーキテクチャは、クラウドゲームライブ配信シーンにおけるデータ処理システムに応用することができる。該データ処理システムは、具体的には、
図1に示されたクラウドサーバ1000、ライブ配信者端末クラスター、ライブ配信サーバ2000、及び視聴者端末クラスターを含むことができる。ここで、ライブ配信者端末クラスターは、具体的には、1つ又は複数のライブ配信者端末を含むことができ、複数とは、少なくとも2つを指し、ライブ配信者端末は、ライブ配信機能を有する上記プレイヤーのゲーム端末であってもよい。
図1に示すように、複数のライブ配信者端末は、具体的には、ライブ配信者端末3000a、ライブ配信者端末3000b、ライブ配信者端末3000c、…、ライブ配信者端末3000nを含むことができ、
図1に示すように、ライブ配信者端末3000a、ライブ配信者端末3000b、ライブ配信者端末3000c、…、ライブ配信者端末3000nは、それぞれクラウドサーバ1000とネットワーク接続を行うことができることにより、それぞれのライブ配信者端末は、該ネットワーク接続を通じてクラウドサーバ1000との間にデータ交換を行うことができることに有利である。
【0018】
あるライブ配信者端末においてライブ配信機能を有するクラウドゲームクライアントが動作しており、且つゲーム対象が該クラウドゲームクライアントを使用して、あるクラウドゲーム(すなわち、ターゲットクラウドゲーム)に対してゲーム対話を行うときに、該クラウドサーバ1000側で該ターゲットクラウドゲームのゲーム画面をレンダリングすることができ、かつレンダリング完了後のゲーム画面に対して圧縮処理を行うことができる。それにより、エンコードすることにより得られたゲームビデオストリームを該ライブ配信者端末に返すべきゲームエンコードストリームとする。ゲーム対象は、たとえば、ゲームユーザーである。圧縮処理は、たとえば、エンコード処理である。
【0019】
ゲーム対象がライブ配信機能を有するクラウドゲームクライアントを通じて、クラウドサーバ1000にターゲットクラウドゲームに対するクラウドゲームライブ配信要求を送信する場合、現在クラウドゲームクライアントにアクセスしているゲーム対象をライブ配信者対象と総称することができる。そして、クラウドゲームライブ配信要求に基づいてクラウドサーバ1000側にライブ配信サーバ2000とライブ配信サービス接続を確立することができ、さらにライブ配信サービス接続を通じてクラウド端にクラウド端ストリームプッシュを実現することができる。
図1に示すように、クラウドサーバ1000は、クラウド端でエンコードすることにより得られたライブ配信データストリームをライブ配信サーバ2000までストリームプッシュすることができ、それにより、ライブ配信サーバ2000が受信したライブ配信データストリームに対してデコード処理を行うことができる。それにより、デコードすることにより得られたライブ配信データストリームに対応するオーディオとビデオのシーケンスに対してキャッシュを行うことができることにより、後に続いてライブ配信サーバ2000によりエンコードされることにより得られたトランスコードビデオストリームを、該仮想ライブ配信ルーム内に位置する視聴者ユーザーに対応する視聴者端末に配信することに有利である。異なる視聴者端末にとっては、トランスコードビデオストリームは、ライブ配信サーバ2000により仮想ライブ配信ルーム内の異なる視聴者端末の端末スクリーン情報に基づいて決定される。端末スクリーン情報は、端末スクリーンのサイズ、又は解像度のうちの少なくとも1つを含むがそれらに制限されない。ライブ配信サーバ2000は、異なる視聴者端末の端末スクリーン情報に基づき、デコードすることにより得られたオーディオとビデオのシーケンスに対して適合処理を行うことができる。それにより、適合処理された後に得られたトランスコードビデオストリームをそれらの視聴者端末に配信することで、それらの視聴者端末が受信したトランスコードビデオストリームに対してデコード処理を行った後に、ライブ配信表示インタフェース上に異なるサイズ、又は異なる解像度のクラウドゲームライブ配信画面を表示させることができる。オーディオとビデオのシーケンスは、クラウドサーバ1000側に音声ミキシング処理を行った後のオーディオとビデオのシーケンスを含むがそれに制限されない。
【0020】
ここで、視聴者端末クラスターは、具体的には、1つ又は複数の視聴者端末を含むことができ、複数とは、少なくとも2つを指す。
図1に示すように、複数の視聴者端末は、具体的には、視聴者端末4000a、視聴者端末4000b、視聴者端末4000c、…、視聴者端末4000nを含むことができる。
図1に示すように、視聴者端末4000a、視聴者端末4000b、視聴者端末4000c、…、視聴者端末4000nは、それぞれライブ配信サーバ2000とネットワーク接続を行うことができ、それにより、それぞれの視聴者端末に視聴者クライアントが動作するときに、該ネットワーク接続を通じてライブ配信サーバ2000との間にデータ交換を行うことができる。たとえば、それらの視聴者端末が仮想ライブ配信ルームにおいて上記ライブ配信者対象が現在ライブ配信しているターゲットクラウドゲームのライブ配信ビデオを再生するように要求するときに、該ライブ配信サーバ2000上からライブ配信者対象が現在ライブ配信しているターゲットクラウドゲームのトランスコードビデオストリームをプルすることができる。ここで、ここでの視聴者クライアントは、視聴者端末で動作するライブ配信クライアントである。
【0021】
ここで、
図1に示すように、クラウドサーバ1000とライブ配信サーバ2000は、いずれも独立した物理サーバであってもよく、複数の物理サーバで構成されるサーバクラスター、又は分散システムであってもよく、さらにクラウドサービス、クラウドデータベース、クラウドコンピューティング、クラウド関数、クラウド記憶、ネットワークサービス、クラウド通信、ミドルウェアサービス、ドメイン名サービス、安全サービス、CDN、及びビッグデータ、又は人工インテリジェントプラットフォーム等の基礎とするクラウドコンピューティングサービスを提供するクラウドサーバであってもよい。
【0022】
ここで、理解を容易にするために、本願実施例では、
図1に示されたライブ配信者端末クラスター中から、1つのライブ配信者端末をターゲットライブ配信者端末として選択することができる。たとえば、本願実施例では、
図1に示されたライブ配信者端末3000aをターゲットライブ配信端末とすることができ、該ターゲットライブ配信者端末にゲームデータライブ配信機能を備えるクラウドゲームクライアントを統合することができる。該クラウドゲームクライアント上には、1種、又は複数種のクラウドゲームが統合されており、ここでのクラウドゲームは、競技類クラウドゲーム、パルクール類クラウドゲーム、テーブルゲーム類クラウドゲーム、又はスパーリングシューティング類クラウドゲームのうちの少なくとも1種を含むがそれらに制限されない。
【0023】
ここで、ターゲットライブ配信者端末は、具体的には、スマートフォン、タブレットコンピュータ、ノートパソコン、デスクトップコンピュータ、ウェアラブル機器、スマートホーム等のビデオデータ処理機能を携帯するスマート端末を含むことができる。スマートホームは、スマートテレビを含み、ビデオデータ処理機能は、ビデオデータ再生機能を含む。
【0024】
図2は、本願実施例により提供されるクラウドゲームシーンにおいてライブ配信ストリームプッシュを行うシーン模式図である。ここで、理解を容易にするために、
図2に示されたライブ配信者端末Aが上記ターゲットライブ配信者端末であることを例として、該ライブ配信者端末AとクラウドサーバBとがデータ交換を行うデータ過程について説明する。ここで、該ライブ配信者端末A上には、ライブ配信機能を有するクラウドゲームクライアントが動作している。
図2に示すように、あるゲーム対象が該ライブ配信者端末Aを通じてクラウドゲームをプレイする必要があるときに、該ライブ配信者端末Aは、該ゲーム対象の上記クラウドゲームクライアントに対するトリガー操作に応答することで、ライブ配信者端末A上にN個のクラウドゲームを含むゲーム表示インタフェースを出力することができ、ここでのNは、正の整数である。ゲーム対象は、ゲーム表示インタフェース上に表示されたN個のクラウドゲーム中から自分が関心のあるクラウドゲームをターゲットクラウドゲームとして選択することができる。ライブ配信者端末Aは、このN個のクラウドゲームにおけるターゲットクラウドゲームに対するトリガー操作に応答して、クラウドサーバBにターゲットクラウドゲームに対するゲームアクセス要求を送信することができる。ゲーム対象は、たとえば、ユーザーU1である。
【0025】
クラウドサーバBは、上記
図1の対応する実施例におけるクラウドサーバ1000であってもよい。
図2に示すように、クラウドサーバBは、
図2に示された、クラウドゲームサービスを提供することに用いられるクラウドゲームエッジクラスター、又はクラウドストリームプッシュサービスを提供することに用いられるクラウドゲーム中央クラスターのうちの少なくとも1つを含むことができる。
【0026】
クラウドゲームエッジクラスターは、1つ又は複数のクラウドゲームエッジサーバを含むことができ、複数とは、少なくとも2つを指す。クラウドゲームエッジクラスターが1つのクラウドゲームエッジサーバを含むことを例とすると、クラウドゲームエッジサーバは、
図2に示された複数のクラウドサービスモジュールを含むがそれに制限されない。複数のクラウドサービスモジュールは、具体的には、クラウドゲームインスタンスモジュール21a、メディアエンコードモジュール21b、及びメディア伝送モジュール21cを含むことができる。クラウドゲームエッジサーバにおける1つのクラウドサービスモジュールは、
図2に示されたクラウドサーバBの1つの進行プログラムを動作させることに用いることができる。
【0027】
クラウドゲームインスタンスモジュール21aにより提供されたゲーム進行プログラム(「ゲームプロセス」とも呼ばれる)は、クラウド端にターゲットクラウドゲームを動作させるというゲームインスタンスに用いることができ、ゲームインスタンスに対応するゲーム進行プログラムは、クラウドサーバBがライブ配信者端末Aであるクライアント環境システムにより設けられたクラウド仮想容器において動作する。クラウド仮想容器において動作するクラウドゲームインスタンスは、クラウドコンピューティングを基礎とするゲーム方式である。クラウドゲームの動作モードにおいて、すべてのゲームは、いずれもクラウドサーバB端において動作し、かつレンダリングが完了した後のゲーム画面を圧縮した後にネットワークを通じてユーザーU1に転送することができる。たとえば、ライブ配信者端末Aにおいて動作するクラウドゲームクライアントは、ユーザーのトリガーイベントをリアルタイムに検出することができる。たとえば、タッチスクリーンイベント、キーボードマウスイベント、又はジョイスティックイベント等のうちの少なくとも1つであり、次にネットワークを通じて検出された、対応するトリガーイベントの指令を
図2に示されたクラウドサーバBに伝送することで、クラウド仮想容器におけるゲーム進行プログラムを遠隔操作してクラウドゲームインスタンスを動作させるという目的に達することができる。クラウド仮想容器において動作するクラウドゲームインスタンスとは、ターゲットクラウドゲームに対応するゲームインスタンスを指す。
【0028】
メディアエンコードモジュール21bにより提供されたメディアエンコード進行プログラムは、クラウドゲームインスタンスモジュール21aにより動作するクラウドゲームインスタンスのゲーム画面、及びオーディオをキャプチャーし、かつキャプチャーされたゲーム画面、及びオーディオに対してオーディオビデオエンコード処理を行って、オーディオビデオエンコード処理をした後に得たオーディオビデオストリームを
図2に示されたメディア伝送モジュール21cに伝送することに用いることができる。クラウドゲームインスタンスは、たとえば、ゲーム進行プログラムに対応するゲームインスタンスであり、たとえば、クラウドゲームインスタンスは、Androidインスタンスであってもよい。
【0029】
本願実施例では、メディアエンコードモジュール21bに対応するメディアエンコード進行プログラムと、クラウドゲームインスタンスモジュール21aに対応するゲーム進行プログラムとは、同一のクラウド仮想容器において動作させることができる。すなわち、本願実施例は、クラウドゲームインスタンスを動作させるクラウド仮想容器中に容器内のデータレンダリングを行うことができ、さらにゲーム画面レンダリングをするときのレンダリング遅延を根本的に削減することができる。また、メディアエンコードモジュール21bは、
図2に示されたメディア伝送モジュール21cにより転送されたユーザーU1がライブ配信者端末Aを通じて送信した音声入力操作、又はタッチ操作等を受信することもでき、かつ受信された音声入力操作、又はタッチ操作等をクラウドゲームインスタンス中に挿入することができる。
【0030】
メディア伝送モジュール21cにより転送された操作が、ユーザーU1がライブ配信者端末Aを通じて実行したタッチ操作であることを例とすると、
図2に示されたメディアエンコードモジュール21bは、該タッチ操作をT1時点でクラウドゲームインスタンスモジュール21aにおけるクラウドゲームインスタンス中に挿入するときに、メディアエンコードモジュール21bは、さらに該T1時点の次の時点でクラウドゲームインスタンスがタッチ操作に対して応答したときのゲーム画面、及びオーディオをキャプチャーすることに用いることができる。本願実施例では、該メディアエンコードモジュール21bにより定期的にキャプチャーされたゲーム画面をゲーム画像データと総称することができ、かつ該メディアエンコードモジュール21bにより定期的にキャプチャーされた音声をゲームオーディオデータと総称することができる。T1時点の次の時点は、たとえば、T2時点である。ゲーム画面は、たとえば、ゲームビデオフレームデータであり、オーディオは、たとえば、ゲーム背景音、又は背景オーディオフレームデータのうちの少なくとも1種である。
【0031】
メディア伝送モジュール21cは、ユーザーU1から送信されたクラウドゲームアクセス要求を受信することに用いることができ、かつ受信されたクラウドゲームアクセス要求に基づいて該ユーザーU1に対して権限認証を行うことができ、権限認証が成功した状況において、ユーザーU1がライブ配信者端末Aを通じてクラウドサーバBにアクセスすることを許可し、かつクラウドサーバBと、ユーザーU1に対応するクラウドゲームクライアントとの間にゲームサービス接続を確立する。本願実施例では、該メディア伝送モジュール21cに対応する進行プログラムをクラウドサーバBにおけるメディア伝送進行プログラムと総称することができ、メディア伝送進行プログラムは、クラウド仮想容器から独立した他の仮想容器中に動作させることができ、本願実施例では、データ転送処理と音声ミキシング処理とを行うことに用いられる他の仮想容器を補助仮想容器と総称することができる。
【0032】
メディア伝送モジュール21cに対応するメディア伝送進行プログラムは、受信メディアエンコードモジュール21bに対応するメディアエンコード進行プログラムから送信されたオーディオビデオストリームを受信したときに、送信されたオーディオビデオストリームが、たとえば、オーディオビデオストリーム100aであり、ライブ配信者端末Aの端末スクリーン情報に基づいて、オーディオビデオストリーム100aに対してオーディオビデオエンコードを行うことができる。エンコードすることにより得られたオーディオビデオストリームは、ゲームエンコードストリームと総称することができ、ゲームエンコードストリームをネットワークを通じてユーザーU1に対応するライブ配信者端末Aに伝送することができる。エンコードすることにより得られたオーディオビデオストリームは、たとえば、オーディオビデオストリーム100bであり、オーディオビデオストリーム100bには、メディアエンコードモジュール21bがクラウドゲームエンコード標準に応じてエンコードすることにより得た1つのビデオストリームが含まれる。ここで、ライブ配信者端末Aは、クラウドサーバBがメディア伝送モジュール21cを通じて返したゲームエンコードストリームを受信したときに、それに対してデコード処理を行うことができる。それにより、該ゲームエンコードストリームに対応するオーディオとビデオのシーケンスを得て、さらにライブ配信者端末Aのクラウドゲーム表示インタフェース上にユーザーU1がライブ配信したターゲットクラウドゲームのクラウドゲーム画面を表示することができる。
【0033】
ユーザーU1がターゲットクラウドゲームをプレイしている過程において、クラウドゲームクライアントを動作させるライブ配信者端末Aを通じてユーザーU1の音声入力操作をリアルタイムに検出して、音声入力操作に対応するユーザーU1の音声データをゲームサービス接続を通じてメディア伝送モジュール21cに送信することができる。メディア伝送モジュール21cは、ユーザーU1の音声データを受信したときに、ユーザーU1の音声データは、ライブ配信者対象の処理対象オーディオデータと総称することができ、メディア伝送モジュール21cに対応するメディア伝送進行プログラムを通じて処理対象オーディオデータを
図2に示されたメディアエンコードモジュール21bに転送することで、メディアエンコードモジュール21bに処理対象オーディオデータをクラウドゲームインスタンス中に挿入させることができる。
【0034】
クラウドゲームライブ配信シーンにおいて、メディアエンコードモジュール21bは、さらにクラウドライブ配信エンコード標準に応じて別のビデオエンコードを起動することができる。それにより、クラウドライブ配信エンコード標準により指示された固定フレームレート、フレームグループの長さ等に応じてエンコードして別のビデオストリームを得る。該別のビデオストリームは、クラウドゲームエンコード標準に応じてエンコードすることにより得られたビデオストリームと異なる。たとえば、ここでのフレームグループの長さは、2つのIフレームの間の間隔を記述することに用いられ、たとえば、フレームグループの長さは、120フレームであってもよく、ここでの固定フレームレートは、60フレームであってもよく、これは、2秒ごとにIフレームが一回発生し得ることを意味する。
【0035】
図2に示すように、クラウドゲームライブ配信シーンにおいて、メディア伝送モジュール21cは、さらにユーザーU1の音声データ(すなわち、上記処理対象オーディオデータ)を受信したときに、処理対象オーディオデータと、メディアエンコードモジュール21bによりキャプチャーされたオーディオ(すなわち、上記ゲームオーディオデータ)に対してリアルタイムな音声ミキシング処理を行うことで、音声ミキシングオーディオデータを得る。ここで、上記処理対象オーディオデータを収集することに用いられるライブ配信者端末Aと該ゲームオーディオデータを収集することに用いられるクラウドサーバBとは、異なる参照系を使用する可能性があるため、異なる参照系において収集されたゲームオーディオデータのタイムスタンプと、処理対象オーディオデータのタイムスタンプとの間に所定のインターバルが存在することを引き起こすことがある。従って、後に続く視聴者端末で再生されたオーディオとビデオの同期を確保するために、本願実施例は、クラウドゲームライブ配信シーンにおいて、メディアエンコードモジュール21bがキャプチャーしたオーディオ(すなわち、メディアエンコードモジュール21bが固定オーディオ収集時間インターバルに応じて定期的に収集したゲームオーディオデータ)のタイムスタンプ(すなわち、オーディオ収集タイムスタンプ)を参照タイムスタンプとすることができる。さらに音声ミキシング処理後に得た音声ミキシングオーディオデータの音声ミキシングタイムスタンプと、上記ゲームオーディオデータのオーディオ収集タイムスタンプとを一致させるように保持することを提案する。
【0036】
クラウドサーバBは、メディア伝送モジュール21cを通じて音声ミキシング処理済みの音声ミキシングオーディオデータ、音声ミキシングタイムスタンプ(すなわち、上記オーディオ収集タイムスタンプ)、ゲーム画像データ、又は画像収集タイムスタンプ等のうちの少なくとも1つを、
図2に示されたメディア転送モジュール22aに転送することができる。
図2に示すように、メディア転送モジュール22aは、クラウドストリームプッシュサービスを提供することに用いられるクラウドゲーム中央クラスター中に配備することができ、クラウドゲーム中央クラスターは、1つ又は複数のクラウドゲーム中央サーバを含むことができる。複数とは、少なくとも2つを指し、それぞれのクラウドゲーム中央サーバは、いずれもメディア転送モジュール22aが統合して配備することができ、さらにメディア転送モジュール22aを通じてメディア伝送モジュール21cが送信したオーディオビデオを優先度キューにキャッシュすることで、後に続く上記固定時間インターバルに応じてメディア転送モジュール22aに対応する優先度キュー中からオーディオビデオパケットの取得を行うことに有利である。さらに取得したオーディオビデオパケットに対してオーディオビデオエンコード処理を行うことで、得られたターゲットクラウドゲームのライブ配信データストリームをエンコードする。
【0037】
クラウドサーバBは、メディア転送モジュール22aを通じてライブ配信データストリームをライブ配信サーバCにストリームプッシュすることができる。それにより、ライブ配信サーバCが、ライブ配信者対象と同一の仮想ライブ配信ルーム中に位置する視聴者ユーザーのライブ配信ストリームプル要求を受信した状況において、ライブ配信データストリームを
図2に示された視聴者端末、たとえば、視聴者端末D1、又は視聴者端末D2のうちの少なくとも1つまでリアルタイムに配信する。各視聴者端末において動作するライブ配信クライアントは、いずれもライブ配信データストリームにおけるオーディオ収集タイムスタンプ、及び画像収集タイムスタンプに基づいて、音声ミキシングオーディオデータとゲーム画像データとに対して同期再生を行うことができ、さらに視聴者端末に音声ミキシング後のオーディオビデオの同期再生効果を向上させることができる。
【0038】
図2に示すように、ライブ配信サーバCは、
図2に示されたライブ配信エッジサーバ201a、ライブ配信元サーバ202a、及びライブ配信転送サーバ203aを含むことができる。ライブ配信エッジサーバ201aは、プッシュされてきたライブ配信データストリーム(バックアップrtmp、hls、webrtc等のプロトコルをサポートする)を受信することに用いることができ、かつライブ配信データストリームをライブ配信元サーバ202aに転送することができる。ライブ配信元サーバ202aは、配信元クラスターにおける1つのサーバであってよく、ライブ配信元サーバ202aは、最新の期間で受信したライブ配信データストリームをキャッシュすることに用いることができ、かつライブ配信データストリームに対して、たとえば、トランスコード処理、録画処理、又はわいせつ物鑑定処理のうちの少なくとも1種の処理の後処理を行うことができる。また、ライブ配信元サーバ202aは、ライブ配信転送サーバ203aから転送された視聴者端末が送信した、ストリームプルを要求することに用いられるコマンドを受信することもできる。ライブ配信元サーバ202aは、たとえばOriginServerである。ライブ配信転送サーバ203aは、全国各地に展開されたエッジノードであってもよく、たとえば、CDNノードである。ライブ配信転送サーバ203aは、いくつかの人気のあるメディアファイルをキャッシュすることに用いることができ、さらにライブ配信元サーバ202aが後処理を行うことにより得られたメディアストリームを転送することに用いることができ、かつメディアストリームを各視聴者端末に対応する視聴者対象に配信することができる。視聴者対象は、ライブ配信者対象と同一の仮想ライブ配信ルームに位置する視聴者ユーザー(player)であってもよい。
【0039】
また、ある視聴者ユーザーが、あるクラウドゲームのライブ配信ビデオを見るように要求するが、ライブ配信転送サーバ203aには該クラウドゲームのライブ配信ビデオがキャッシュされていないときに、ライブ配信転送サーバ203aは、ライブ配信元サーバ202aに対してストリームプルを行うことができる。それにより、ストリームプルをしたライブ配信ビデオをローカルにキャッシュすることができることによって、該視聴者ユーザーに対応する視聴者端末に配信する。クラウドサーバが、ゲーム画像データとゲームオーディオデータとを取得し、かつゲームオーディオデータ、及び処理対象オーディオデータに対して音声ミキシング処理を行う具体的な過程は、以下の
図3~
図8に対応する実施例を参照することができる。
【0040】
いくつかの実施例では、
図3に示すように、ゲームデータの処理方法のプロセス模式図を提供する。
図3に示すように、該方法は、コンピュータ機器により実行されてもよく、コンピュータ機器は、クラウドサーバであってもよく、クラウドサーバは、
図2に対応する実施例におけるクラウドサーバBであってもよい。コンピュータ機器は、プレイヤーのゲーム端末であってもよく、プレイヤーのゲーム端末は、
図2に対応する実施例におけるライブ配信者端末Aであってもよい。本願実施例に関する方法は、プレイヤーのゲーム端末により実行されてもよく、該プレイヤーのゲーム端末に対応するクラウドサーバにより実行されてもよく、さらにプレイヤーのゲーム端末とクラウドサーバとが共同で実行してもよい。本実施例では、該方法がクラウドサーバにより実行されることを例として、クラウドサーバにおいてゲームオーディオデータ、及び処理対象オーディオデータに対して音声ミキシング処理を行う具体的な過程を説明している。ここで、該方法は、少なくとも以下のステップS101~ステップS104を含むことができる。
【0041】
ステップS101:クラウドゲームクライアントから送信された、ターゲットクラウドゲームに対するクラウドゲームライブ配信要求を受信し、クラウドゲームライブ配信要求に基づいて、クラウドサーバと、クラウドゲームクライアントに関連付けられたライブ配信サーバとの間のライブ配信サービス接続を確立する。
【0042】
具体的には、コンピュータ機器(たとえば、クラウドサーバ)は、クラウドゲームのライブ配信ストリームプッシュシーン(すなわち、クラウド端がターゲットクラウドゲームに対してライブ配信を行うクラウドゲームシーン)において、クラウドゲームクライアントから送信された、ターゲットクラウドゲームに対するクラウドゲームライブ配信要求を受信することができる。
【0043】
ここで、クラウドゲームライブ配信要求は、クラウドゲームクライアントがライブ配信者対象によりライブ配信指示コントロールに対して実行されたトリガー操作に応答することにより生成される。さらに、コンピュータ機器(たとえば、クラウドサーバ)は、クラウドゲームライブ配信要求に含まれているゲーム開始識別子に基づいて、クラウドゲームクライアントに関連付けられたライブ配信サーバにライブ配信認証要求を送信することができ、それにより、ライブ配信サーバが、ライブ配信認証要求に基づいてクラウドゲームクライアントのためにターゲットクラウドゲームをライブ配信することに用いられるライブ配信ストリームプッシュアドレスを設定する。さらに、コンピュータ機器(たとえば、クラウドサーバ)は、ライブ配信サーバから返されたライブ配信ストリームプッシュアドレスを受信し、ライブ配信ストリームプッシュアドレスをクラウドゲームクライアントに返すときに、クラウドサーバとライブ配信サーバとの間のライブ配信サービス接続を確立するようにトリガーすることができる。
【0044】
図4は、本願実施例により提供されるクラウドゲームシーンにおいてターゲットクラウドゲームに対してクラウドライブ配信を行うシーン模式図である。ここで、
図4に示されたゲーム表示インタフェース400aは、ユーザーU1が現在プレイしているターゲットクラウドゲームの表示インタフェースである。ターゲットクラウドゲームは、ユーザーU1が
図4に示されたゲーム端末41aにおいて動作するクラウドゲームクライアント上に選択した、自分が関心のあるクラウドゲームである。クラウドゲームライブ配信シーンにおいて、ユーザーU1は、ターゲットクラウドゲームに対してライブ配信を行う必要があるライブ配信者対象であってもよく、ライブ配信者対象は、ゲーム開始識別子を通じてクラウドゲームクライアントにアクセスするゲーム対象、すなわち、
図4に示されたユーザーU1であると理解することができる。ゲーム開始識別子は、たとえば、クラウドゲームアカウントであってもよい。
【0045】
いくつかの実施例では、
図4に示すように、クラウドサーバ42aは、ユーザーU1から送信されたクラウドゲームライブ配信要求(すなわち、クラウドゲームのライブ配信を始める情報ストリーム)を受信することができ、さらにユーザーU1から送信されたクラウドゲーム終了要求を受信することもできる。
図4に示すように、ユーザーU1は、クラウドゲームからログアウトする必要があるときに、クラウドゲームからログアウトすることに用いられるログアウトコントロールをトリガーすることができ、ゲーム端末41aは、ログアウトコントロールに対するトリガー操作に応答して、クラウドサーバ42aに送信することができる、現在ライブ配信しているクラウドゲームを終了することに用いられるクラウドゲーム終了要求を生成することができる。クラウドサーバ42aは、ターゲットクラウドゲームに対して送信したクラウドゲーム終了要求(すなわち、クラウドゲームのライブ配信を終了する情報ストリーム)を受信したときに、クラウドライブ配信サーバ43aとデータ交換を行うライブ配信サービス接続を中断することができる。
【0046】
ステップS102:ライブ配信サービス接続に基づいてターゲットクラウドゲームのゲーム画像データ、及びゲームオーディオデータを取得し、ゲーム画像データに対応する画像収集タイムスタンプと、ゲームオーディオデータに対応するオーディオ収集タイムスタンプとを記録する。
【0047】
ここで、クラウドサーバは、メディアエンコード進行プログラムにより指示されたデータ収集アセンブリを通じて、ゲーム画面、及びオーディオをリアルタイムにキャプチャーした状況において、クラウドゲームのライブ配信ストリームプッシュシーンにおいて安定的なフレームレートを提供することを確保するために、本願実施例では、リアルタイムにキャプチャーされたゲーム画面(すなわち、ゲームビデオフレームデータ)とオーディオ(すなわち、ゲーム背景音)とを、クラウドメモリ(すなわち、buffer)中にキャッシュすることができる。それにより、後に続くクラウドメモリ中からタイマーを通じて固定収集間隔で相応なデータをキャプチャーすることに有利である。本願実施例では、収集端でタイマーを通じて収集されたゲーム画面(すなわち、クラウドメモリ中にキャッシュされたゲームビデオフレームデータ)をゲーム画像データと総称することができ、かつタイマーにより記録された、該ゲーム画像データを収集することに用いられるタイムスタンプを画像収集タイムスタンプと総称することができる。
【0048】
本願実施例では、収集端でタイマーを通じて収集されたゲーム背景音をゲームオーディオデータと総称することができ、かつタイマーにより記録された、該ゲームオーディオデータを収集することに用いられるタイムスタンプをオーディオ収集タイムスタンプと総称することができる。後に続く視聴者端末に再生されたゲーム背景音とゲーム画面とのオーディオビデオの同期効果を確保するために、画像収集タイムスタンプとオーディオ収集タイムスタンプとは、同一の参照系におけるタイムスタンプであることを確保する必要があり、それにより、データがクラウド端の複数のクラウドサービスモジュール中に伝送することに起因する伝送遅延を回避する。
【0049】
ここで、理解できるように、ライブ配信は、安定的なフレームレートを必要とする。従って、本願実施例は、上記データ収集アセンブリを通じてキャプチャーしたゲーム画面とオーディオとをクラウドメモリ中に予めキャッシュすることができ、それにより、後に続いて、タイマーを通じて、クラウドメモリ中から固定時間インターバルで相応なフレームレートのオーディオビデオデータをキャプチャーして、エンコードすることに有利であることを提案する。具体的には、
図5に示すように、クラウドサーバは、該メディアエンコード進行プログラム51bにより指示されたタイマーを通じて、上記クラウドメモリにより記憶されたゲームビデオフレームデータ中から第1収集時間インターバル(たとえば、33msごとに)により指示された第1フレームレート(たとえば、30フレーム/s)とマッチングする画像フレームを収集することができ、かつ収集された画像フレームをターゲットクラウドゲームのゲーム画像データとすることができ、かつタイマーにより指示された参照系において、ゲーム画像データに対応する画像収集タイムスタンプを記録することができる。さらに、クラウドサーバは、さらにタイマーを通じて、クラウドメモリにより記憶された背景オーディオフレームデータ中から第2収集時間インターバル(たとえば、10ms)により指示された第2フレームレート(たとえば、100フレーム/s)とマッチングするオーディオフレームを収集し、収集されたオーディオフレームをターゲットクラウドゲームのゲームオーディオデータとして、かつタイマーにより指示された同一の参照系において、ゲームオーディオデータに対応するオーディオ収集タイムスタンプを記録することができる。第1収集時間インターバル、第1フレームレート、第2収集時間インターバル、及び第2フレームレートは、予め設定するか、又は必要に基づき設定することができ、たとえば、第1収集時間インターバルは、33msであり、第1フレームレートは、30フレーム/sであり、第2収集時間インターバルは、10msであり、第2フレームレートは、100フレーム/sである。
【0050】
ここで、理解すべき点は、コーデック機器のビデオフレームのエンコード性能に対する要件は、コーデック機器のオーディオフレームのエンコード性能に対する要求よりも高くなり、且つユーザーの音声に対する感知ニーズがより大きい。従って、タイマーが過剰にビデオフレームを収集することと、オーディオのフリーズが発生することとを回避するために、本願実施例は、オーディオビデオ収集を行う過程において、該第2収集時間インターバルの記録を第1収集時間インターバルよりも小さくセッティングすることを提案している。このように、該第2収集時間インターバルにより指示された第2フレームレートは、第1収集時間インターバルにより指示された第1フレームレートよりも大きくなる。これに基づいて、本願実施例では、オーディオビデオ収集過程において、異なるフレームレートを設定することを通じて単位収集時間インターバル内(すなわち、1つの第1収集時間インターバル内)で過剰なビデオフレームを収集する状況を根本的に減少させることができ、よって、過剰なビデオフレームにより起因するビデオエンコード性能の過渡消耗を減少させることができる。
【0051】
ステップS103:クラウドゲームクライアントから送信されたライブ配信者対象の処理対象オーディオデータを取得したときに、ゲームオーディオデータ、及び処理対象オーディオデータに対して音声ミキシング処理を行って、音声ミキシングオーディオデータを得る。
【0052】
ここで、音声ミキシングオーディオデータに対応する音声ミキシングタイムスタンプは、オーディオ収集タイムスタンプと一致することを保持しており、オーディオ収集タイムスタンプは、収集オーディオタイムスタンプとも呼称されてもよい。
【0053】
具体的には、クラウドサーバは、クラウドゲームクライアントから送信されたライブ配信者対象の処理対象オーディオデータを取得したときに、処理対象オーディオデータに対してデコード処理を行って、ライブ配信者対象の処理対象オーディオフレーム、及び処理対象オーディオフレームの録画タイムスタンプを得ることができる。クラウドサーバは、ゲームオーディオデータに対応する第2収集時間インターバルに基づいて、ゲームオーディオデータにおけるオーディオフレームを取得することができ、かつ取得したオーディオフレームを参照オーディオフレームとして、且つゲームオーディオデータに対応する収集オーディオタイムスタンプに基づき、参照オーディオフレームの音声ミキシングタイムスタンプを決定することができる。クラウドサーバは、音声ミキシングタイムスタンプに基づいて録画タイムスタンプを調整することができ、かつ調整後の録画タイムスタンプに基づいて、参照オーディオフレームと処理対象オーディオフレームとに対して音声ミキシング処理を行って、収集オーディオタイムスタンプと一致するように保持される音声ミキシングタイムスタンプに対応する音声ミキシングオーディオフレームを得ることができる。得た音声ミキシングオーディオフレームと、音声ミキシングオーディオフレームに対応する音声ミキシングタイムスタンプとをターゲットクラウドゲームの音声ミキシングオーディオデータとする。
【0054】
ステップS104:音声ミキシングオーディオデータ、オーディオ収集タイムスタンプ、ゲーム画像データ、及び画像収集タイムスタンプに基づいて、ターゲットクラウドゲームに対応するライブ配信データストリームを得て、ライブ配信データストリームを、ライブ配信サーバを通じて、クラウドゲームクライアントに関連付けられたライブ配信クライアントに配信する。
【0055】
ここで、クラウドサーバは、クラウドゲームライブ配信要求に基づいて開始したメディア転送進行プログラムを含む。メディア転送進行プログラムは、クラウドサーバとライブ配信サーバとの間のライブ配信サービス接続を保持することに用いられ、メディア転送進行プログラムは、
図5に対応する実施例におけるメディア転送進行プログラム52aであってもよい。
【0056】
いくつかの実施例では、クラウドサーバは、音声ミキシングオーディオデータを取得し、音声ミキシングオーディオデータ中から音声ミキシングオーディオフレームと、音声ミキシングオーディオフレームに対応するオーディオ収集タイムスタンプとを取得し、オーディオ収集タイムスタンプに基づいて音声ミキシングオーディオフレームに対してソート処理を行い、ソート処理済みの音声ミキシングオーディオフレームを、メディア転送進行プログラムに関連付けられたオーディオキャッシュキューに書込むことができる。クラウドサーバは、ゲーム画像データを取得し、ゲーム画像データ中から画像フレームと、画像フレームに対応する画像収集タイムスタンプとを取得し、画像収集タイムスタンプに基づいて画像フレームに対してソート処理を行い、ソート処理済みの画像フレームを、メディア転送進行プログラムに関連付けられたビデオキャッシュキューに書込むことができる。クラウドサーバは、メディア転送進行プログラムに関連付けられたスムーズ取得スレッドを取得し、スムーズ取得スレッドを通じてビデオキャッシュキュー中から、第1収集時間インターバルにより指示された第1フレームレートとマッチングするビデオデータパケットを取得し、スムーズ取得スレッドを通じてオーディオキャッシュキュー中から、第2収集時間インターバルにより指示された第2フレームレートとマッチングするオーディオデータパケットを取得することができる。クラウドサーバは、ビデオデータパケットとオーディオデータパケットとに対してパッケージ処理を行い、ターゲットクラウドゲームに対応するライブ配信データストリームを得て、ライブ配信データストリームを、ライブ配信サーバを通じて、クラウドゲームクライアントに関連付けられたライブ配信クライアントに配信することができる。
【0057】
本願実施例では、クラウドサーバは、クラウドゲームクライアントから送信されたターゲットクラウドゲームに対するクラウドゲームライブ配信要求を受信したときに、クラウドゲームライブ配信要求に基づいて、クラウドサーバと、クラウドゲームクライアントに関連付けられたライブ配信サーバとの間のライブ配信サービス接続を確立することができる。クラウドサーバは、ライブ配信サービス接続に基づいて、ターゲットクラウドゲームのゲーム画像データ、及びゲームオーディオデータを取得し、ゲーム画像データに対応する画像収集タイムスタンプと、ゲームオーディオデータに対応するオーディオ収集タイムスタンプとを記録することができる。ここで、データ伝送遅延過程におけるオーディオとビデオとの同期の正確性を向上させるために、本願実施例では、クラウドゲームライブ配信シーンにおいて、画像収集タイムスタンプとオーディオ収集タイムスタンプとは、同一の参照系におけるタイムスタンプであることを確保し、さらに同一の参照系におけるそれらのタイムスタンプに基づいてオーディオとビデオとの同期の信頼性を実現することができる。さらに、コンピュータ機器は、クラウドゲームクライアントから送信されたライブ配信者対象の処理対象オーディオデータを取得したときに、ゲームオーディオデータ、及び処理対象オーディオデータに対して音声ミキシング処理を行って、音声ミキシングオーディオデータを得る。クラウドゲームライブ配信シーンにおいて、ライブ配信者対象の音は、クラウドゲームクライアントにより録画されることにより得られ、ゲーム背景音は、クラウドサーバがクラウド端にキャプチャーすることにより得られる。クラウドゲームクライアントとクラウドサーバとの間にデータ伝送が存在し、且つ視聴者ユーザーが感知するのは、ゲーム画面とゲーム背景音との同期であることを考慮するため、ライブ配信者対象の音(すなわち、処理対象オーディオデータ)とゲーム背景音とに対して音声ミキシングを行う過程において、ゲーム背景音のオーディオ収集タイムスタンプを参照とすることができる。それにより、音声ミキシング後に得た音声ミキシングオーディオデータに対応する音声ミキシングタイムスタンプは、オーディオ収集タイムスタンプと一致することを保持している。さらに、コンピュータ機器は、音声ミキシングオーディオデータ、オーディオ収集タイムスタンプ、ゲーム画像データ、及び画像収集タイムスタンプに基づいて、ターゲットクラウドゲームに対応するライブ配信データストリームを得ることができ、さらにライブ配信データストリームを、ライブ配信サーバを通じて、クラウドゲームクライアントに関連付けられたライブ配信クライアントに配信することができる。それにより、ライブ配信クライアントがライブ配信データストリームにおけるオーディオ収集タイムスタンプと画像収集タイムスタンプとに基づいて、音声ミキシングオーディオデータとゲーム画像データとに対して同期再生を行うことができる。これから分かるように、クラウドゲームライブ配信シーンにおいて、クラウドゲームクライアントは、ライブ配信サーバにライブ配信データストリームを直接プッシュすることはなく、該クラウドサーバを通じてライブ配信サーバに対してライブ配信データストリームのプッシュを行う。それにより、クラウドサーバの強い計算能力を利用し、クラウドゲームクライアント側に対する性能消耗を低減させる。また、クラウドサーバ側にオーディオ収集タイムスタンプと画像収集タイムスタンプとに基づいてオーディオビデオの同期を行うことを通じて、ライブ配信ストリームプッシュ過程においてジッター、順序ずれ等に起因するオーディオビデオの同期ずれ現象を解決することができるだけでなく、さらにマルチチャンネルの音声ミキシングの同期、及びフリーズの問題を実現することができ、さらにオーディオとビデオとの同期の信頼性を実現することができる。このように、ライブ配信クライアントにおいてライブ配信データストリームにおけるオーディオ収集タイムスタンプと画像収集タイムスタンプとに基づいて、音声ミキシングオーディオデータとゲーム画像データとに対して同期再生を行うときに、音声ミキシング後のオーディオビデオの同期再生効果を向上させることができる。
【0058】
いくつかの実施例では、クラウドゲームクライアントから送信された、ターゲットクラウドゲームに対するクラウドゲームライブ配信要求を受信する前に、該方法は、クラウドゲームクライアントがターゲットクラウドゲームに対して送信したゲームアクセス要求を取得したときに、ゲームアクセス要求に基づいてクラウドゲームクライアントに対応するゲーム開始識別子に対して権限認証処理を行って、ゲーム開始識別子に対応する権限認証結果を得るステップであって、ゲームアクセス要求には、クラウドゲームクライアントが所属するクライアント環境システムが含まれている、ステップと、もし権限認証結果が、クラウドゲームクライアントがゲーム開始識別子を通じてターゲットクラウドゲームにアクセスする権限を有することを指示していれば、クラウドサーバとクラウドゲームクライアントとの間のゲームサービス接続を確立し、且つゲームサービス接続に基づいてクラウドゲームクライアントが所属するクライアント環境システムのためにターゲットクラウドゲームを動作させることに用いられるクラウド仮想容器を設けるステップと、クラウド仮想容器においてターゲットクラウドゲームのゲーム進行プログラムを開始し、ゲーム進行プログラムを通じてターゲットクラウドゲームを動作させるステップと、をさらに含む。
【0059】
ここで、プレイヤーのゲーム端末は、該クラウドゲームクライアントのフロントエンドとすることに用いることができ、クラウドサーバは、クラウドゲームクライアントのバックグラウンドとすることに用いることができ、クラウドサーバは、プレイヤーのゲーム端末におけるゲーム対象から送信されたゲームアクセス要求を取得した後に、該ゲームアクセス要求に含まれているクラウドゲームクライアントに対応するゲーム開始識別子を抽出し、ゲーム開始識別子に対して権限認証処理を行って、ゲーム開始識別子に対応する権限認証結果を得ることができる。もしクラウドサーバが権限認証が成功することを確認すれば、すなわち、ゲームユーザーに対応するクラウドゲームクライアントは、ゲーム開始識別子を通じてターゲットクラウドゲームにアクセスする権限を有するときには、クラウドサーバとクラウドゲームクライアントとの間のゲームサービス接続を確立し、且つゲームサービス接続に基づいてクラウドゲームクライアントが所属するクライアント環境システムのためにターゲットクラウドゲームを動作させることに用いられるクラウド仮想容器を設けることができる。
【0060】
ここで、ゲームアクセス要求には、クラウドゲームクライアントが所属するクライアント環境システムがさらに含まれていてもよく、クライアント環境システムは、アンドロイドシステムを含むことができるがそれに制限されない。たとえば、クライアント環境システムは、さらにプレイヤーのゲーム端末において動作するハーモニーシステム、又はアップルシステム等を含むことができる。
【0061】
ここで、クラウドサーバは、複数のクラウド仮想容器を動作させることに用いることができ、それぞれのクラウド仮想容器は、いずれも1つの容器インスタンスである。それぞれの容器インスタンスでは、いずれも対応するプレイヤーのゲーム端末におけるクライアント環境システムとマッチングする遠隔移動ゲーム動作環境を動作させることができる。クラウドサーバにおいてそれぞれのプレイヤーユーザー端末のために仮想した遠隔移動ゲーム動作環境は、クラウドゲーム環境システムと総称することができる。たとえば、クラウドゲーム環境システムは、クラウドサーバにおいてそれぞれのユーザー端末のために仮想した遠隔アンドロイドシステムであってもよく、任意の1つのクラウド仮想容器は、いずれも、対応するプレイヤーのゲーム端末のために基礎とするアンドロイド動作環境を提供することに用いることができる。たとえば、クラウドサーバは、ライブ配信者端末Aのためにターゲットクラウドゲームを動作させることに用いられるクラウド仮想容器を設けるときに、クラウド仮想容器においてターゲットクラウドゲームのゲーム進行プログラムを開始し、ゲーム進行プログラムを通じてターゲットクラウドゲームを動作させることができる。
【0062】
ここで、ゲームユーザーがプレイヤーのゲーム端末においてターゲットクラウドゲームのゲームアイコンをトリガーするときには、クラウド仮想容器においてゲームアイコンに関連付けられたゲーム進行プログラムを開始することができ、さらにクラウド仮想容器においてゲーム進行プログラムのために相応なフレーム緩衝領域を割り当てることができ、それにより、容器内のレンダリング技術を利用して内部レンダリングを実現し、プレイヤーのゲーム端末中に表示することに用いられるゲーム表示インタフェースをレンダリングにより得ることができる。ゲーム表示インタフェースには、ゲームキャラクターに対応する業務を実行するように操作して制御する機能を有する業務コントロールを含むことができる。
【0063】
ここで、クラウドゲームクライアントに対応するゲーム表示インタフェースは、さらにライブ配信者対象がクラウドゲームライブ配信を行うように指示することに用いられるライブ配信指示コントロールを含むことができる。ライブ配信者対象は、ゲーム開始識別子を通じてターゲットクラウドゲームにアクセス(すなわち、ログイン)するゲーム対象であってもよい。
【0064】
本実施例では、権限認証結果が、クラウドゲームクライアントがゲーム開始識別子を通じてターゲットクラウドゲームにアクセスする権限を有することを指示する状況において、クラウドサーバとクラウドゲームクライアントとの間のゲームサービス接続を確立し、それにより、確立したゲームサービス接続の安全性を向上させる。
【0065】
いくつかの実施例では、クラウドゲームクライアントに対応するゲーム表示インタフェースは、ライブ配信者対象がクラウドゲームライブ配信を行うように指示することに用いられるライブ配信指示コントロールを含む。クラウドゲームライブ配信要求に基づいて、クラウドサーバと、クラウドゲームクライアントに関連付けられたライブ配信サーバとの間のライブ配信サービス接続を確立するステップは、クラウドゲームクライアントから送信された、ターゲットクラウドゲームに対するクラウドゲームライブ配信要求を受信するステップを含み、クラウドゲームライブ配信要求は、クラウドゲームクライアントがライブ配信者対象によりライブ配信指示コントロールに対して実行されたトリガー操作に応答して生成される。
【0066】
具体的には、
図4に示すように、ゲーム端末41aは、ユーザーU1のライブ配信ニーズに基づき、ゲーム表示インタフェース400a上に該ライブ配信者対象がクラウドゲームライブ配信を行うように指示することに用いられるライブ配信指示コントロールを含むサブページを出力する。たとえば、ここでのサブページは、該ゲーム表示インタフェース400aから独立したフローティングウィンドウであってもよく、
図4に示すように、ユーザーU1は、該フローティングウィンドウ上にライブ配信を起動することに用いられる「ライブ配信指示コントロール」に対してトリガー操作を実行することができる。このとき、該ゲーム端末41aは、該ユーザーU1がライブ配信指示コントロールに対して実行したトリガー操作に応答して、
図4に示されたクラウドゲームライブ配信要求を生成することができ、該クラウドゲームライブ配信要求には、該ユーザーU1が該クラウドゲームクライアントにアクセスするクラウドゲームアカウントが含まれており、ここでのクラウドゲームアカウントは、該ユーザーU1が実名認証を経た後にクラウドサーバ42aにおいて登録して得たアカウントであってもよい。
【0067】
本実施例では、ゲーム表示インタフェース上にライブ配信指示コントロールを含み、それにより、ライブ配信者対象がクラウドゲームライブ配信を行うように指示することができ、交換効率が向上し、それにより、リソース利用率が向上する。
【0068】
いくつかの実施例では、クラウドゲームライブ配信要求には、ゲーム開始識別子が含まれている。クラウドゲームライブ配信要求に基づいて、クラウドサーバと、クラウドゲームクライアントに関連付けられたライブ配信サーバとの間のライブ配信サービス接続を確立するステップは、ゲーム開始識別子に基づいてクラウドゲームクライアントに関連付けられたライブ配信サーバにライブ配信認証要求を送信することで、ライブ配信サーバに、ライブ配信認証要求に基づいてクラウドゲームクライアントのためにターゲットクラウドゲームをライブ配信することに用いられるライブ配信ストリームプッシュアドレスを設定させるステップと、ライブ配信サーバから返されたライブ配信ストリームプッシュアドレスを受信し、ライブ配信ストリームプッシュアドレスをクラウドゲームクライアントに返すときに、クラウドサーバとライブ配信サーバとの間のライブ配信サービス接続を確立することをトリガーするステップと、を含む。
【0069】
具体的には、
図4に示すように、クラウドサーバ42aは、クラウドゲームクライアントが動作しているゲーム端末41aから送信されたクラウドゲームライブ配信要求を受信した状況において、さらに該クラウドゲームライブ配信要求に含まれているクラウドゲームアカウントに基づいて、
図4に示されたライブ配信認証要求を生成することができる。そして、該ライブ配信認証要求を
図4に示されたライブ配信サーバ43aに送信することで、ライブ配信サーバ43aに該ライブ配信認証要求に基づいてライブ配信システムにおいて、該クラウドゲームアカウントとバインディングするライブ配信アカウントが存在するかどうかを検索させることができる。存在すれば、取得した該ライブ配信認証要求に基づいて、ゲーム端末41aにおいて動作するクラウドゲームクライアントのために
図4に示されたライブ配信ストリームプッシュアドレスを設定することができる。
【0070】
ここで、理解すべき点は、クラウドサーバ42aとライブ配信サーバ43aとは、いずれも、ライブ配信アカウントとクラウドゲームアカウントとの間のバインディング関係を記憶することに用いることができる。理解できるように、ここでのライブ配信アカウントは、該ユーザーU1があるライブ配信クライアントを通じて、該ライブ配信クライアントに関連付けられた該ライブ配信サーバ43aにおいて登録した、ライブ配信を行うことに用いられるアカウントである。
【0071】
図4に示すように、クラウドサーバ42aは、ライブ配信サーバ43aにより返されたライブ配信ストリームプッシュアドレスを受信することができ、かつ該ライブ配信ストリームプッシュアドレスをゲーム端末41aにおいて動作するクラウドゲームクライアントに返すことができる。それにより、該クラウドゲームクライアントにおいて現在動作しているターゲットクラウドゲームに対してライブ配信処理を行う。理解すべき点は、本願実施例では、クラウドサーバ42aは、さらにライブ配信ストリームプッシュアドレスをクラウドゲームクライアントに返すときに、クラウドサーバ42aとライブ配信サーバ43aとの間のライブ配信サービス接続を確立することをトリガーすることができ、それにより、後に続くユーザーU1がターゲットクラウドゲームに対してライブ配信を行う過程において、クラウドサーバ42aに該ライブ配信サービス接続に基づいてクラウドライブ配信サーバ43aとデータ交換を行わせることを可能にすることに有利である。
【0072】
本実施例では、クラウドサーバは、ライブ配信ストリームプッシュアドレスをクラウドゲームクライアントに返すときに、クラウドサーバとライブ配信サーバとの間のライブ配信サービス接続を確立することをトリガーし、それにより、クラウドサーバにライブ配信サービス接続に基づいてクラウドライブ配信サーバとデータ交換を行わせ、データ交換の効率を向上させる。
【0073】
いくつかの実施例では、ターゲットクラウドゲームは、クラウド仮想容器におけるゲーム進行プログラムにより動作し、クラウド仮想容器は、クラウドサーバによりクラウドゲームクライアントが所属するクライアント環境システムのために設けられ、ライブ配信サービス接続に基づいてターゲットクラウドゲームのゲーム画像データ、及びゲームオーディオデータを取得する。ゲーム画像データに対応する画像収集タイムスタンプと、ゲームオーディオデータに対応するオーディオ収集タイムスタンプとを記録するステップは、ライブ配信サービス接続に基づいて、クラウド仮想容器においてゲーム進行プログラムに関連付けられたメディアエンコード進行プログラムを開始するステップと、メディアエンコード進行プログラムにより指示されたデータ収集アセンブリを通じて、ターゲットクラウドゲームに関連付けられたゲーム背景オーディオフレームデータ、及びゲームビデオフレームデータをキャプチャーし、かつキャプチャーされた背景オーディオフレームデータとゲームビデオフレームデータとを、データ収集アセンブリに関連付けられたクラウドキャッシュ空間に保存することができるステップであって、クラウドキャッシュ空間は、クラウド仮想容器から独立したクラウドメモリである、ステップと、メディアエンコード進行プログラムにより指示されたタイマーを通じて、クラウドメモリにより記憶されたゲームビデオフレームデータ中から第1収集時間インターバルにより指示された第1フレームレートとマッチングする画像フレームを収集し、かつ収集された画像フレームをターゲットクラウドゲームのゲーム画像データとすることができ、かつタイマーにより指示された参照系において、ゲーム画像データに対応する画像収集タイムスタンプを記録するステップと、タイマーを通じて、クラウドメモリにより記憶された背景オーディオフレームデータ中から第2収集時間インターバルにより指示された第2フレームレートとマッチングするオーディオフレームを収集し、収集されたオーディオフレームをターゲットクラウドゲームのゲームオーディオデータとして、かつタイマーにより指示された同一の参照系において、ゲームオーディオデータに対応するオーディオ収集タイムスタンプを記録するステップと、を含み、第2収集時間インターバルの記録は、第1収集時間インターバルよりも小さく、且つ第2フレームレートは、第1フレームレートよりも大きい。
【0074】
ここで、ゲーム進行プログラムにより動作するターゲットクラウドゲームは、上記
図2に対応する実施例におけるクラウドゲームインスタンスモジュール21aにより動作するクラウドゲームのクラウドゲームインスタンスであってもよい。メディアエンコード進行プログラムは、
図2におけるメディアエンコードモジュール21bにより提供された、ターゲットクラウドゲームに関連付けられた関連進行プログラムであってもよい。
【0075】
図5に示すように、メディアエンコード進行プログラムを通じてゲーム画面、及びオーディオをキャプチャーするシーン模式図を提供する。
図5に示されたクラウドサーバは、上記
図4に対応する実施例におけるクラウドサーバ42aであってもよく、且つ
図5に示されたライブ配信者端末は、上記
図4に対応する実施例におけるゲーム端末41aであってもよい。
【0076】
ここで、
図5に示されたクラウドゲームインスタンス51aに対応するゲーム進行プログラムは、該クラウドサーバによりクラウドゲームクライアントが所属するクライアント環境システムのために設けられたクラウド仮想容器中に動作させることができる。
図5に示すように、クラウドサーバとライブ配信サーバとの間にライブ配信サービス接続を確立するときに、該クラウドサーバは、該ライブ配信サービス接続に基づいてクラウドゲームインスタンス51aを動作させるクラウド仮想容器においてゲーム進行プログラムに関連付けられたメディアエンコード進行プログラム51bを同時に開始することができる。ここで、理解すべき点は、ここでのメディアエンコード進行プログラム51bは、上記
図2に対応する実施例におけるメディアエンコードモジュール21bにより提供された、ターゲットクラウドゲームに関連付けられた関連進行プログラムであってもよい。
【0077】
クライアント環境システムがアンドロイドシステムであることを例とする。
図5に示すように、ここでのメディアエンコード進行プログラム51bは、データ収集アセンブリ(たとえば、Android VirtualDisplay、すなわち、Androidシステムにより提供された1つのアセンブリ)を通じてクラウドゲームインスタンス51aのゲーム画面とオーディオとをリアルタイムにキャプチャーすることに用いることができる。ここでのゲーム画面とは、キャプチャーされたターゲットクラウドゲームのゲームビデオフレームデータを指し、ここでのオーディオとは、ターゲットクラウドゲームの背景オーディオフレームデータを指す。すなわち、該背景オーディオフレームデータは、リアルタイムにキャプチャーされたクラウドゲームにおけるゲーム背景音である。データ収集アセンブリは、クラウド端により提供された仮想スクリーン、又は仮想ウィンドウの画面をキャプチャーすることに用いることができ、すなわち、ここでの仮想スクリーン、又は仮想ウィンドウは、
図5に示されたライブ配信者端末内のアンドロイドウィンドウの物理スクリーンのコピーとして理解することができる。データ収集アセンブリを通じてキャプチャーされたゲーム画面とオーディオとは、該クラウド仮想容器に関連付けられたクラウドメモリ(すなわち、クラウドキャッシュ空間)中に記憶することができ、すなわち、クラウドメモリにおいてそれらをレンダリングして描画する必要がない。
【0078】
本願実施例では、メディアエンコード進行プログラム51bは、2チャンネルのエンコード操作を行うことができ、1チャンネルのエンコード操作は、クラウドゲームエンコード標準に応じて、キャプチャーされたゲーム画面とオーディオとに対してオーディオビデオエンコードを行って、
図5に示されたゲームエンコードストリーム1’をエンコードして得ることである。別のチャンネルのエンコード操作は、クラウドライブ配信エンコード標準に応じて、定期的に収集された、対応するフレームレートを有するゲーム画面とオーディオとに対してオーディオビデオエンコードを行って、
図5に示されたライブ配信データストリーム2’をエンコードして得ることである。ここで、2つチャンネルのエンコード操作を行う必要がある理由は、メディア伝送モジュールが伝送中断を発生させるときには、中断許可期間内にライブ配信者端末側のゲームサービス接続を一時的に中断することになるが、ライブ配信サービス接続を中断せず、すなわち、視聴者端末が依然として中断許可期間内でライブ配信者端末によりストリームプッシュされたライブ配信ビデオを見ることができるということである。このように、プレイヤーがネットワーク異常のために、中断許可期間内にゲームサービス接続を一時的に切断し、ライブ配信も中断することになることを引き起こす現象を根本に減少させ、回避することができる。
【0079】
図5に示すように、クラウドサーバは、さらにエンコードすることにより得られたゲームエンコードストリーム1’を、ユーザーU1がライブ配信者端末に対して実行したタッチイベントストリームの応答情報とすることができる。クラウドサーバは、さらにエンコードすることにより得られたライブ配信データストリーム2’を
図5に示されたライブ配信サーバにストリームプッシュすることができる。
【0080】
本実施例では、リアルタイムにキャプチャーされたゲーム画面とオーディオ(すなわち、ゲーム背景音)とを、クラウドメモリ中にキャッシュし、クラウドメモリ中からタイマーを通じて固定収集間隔で相応なデータをキャプチャーし、それにより、クラウドゲームのライブ配信ストリームプッシュシーンにおいて安定的なフレームレートを提供し、ライブ配信の流暢性を向上させることができる。
【0081】
いくつかの実施例では、該方法は、さらに、クラウド仮想容器においてメディアエンコード進行プログラムに関連付けられた第1エンコードスレッドを動作させるステップと、第1エンコードスレッドにより指示されたクラウドゲームエンコード標準を取得し、クラウドゲームエンコード標準を通じてキャプチャーされた背景オーディオフレームデータに対してオーディオエンコードを行って、ターゲットクラウドゲームの第1オーディオエンコードストリームを得るステップと、クラウドゲームエンコード標準を通じてキャプチャーされたゲームビデオフレームデータに対してビデオエンコードを行って、ターゲットクラウドゲームの第1ビデオエンコードストリームを得るステップと、第1オーディオエンコードストリームと第1ビデオエンコードストリームとをターゲットクラウドゲームのゲームエンコードストリームとして、ゲームエンコードストリームをクラウドゲームクライアントに返すことで、クラウドゲームクライアントにゲームエンコードストリームに対してデコード処理を行わせて、クラウドゲームクライアントにおいて同期再生を行うことに用いられる背景オーディオフレームデータとゲームビデオフレームデータとを得るステップと、を含む。
【0082】
ここで、
図5を例とすると、クラウドゲームエンコード標準は、プレイヤーがターゲットクラウドゲームをプレイする過程において、プレイヤーのために固定フレームレート、及び固定フレームグループの長さのオーディオビデオデータパケットを提供する必要がない。従って、クラウドサーバは、ライブ配信者対象がクラウドゲームクライアントに対して実行したタッチイベントストリームを受信したときに、該タッチイベントストリームに応答して、クラウド仮想容器において該メディアエンコード進行プログラム51bに関連付けられた第1エンコードスレッドを動作させることができ、かつ該第1エンコードスレッドにより指示されたクラウドゲームエンコード標準を通じて、リアルタイムにキャプチャーされた上記背景オーディオフレームデータに対してオーディオエンコードを行うことができる。それにより、ターゲットクラウドゲームの第1オーディオエンコードストリームをエンコードして得る。それと同時に、クラウドサーバは、さらにクラウドゲームエンコード標準を通じて、キャプチャーされたゲームビデオフレームデータに対してビデオエンコードを行うことができ、それにより、ターゲットクラウドゲームの第1ビデオエンコードストリームを得る。従って、
図5のゲームエンコードストリーム1’にとっては、ターゲットクラウドゲームの第1オーディオエンコードストリームと、ターゲットクラウドゲームの第1ビデオエンコードストリームと、を含むことができる。
図5に示すように、ライブ配信者端末は、該ゲームエンコードストリーム1’を受信したときに、これに基づいて該ゲームエンコードストリーム1’に対してデコード処理を迅速に行うことができ、それにより、クラウドゲームクライアントにおいて同期再生を行うことに用いられる背景オーディオフレームデータとゲームビデオフレームデータとを得る。該ゲームビデオフレームデータに対応するゲーム画面は、
図5に示されたゲーム表示インタフェース500a内のライブ配信表示領域中に表示された画面であってもよい。
【0083】
本実施例では、クラウドゲームエンコード標準を通じてキャプチャーされた背景オーディオフレームデータに対してオーディオエンコードを行って、ターゲットクラウドゲームの第1オーディオエンコードストリームを得て、クラウドゲームエンコード標準を通じてキャプチャーされたゲームビデオフレームデータに対してビデオエンコードを行って、ターゲットクラウドゲームの第1ビデオエンコードストリームを得て、エンコード効率を向上させる。
【0084】
いくつかの実施例では、クラウドサーバは、ゲーム進行プログラム、メディアエンコード進行プログラム、及びメディア伝送進行プログラムを動作させることに用いられる。メディア伝送進行プログラムは、クラウド仮想容器から独立した補助仮想容器において動作する。該方法は、さらに、クラウド仮想容器においてメディアエンコード進行プログラムに関連付けられた第2エンコードスレッドを動作させるステップと、第2エンコードスレッドにより指示されたクラウドライブ配信エンコード標準を取得し、クラウドライブ配信エンコード標準を通じて第2フレームレートに関連付けられたゲームオーディオデータに対してオーディオエンコードを行って、ターゲットクラウドゲームの第2オーディオエンコードストリームを得るステップと、クラウドライブ配信エンコード標準を通じて第1フレームレートに関連付けられたゲーム画像データに対してビデオエンコードを行って、ターゲットクラウドゲームの第2ビデオエンコードストリームを得るステップと、第2オーディオエンコードストリームと第2ビデオエンコードストリームとをターゲットクラウドゲームの処理対象エンコードストリームとして、処理対象エンコードストリームをメディア伝送進行プログラムに転送することで、メディア伝送進行プログラムに処理対象エンコードストリームに基づいて補助クラウド仮想容器において、クラウドゲームクライアントから送信されたライブ配信者対象の処理対象オーディオデータを取得したときに、ゲームオーディオデータ、及び処理対象オーディオデータに対して音声ミキシング処理を行って、音声ミキシングオーディオデータを得るステップを実行させるステップと、を含む。
【0085】
ここで、
図5に示されたクラウドサーバは、
図5に示されたクラウドゲームインスタンス51aに対応するゲーム進行プログラム、メディアエンコード進行プログラム51b、及びメディア伝送進行プログラム51cを動作させることに用いることができ、ここで、理解すべき点は、ここでのメディア伝送進行プログラムは、クラウド仮想容器から独立した補助仮想容器中に動作させることができることである。
【0086】
理解できるように、クラウドゲームライブ配信シーン(すなわち、上記クラウドゲームのライブ配信ストリームプッシュシーン)において、クラウドサーバは、さらに、クラウド仮想容器において該メディアエンコード進行プログラム51bに関連付けられた第2エンコードスレッドを動作させることができる。このとき、クラウドサーバは、第2エンコードスレッドにより指示されたクラウドライブ配信エンコード標準を取得することができ、かつクラウドライブ配信エンコード標準を通じて、第2フレームレートに関連付けられたゲームオーディオデータに対してオーディオエンコードを行って、ターゲットクラウドゲームの第2オーディオエンコードストリームを得ることができる。それと同時に、クラウドサーバは、さらにクラウドライブ配信エンコード標準を通じて、第1フレームレートに関連付けられたゲーム画像データに対してビデオエンコードを行って、ターゲットクラウドゲームの第2ビデオエンコードストリームを得ることができ、これは、
図5に示されたライブ配信データストリーム2’が少なくとも該第2オーディオエンコードストリームと第2ビデオエンコードストリームと、を含むことができることを意味する。
【0087】
たとえば、クラウドサーバは、第2オーディオエンコードストリームと第2ビデオエンコードストリームとを、ターゲットクラウドゲームの処理対象エンコードストリームとすることができ、さらに処理対象エンコードストリームを
図5に示されたメディア伝送進行プログラム51cに転送することができる。それにより、該メディア伝送進行プログラム51cが処理対象エンコードストリームに基づいて、上記補助クラウド仮想容器において下記ステップS103を実行することができることにより、該メディア伝送進行プログラム51cを通じてゲームオーディオデータと、受信された処理対象オーディオデータとに対して音声ミキシング処理を行う。さらに音声ミキシング処理済みの音声ミキシングオーディオデータ、ゲーム画像データ等を
図5に示されたメディア転送進行プログラム52aに転送することができ、さらにメディア転送進行プログラム52aを通じて音声ミキシングオーディオデータ、ゲーム画像データ等に対してオーディオビデオエンコード処理を行うことができ、それにより、ライブ配信サーバにプッシュすることに用いられるライブ配信データストリーム2’を得る。
【0088】
ここで、理解できるように、ここでのメディア転送進行プログラムは、上記
図2に対応する実施例におけるメディア転送モジュール22aにより提供された、ターゲットクラウドゲームに関連付けられたその他の関連進行プログラムであってもよい。理解できるように、上記
図2に示すように、メディア転送モジュール22aは、start-streaming要求(すなわち、上記クラウドゲームライブ配信要求)を受信した後に、上記
図2に示されたメディアエンコードモジュール21bに新たな1チャンネルのビデオエンコードを起動するように要求する(すなわち、ライブ配信ビデオのエンコード要件(すなわち、上記クラウドライブ配信エンコード標準)、たとえば、ライブ配信ビデオが固定フレームグループの長さ、固定フレームレートを有するように要件することに応じる必要がある)。次に、メディア転送モジュール22aは、リアルタイムな音声ミキシングを起動することができ(たとえばゲームの音とライブ配信者の音とに対して音声ミキシングを行うことができる)、それにより(メディアエンコードモジュール21bにより新たに起動したチャンネルの)ゲームビデオストリームと(音声ミキシング後)のオーディオストリームとを、上記メディア転送モジュール22aに転送する。start-streaming要求とは、クラウドゲームライブ配信要求を指し、ライブ配信ビデオのエンコード要件とは、クラウドライブ配信エンコード標準を指し、たとえばライブ配信ビデオは、固定フレームグループの長さ、固定フレームレートを有するように要件する。
【0089】
本実施例では、クラウドライブ配信エンコード標準を通じて第2フレームレートに関連付けられたゲームオーディオデータに対してオーディオエンコードを行って、ターゲットクラウドゲームの第2オーディオエンコードストリームを得て、クラウドライブ配信エンコード標準を通じて第1フレームレートに関連付けられたゲーム画像データに対してビデオエンコードを行って、ターゲットクラウドゲームの第2ビデオエンコードストリームを得て、エンコード効率を向上させる。
【0090】
いくつかの実施例では、クラウドゲームクライアントから送信されたライブ配信者対象の処理対象オーディオデータを取得したときに、ゲームオーディオデータ、及び処理対象オーディオデータに対して音声ミキシング処理を行って、音声ミキシングオーディオデータを得るステップは、クラウドゲームクライアントから送信されたライブ配信者対象の処理対象オーディオデータを取得したときに、処理対象オーディオデータに対してデコード処理を行って、ライブ配信者対象の処理対象オーディオフレーム、及び処理対象オーディオフレームの録画タイムスタンプを得るステップと、ゲームオーディオデータに対応する第2収集時間インターバルに基づいて、ゲームオーディオデータにおけるオーディオフレームを取得し、取得したオーディオフレームを参照オーディオフレームとして、且つゲームオーディオデータに対応する収集オーディオタイムスタンプに基づき、参照オーディオフレームの音声ミキシングタイムスタンプを決定するステップと、音声ミキシングタイムスタンプに基づいて録画タイムスタンプを調整し、調整後の録画タイムスタンプに基づいて参照オーディオフレームと処理対象オーディオフレームとに対して音声ミキシング処理を行って、収集タイムスタンプと一致するように保持される音声ミキシングタイムスタンプに対応する音声ミキシングオーディオフレームを得て、得た音声ミキシングオーディオフレームと音声ミキシングオーディオフレームに対応する音声ミキシングタイムスタンプとをターゲットクラウドゲームの音声ミキシングオーディオデータとするステップと、を含む。
【0091】
本願実施例において、ユーザーは、視聴者端末に再生されたオーディオとビデオが同期しているかどうかを感知することができるが、機器は、同期しているかどうかを感知することができない。従って、クラウドサーバ側にクラウド端ストリームプッシュを行う過程において、収集されたそれぞれのオーディオフレームとビデオフレームとに対応する収集タイムスタンプを記録することができ、ライブ配信ストリームプッシュを行うときに、相応な収集タイムスタンプも一緒にライブ配信サーバにプッシュすることができる。これに基づいて、再生端、たとえば、視聴者端末D1、及び視聴者端末D2に、ストリームプルにより最新の音声ビデオフレームを手にいれるときに、オーディオフレームとビデオフレームとの収集タイムスタンプに基づき迅速にソートして同期することができ、たとえば、ビデオを音声へ同期し、さらにライブ配信クライアントにおいてオーディオビデオの同期再生効果を実現することを可能にする。本願実施例では、クラウドサーバ側にクラウド端ストリームプッシュを行うときに、収集されたオーディオビデオフレームの収集タイムスタンプを予め記録することに焦点を合わせて考慮しているが、これは、オーディオビデオ同期の重要なポイントであり、なぜなら、マルチメディアデータ(すなわち、オーディオビデオフレーム)の伝送過程において、それぞれのオーディオビデオフレームが中継の各モジュールにおいていずれも遅延する可能性があり、もしメディア転送モジュールで収集タイムスタンプを計算すれば、必ず不正確になるためである。従って、本願実施例では、収集端(たとえば、メディアエンコードモジュール)中にそれぞれのオーディオビデオの収集タイムスタンプを予め記録する必要があることを提案する。
【0092】
ここで、ライブ配信クライアントが動作している再生端にとっては、プレーヤーは、受信されたオーディオビデオフレームのタイムスタンプに対して以下の要件を満たすことを要する。
【0093】
1)オーディオの収集タイムスタンプは、単調に逓増する必要があり、2)ビデオの収集タイムスタンプは、単調に逓増する必要があり、3)オーディオとビデオとの収集タイムスタンプの間の差は、大きすぎてはならず、たとえば、1000msよりも小さい必要がある。
【0094】
同様に、クラウドサーバ側の収集端にとっては、収集端のタイムスタンプが以下の条件を満たすことを要する。
【0095】
1)収集端のオーディオビデオフレームの到着間隔は、基本的に正確である。
【0096】
たとえば、上記収集時間インターバルに応じて、オーディオが10msごとに1つのオーディオパケットを収集することができ、ビデオが33msごとに1つのビデオパケットを収集することができ、それにより収集されたオーディオビデオフレームのフレームレートが相対的に安定していることを保証する。
【0097】
2)収集端のオーディオビデオフレームの収集タイムスタンプは、同一の参照系を使用する必要がある。
【0098】
たとえば、オーディオがメディアエンコードモジュールの時間を使用するが、ビデオがメディア伝送モジュールの時間を使用することは、許可されない。理解を容易にするために、ここでオーディオとビデオとのいずれもメディアエンコードモジュールの時間を使用することを例とすると、収集されたそれぞれのビデオフレームのビデオ収集タイムスタンプとそれぞれのオーディオフレームのオーディオ収集タイムスタンプとを記録して得る。
【0099】
3)交差出力時のオーディオビデオ間隔が基本的に正確であることを保証する。
【0100】
ライブ配信サーバに、エンコードして出力されること、それにストリームプッシュされること、それらの間隔が安定的であることを保証し、そうでなければ、フリーズが現れることがある。
【0101】
ここで、本願実施例では、クラウドサーバは、メディア伝送進行プログラムを通じて、ターゲットクラウドゲームの音(すなわち、ゲームオーディオデータ)とライブ配信者の音(すなわち、処理対象オーディオデータ)とに対して音声ミキシングを行うことができる。しかし、ライブ配信者の音を収集することに用いられる端末(すなわち、ライブ配信者端末)のタイムスタンプはゲームオーディオデータを収集することに用いられるタイムスタンプと異なる。すなわち、両者のタイムスタンプが同じではないことを考慮するため、本願の実施では、クラウドサーバは、ゲームオーディオデータに対応するオーディオ収集タイムスタンプを音声ミキシング後のタイムスタンプとして選択して使用する必要がある。なぜなら、視聴者が主にゲーム画面とゲーム背景音との同期に注目するためである。
【0102】
本実施例では、音声ミキシングタイムスタンプに基づいて録画タイムスタンプを調整し、調整後の録画タイムスタンプに基づいて参照オーディオフレームと処理対象オーディオフレームとに対して音声ミキシング処理を行って、収集タイムスタンプと一致するように保持される音声ミキシングタイムスタンプに対応する音声ミキシングオーディオフレームを得て、得た音声ミキシングオーディオフレームと音声ミキシングオーディオフレームに対応する音声ミキシングタイムスタンプとをターゲットクラウドゲームの音声ミキシングオーディオデータとして、それにより、ゲーム画面とゲーム背景音とを同期する。
【0103】
いくつかの実施例では、クラウドサーバは、音声ミキシング処理を行う過程において、取得したオーディオフレームのフレーム数を統計処理することができる。もしオーディオフレームのフレーム数がMフレームであり、且つMがゼロ以外の正の整数であれば、Mを用いて音声ミキシング処理を行うべき回数を特徴づける。クラウドサーバは、音声ミキシング処理を行うべき回数に基づいて、音声ミキシングタイムスタンプに基づいて録画タイムスタンプを調整し、調整後の録画タイムスタンプに基づいて参照オーディオフレームと処理対象オーディオフレームとに対して音声ミキシング処理を行うステップを実行するときに、処理対象オーディオフレームの音量に対して強化処理を行い、且つ参照オーディオフレームの音量に対して弱化処理を行うことができる。ここで、もしオーディオフレームのフレーム数が空値であるか、又は処理対象オーディオフレームのフレーム数が空値であれば、クラウドサーバは、参照オーディオフレームと処理対象オーディオフレームとに対して音声ミキシング処理を行わなくてもよい。音声ミキシングを行う過程において、以下のいくつかのポイントを考慮することができる。
【0104】
1)もしライブ配信においてライブ配信者の音を強調する必要があれば、音声ミキシングをするときに、先ず、ゲーム背景音に対して弱化処理を行うことができ、さらにライブ配信者の音に対して強化処理を行った後に、そして、音声ミキシングを行うことができる。
【0105】
2)WebRTC AudioMixer音声ミキシングアセンブリを使用して音声ミキシング処理を行うことができ、該音声ミキシングアセンブリ(すなわち、WebRTC AudioMixer)は、音声ミキシングを行うことに用いられるときに以下の特徴を有する。それぞれのオーディオストリームからデータを取るときに、もしすべてのaudio sourceがいずれも空であれば、音声ミキシングをされたオーディオフレームがミュートデータであり、返された音声ミキシングは失敗ではない。ミュートデータが遠隔にストリームプッシュされることになると、再生フリーズをもたらす。従って、音声ミキシング前に音声ミキシングに関与するすべてのオーディオフレームがいずれも空であるかどうかを判断する必要があり、そうであれば、音声ミキシングを行わない。audio sourceとは、ゲーム背景音に対応するオーディオフレームと、ライブ配信の音に対応するオーディオフレームとを指す。
【0106】
3)オーディオが固定サンプリングレートを有するため、音声ミキシングの回数は、多すぎても、少なすぎてもいけない。多すぎると音が乱雑になり、少なすぎるとフリーズが生じることになる。従って、ここでの提案は、ゲーム背景音に対応する固定収集間隔、たとえば10msごとに、音声ミキシングを行うようにトリガーして、1つの時点で、ネットワークジッターによりあるチャンネルのオーディオストリームのデータが受信されないことをもたらす可能性があることを回避することができるからである。たとえば、このように、T1時点でそのうちの1つのチャンネルのみを音声ミキシングするが、別の時点、たとえば、T2時点で、別のチャンネルを音声ミキシングする現象を回避することができる。
【0107】
これに基づいて、本願実施例では、音声ミキシング処理をするときに、1つのオーディオストリームをメインストリームとして選択することを提案する。メインストリームの入力周波数は、安定的である必要があり、たとえば1秒あたり100パケットであり、さらにメインストリームのフレーム数に応じて音声ミキシングを行うことができる。ゲーム背景音のパケットが安定的に出力されるため、それをメインストリームとすることで、上記ゲーム背景音に対応する固定収集間隔、たとえば10msごとに、音声ミキシングをトリガーすることができる。このように、音声ミキシングを行う前に、取得したメインストリームのフレーム数を統計処理することができ、もし0(すなわち、空値)であれば、音声ミキシング操作を行わない。逆に、もしM(すなわち、ゼロ以外の正の整数)であれば、M回の音声ミキシング操作を行うことができる。
【0108】
本実施例では、取得したオーディオフレームのフレーム数を統計処理し、音声ミキシング処理を行うべき回数を得て、それにより、音声ミキシング処理を行うべき回数を正確に決定する。
【0109】
いくつかの実施例では、該方法は、さらに、もしオーディオフレームのフレーム数が空値であるか、又は処理対象オーディオフレームのフレーム数が空値であれば、参照オーディオフレームと処理対象オーディオフレームとに対して音声ミキシング処理を行わないステップを含む。
【0110】
具体的には、音声ミキシングを行う前に、取得したメインストリームのフレーム数を統計処理することができ、もし0(すなわち、空値)であれば、音声ミキシング操作を行わない。
【0111】
本実施例では、もしオーディオフレームのフレーム数が空値であるか、又は処理対象オーディオフレームのフレーム数が空値であれば、参照オーディオフレームと処理対象オーディオフレームとに対して音声ミキシング処理を行わず、音声ミキシング処理の合理性を向上させる。
【0112】
いくつかの実施例では、クラウドサーバは、音声ミキシングオーディオデータを取得し、音声ミキシングオーディオデータ中から音声ミキシングオーディオフレームと、音声ミキシングオーディオフレームに対応するオーディオ収集タイムスタンプとを取得し、オーディオ収集タイムスタンプに基づいて音声ミキシングオーディオフレームに対してソート処理を行い、ソート処理済みの音声ミキシングオーディオフレームを、メディア転送進行プログラムに関連付けられたオーディオキャッシュキューに書込むことができる。クラウドサーバは、ゲーム画像データを取得し、ゲーム画像データ中から画像フレームと、画像フレームに対応する画像収集タイムスタンプとを取得し、画像収集タイムスタンプに基づいて画像フレームに対してソート処理を行い、ソート処理済みの画像フレームを、メディア転送進行プログラムに関連付けられたビデオキャッシュキューに書込むことができる。クラウドサーバは、メディア転送進行プログラムに関連付けられたスムーズ取得スレッドを取得し、スムーズ取得スレッドを通じてビデオキャッシュキュー中から、第1収集時間インターバルにより指示された第1フレームレートとマッチングするビデオデータパケットを取得し、スムーズ取得スレッドを通じてオーディオキャッシュキュー中から、第2収集時間インターバルにより指示された第2フレームレートとマッチングするオーディオデータパケットを取得することができる。クラウドサーバは、ビデオデータパケットとオーディオデータパケットとに対してパッケージ処理を行い、ターゲットクラウドゲームに対応するライブ配信データストリームを得て、ライブ配信データストリームを、ライブ配信サーバを通じて、クラウドゲームクライアントに関連付けられたライブ配信クライアントに配信することができる。
【0113】
本実施例では、クラウドサーバ側のメディア転送モジュールにおいて優先度キュー+スムーズ取得スレッドを採用するため、視聴者端末にオーディオビデオ再生を行う流暢性を向上させる。
【0114】
いくつかの実施例では、メディア転送進行プログラムに関連付けられたスムーズ取得スレッドを取得し、スムーズ取得スレッドを通じてビデオキャッシュキュー中から第1収集時間インターバルにより指示された第1フレームレートとマッチングするビデオデータパケットを収集し、かつスムーズ取得スレッドを通じてオーディオキャッシュキュー中から第2収集時間インターバルにより指示された第2フレームレートとマッチングするオーディオデータパケットを収集するステップは、以下を含む。クラウドサーバは、メディア転送進行プログラムに関連付けられたスムーズ取得スレッドを取得し、スムーズ取得スレッドと同じ収集時間インターバルを有するデータ収集アセンブリを取得し、データ収集アセンブリの収集時間インターバルに基づいて、ゲーム画像データに関連付けられた第1収集時間インターバルと、ゲームオーディオデータに関連付けられた第2収集時間インターバルとを決定することができる。クラウドサーバは、スムーズ取得スレッドを通じて、第1収集時間インターバルとマッチングするスムーズビデオ取得タイムスタンプを決定し、ビデオキャッシュキュー中から、画像収集タイムスタンプがスムーズビデオ取得タイムスタンプよりも小さい、キャッシュされたビデオフレームを取得し、取得した、キャッシュされたビデオフレームと、キャッシュされたビデオフレームに対応する画像収集タイムスタンプとに対してカプセル化処理を行って、第1収集時間インターバルにより指示された第1フレームレートとマッチングするビデオデータパケットを得ることができる。クラウドサーバは、スムーズ取得スレッドを通じて、第2収集時間インターバルとマッチングするスムーズオーディオ取得タイムスタンプを決定し、オーディオキャッシュキュー中から、オーディオ収集タイムスタンプがスムーズオーディオ取得タイムスタンプよりも小さい、キャッシュされたオーディオフレームを取得し、取得した、キャッシュされたオーディオフレームと、キャッシュされたオーディオフレームに対応するオーディオ収集タイムスタンプとに対してカプセル化処理を行って、第2収集時間インターバルにより指示された第2フレームレートとマッチングするオーディオデータパケットを得ることができる。
【0115】
図6は、本願実施例により提供されるメディア転送モジュールのシーン模式図である。
図6におけるメディア転送モジュールは、
図5に対応する実施例におけるメディア転送進行プログラムに対応するクラウドサービスモジュールであってもよい。
【0116】
クラウドサーバ内部でマルチメディアデータ伝送を行う過程においては、複数のモジュールを経ることになり、且つそれぞれのモジュールの処理速度が異なる。たとえば、それぞれのモジュールの、オーディオデータとビデオデータ等のマルチメディアデータを処理することにそれぞれ用いられるときの速度が異なる可能性があるため、それにより、マルチメディアデータの伝送過程において、パケット損失、到着順序ずれ、伝送輻輳の問題がある可能性があることを引き起こす。これに基づいて、もし
図6に示されたメディア転送モジュールが、その他のモジュールから送信されたライブ配信データストリームを受信した後に、該受信されたライブ配信データストリームをライブ配信サーバに直接プッシュすれば、ライブ配信クライアントが所属する視聴者端末のフリーズをもたらす可能性がある。
【0117】
本願実施例は、視聴者端末にオーディオビデオ再生を行う流暢性を向上させるために、クラウドサーバ側のメディア転送モジュールにおいて優先度キュー+スムーズ取得スレッド(すなわち、buffer+pacing)の構想を採用してこの問題を改善する。すなわち、クラウドサーバにおけるメディア転送モジュールは、オーディオフレームとビデオフレームとを受信するときに、すぐに送信する必要がなく、たとえば、受信されたフレームレートに応じてそれを
図6に記載の優先度キューに記憶することができる。
【0118】
具体的には、
図6に示すように、メディア転送モジュールは、受信されたオーディオフレームに対してオーディオ処理を行った後に、
図6に示された優先度キューまで一時的に保存することができ、かつ受信されたビデオフレームに対してビデオ処理を行った後に、
図6に示された優先度キューまで一時的に保存することができる。優先度キューは、オーディオフレームを記憶することに用いられるオーディオキャッシュキューと、ビデオフレームを記憶することに用いられるビデオキャッシュキューと、を含むことができる。ここで、本願の例では、優先度キューにおけるオーディオフレームとビデオフレームとを書込むことは、いずれも収集タイムスタンプに応じてソート処理を行う必要があり、それにより、後に続いて、スムーズ取得スレッドを通じて、優先度キュー中から収集タイムスタンプが比較的小さなデータフレームを優先的に取得することができ、よって内部伝送、又は処理過程におけるジッター、及び順序ずれ問題をできるだけ減少させる。
【0119】
ここで、
図6に示すように、メディア転送モジュールにおける他のpacingスレッド、すなわち、スムーズ取得スレッドは、固定間隔内で優先度キュー中からオーディオビデオパケットを取得しようとすることができ、固定間隔内で取得した、対応する収集タイムスタンプがあるオーディオビデオパケット、すなわち、
図6に示されたライブ配信データストリームを、ライブ配信サーバにスムーズにプッシュすることができる。たとえば、ビデオデータパケットにとっては、スムーズ取得スレッドを通じて、ビデオキャッシュキュー中から第1収集時間インターバルにより指示された第1フレームレートとマッチングするビデオデータパケットを取得し、スムーズ取得スレッドを通じて、オーディオキャッシュキュー中から第2収集時間インターバルにより指示された第2フレームレートとマッチングするオーディオデータパケットを取得することができ、このように、buffer+pacingのスムーズな戦略を通じて受信されたオーディオフレーム、及びビデオフレームのフレームレートに発生したジッターを所定の程度で解決することができ、さらに転送する必要があるオーディオデータパケットとビデオデータパケットの安定性とスムーズ度とを根本的に確保することができる。
【0120】
通常の状況において、キャッシュ期間内に、現在優先度キューにプッシュされたオーディオビデオパケットのタイムスタンプが、その前に優先度キューにプッシュされたオーディオビデオパケットのタイムスタンプよりも大きい確率が高いが、たまに伝送ジッターによる所定の順序ずれ問題、たとえば、現在優先度キューにプッシュされたオーディオビデオパケットのタイムスタンプは、その前に優先度キューにプッシュされたオーディオビデオパケットのタイムスタンプよりも小さい現象を排除しない。
【0121】
図7は、本願実施例により提供される優先度キューのシーン模式図である。
図7に示された優先度キューは、双方向リンクリスト方式を採用して、毎回キューにプッシュされたオーディオビデオパケットのタイムスタンプが、その前に優先度キューにプッシュされたオーディオビデオパケットのタイムスタンプよりも大きい確率が高いことを確保する。たとえば、
図7に示された優先度キューのキューヘッドノードは、収集タイムスタンプが比較的小さいオーディオビデオデータパケットを記憶することに用いることができ、且つ
図7に示された優先度キューのキューテールノードは、収集タイムスタンプが比較的大きいオーディオビデオデータパケットを記憶することに用いることができる。キューヘッド、キューテールノード、及びその他のいくつかの中間ノードは、いずれもクラウドサーバのクラウドメモリ中に記憶される。
【0122】
ここで、キューから出るときに、メディア転送モジュールは、pacingスレッドを通じて、双方向リンクにより指示されたルート、たとえば、タイムスタンプの昇順のルートに基づいて、後方にキューヘッドノードの指針を移動させることができる。
【0123】
本実施例では、クラウドサーバ側のメディア転送モジュールにおいて優先度キュー+スムーズ取得スレッドを採用するため、視聴者端末にオーディオビデオ再生を行う流暢性を向上させる。
【0124】
いくつかの実施例では、ライブ配信データストリームを、ライブ配信サーバを通じて、クラウドゲームクライアントに関連付けられたライブ配信クライアントに配信するステップの後に、該方法は、さらに、ライブ配信データストリームの最大オーディオ収集タイムスタンプを決定するステップと、もしスムーズ取得スレッドを通じて、送信対象オーディオデータパケットのオーディオ収集タイムスタンプが最大オーディオ収集タイムスタンプよりも小さいと記録されていれば、送信対象オーディオデータパケットを廃棄するステップであって、送信対象オーディオデータパケットとは、ライブ配信サーバに送信対象の次のオーディオデータパケットを指す、ステップと、を含む。
【0125】
ここで、クラウドサーバは、ライブ配信データストリーム中から最大オーディオ収集タイムスタンプを有するオーディオデータパケットを補助オーディオデータパケットとして取得することができる。
【0126】
本実施例では、もしスムーズ取得スレッドを通じて、送信対象オーディオデータパケットのオーディオ収集タイムスタンプが最大オーディオ収集タイムスタンプよりも小さいと記録されていれば、送信対象オーディオデータパケットを廃棄し、それによりネットワークジッターによる順序ずれ問題を減少させ、オーディオとビデオの同期再生の流暢性を向上させることができる。
【0127】
いくつかの実施例では、ライブ配信データストリームを、ライブ配信サーバを通じて、クラウドゲームクライアントに関連付けられたライブ配信クライアントに配信するステップの後に、該方法は、さらに、ライブ配信データストリームの最大画像収集タイムスタンプを決定するステップと、もしスムーズ取得スレッドを通じて、送信対象ビデオデータパケットのビデオ収集タイムスタンプが最大ビデオ収集タイムスタンプよりも小さいと記録されていれば、送信対象ビデオデータパケットを廃棄するステップであって、送信対象ビデオデータパケットとは、ライブ配信サーバに送信対象の次のビデオデータパケットを指す、ステップと、を含む。
【0128】
ここで、クラウドサーバは、ライブ配信データストリーム中から最大画像収集タイムスタンプを有するビデオデータパケットを補助ビデオデータパケットとして取得することができる。
【0129】
本実施例では、もしスムーズ取得スレッドを通じて、送信対象ビデオデータパケットのビデオ収集タイムスタンプが最大ビデオ収集タイムスタンプよりも小さいと記録されていれば、送信対象ビデオデータパケットを廃棄し、それにより、ネットワークジッターによる順序ずれ問題を減少させ、オーディオとビデオの同期再生の流暢性を向上させることができる。
【0130】
図8は、本願実施例により提供されるゲームデータの処理方法のプロセス模式図である。
図8に示すように、該コンピュータ機器は、上記
図3に対応する実施例におけるクラウドサーバであってもよい。ここで、該方法は、少なくとも以下のステップS201~ステップS210を含むことができる。
【0131】
ステップS201:クラウドゲームクライアントがターゲットクラウドゲームに対して送信したゲームアクセス要求を取得したときに、ゲームアクセス要求に基づいてクラウドゲームクライアントに対応するゲーム開始識別子に対して権限認証処理を行って、ゲーム開始識別子に対応する権限認証結果を得る。
【0132】
ステップS202:もし権限認証結果が、クラウドゲームクライアントがゲーム開始識別子を通じてターゲットクラウドゲームにアクセスする権限を有することを指示していれば、クラウドサーバとクラウドゲームクライアントとの間のゲームサービス接続を確立し、且つゲームサービス接続に基づいてクラウドゲームクライアントが所属するクライアント環境システムのためにターゲットクラウドゲームを動作させることに用いられるクラウド仮想容器を設ける。
【0133】
ステップS203:クラウド仮想容器においてターゲットクラウドゲームのゲーム進行プログラムを開始し、ゲーム進行プログラムを通じてターゲットクラウドゲームを動作させる。
【0134】
ステップS204:クラウドゲームクライアントから送信された、ターゲットクラウドゲームに対するクラウドゲームライブ配信要求を受信し、クラウドゲームライブ配信要求に基づいて、クラウドサーバと、クラウドゲームクライアントに関連付けられたライブ配信サーバとの間のライブ配信サービス接続を確立する。
【0135】
具体的には、クラウドサーバは、クラウドゲームクライアントから送信された、ターゲットクラウドゲームに対するクラウドゲームライブ配信要求を受信することができる。ここで、クラウドゲームライブ配信要求は、クラウドゲームクライアントがライブ配信者対象によりライブ配信指示コントロールに対して実行されたトリガー操作に応答して生成され、クラウドサーバは、クラウドゲームライブ配信要求に含まれているゲーム開始識別子に基づいて、クラウドゲームクライアントに関連付けられたライブ配信サーバにライブ配信認証要求を送信することができる。ライブ配信サーバは、ライブ配信認証要求に基づいて、クラウドゲームクライアントのためにターゲットクラウドゲームをライブ配信することに用いられるライブ配信ストリームプッシュアドレスを設定する。クラウドサーバは、ライブ配信サーバから返されたライブ配信ストリームプッシュアドレスを受信し、ライブ配信ストリームプッシュアドレスをクラウドゲームクライアントに返すときに、クラウドサーバとライブ配信サーバとの間のライブ配信サービス接続を確立することをトリガーすることができる。
【0136】
ステップS205:ライブ配信サービス接続に基づいてターゲットクラウドゲームのゲーム画像データ、及びゲームオーディオデータを取得し、ゲーム画像データに対応する画像収集タイムスタンプと、ゲームオーディオデータに対応するオーディオ収集タイムスタンプとを記録する。
【0137】
ここで、画像収集タイムスタンプとオーディオ収集タイムスタンプとは、同一の参照系におけるタイムスタンプである。
【0138】
ステップS206:クラウドゲームクライアントから送信されたライブ配信者対象の処理対象オーディオデータを取得したときに、ゲームオーディオデータ、及び処理対象オーディオデータに対して音声ミキシング処理を行って、音声ミキシングオーディオデータを得る。
【0139】
ここで、音声ミキシングオーディオデータに対応する音声ミキシングタイムスタンプは、オーディオ収集タイムスタンプと一致するように保持される。
【0140】
ステップS207:音声ミキシングオーディオデータ、オーディオ収集タイムスタンプ、ゲーム画像データ、及び画像収集タイムスタンプに基づいて、ターゲットクラウドゲームに対応するライブ配信データストリームを得て、ライブ配信データストリームを、ライブ配信サーバを通じて、クラウドゲームクライアントに関連付けられたライブ配信クライアントに配信することで、ライブ配信クライアントにライブ配信データストリームにおけるオーディオ収集タイムスタンプと画像収集タイムスタンプとに基づいて、音声ミキシングオーディオデータとゲーム画像データとに対して同期再生を行わせる。
【0141】
ステップS208:ライブ配信データストリームにおいて最大オーディオ収集タイムスタンプを有するオーディオデータパケットを補助オーディオデータパケットとして取得し、且つライブ配信データストリームにおいて最大画像収集タイムスタンプを有するビデオデータパケットを補助ビデオデータパケットとして取得する。
【0142】
ステップS209:もしスムーズ取得スレッドを通じて、ライブ配信サーバに送信対象の次のオーディオデータパケットのオーディオ収集タイムスタンプが既に送信された補助オーディオデータパケットの最大オーディオ収集タイムスタンプよりも小さいと記録されていれば、ライブ配信サーバに送信対象の次のオーディオデータパケットを廃棄する。
【0143】
ステップS210:もしスムーズ取得スレッドを通じて、ライブ配信サーバに送信対象の次のビデオデータパケットのビデオ収集タイムスタンプが既に送信された補助ビデオデータパケットの最大ビデオ収集タイムスタンプよりも小さいと記録されていれば、ライブ配信サーバに送信対象の次のビデオデータパケットを廃棄する。
【0144】
本願実施例では、クラウドサーバは、さらに、上記ステップS207を実行した後に、上記ステップS208~ステップS210を継続して実行することができ、さらにネットワークジッターによる順序ずれ問題を減少させ、オーディオとビデオの同期再生の流暢性を向上させることができる。
【0145】
クラウドサーバ内部でマルチメディアデータ伝送を行う過程において、複数のクラウドサービスモジュールを経ることになる、それぞれのクラウドサービスモジュールの処理速度は異なる。たとえば、それぞれのクラウドサービスモジュールの、オーディオデータとビデオデータ等のマルチメディアデータを処理することにそれぞれ用いられるときの速度が異なる可能性があるため、それにより、マルチメディアデータの伝送過程において、パケット損失、到着順序ずれ、伝送輻輳の問題が存在する可能性があることを引き起こす。これに基づいて、もしクラウドサーバにおけるメディア転送モジュールは、その他のクラウドサービスモジュールから送信されたライブ配信データストリームを受信した後に、該受信されたライブ配信データストリームをライブ配信サーバに直接プッシュすれば、ライブ配信クライアントが所属する視聴者端末のフリーズを必ずもたらすことになる。
【0146】
図9は、メディア転送モジュールを通じて、受信されたオーディオフレームとビデオフレームとに対してスムーズ処理を行うシーン模式図である。
図9に示すように、メディア転送モジュールは、その他のクラウドサービスモジュール(すなわち、上記メディア伝送モジュール)により転送された音声ミキシング処理済みのオーディオデータストリームと、第2エンコードスレッドによりエンコードすることにより得られたビデオデータストリームとを受信することに用いることができる。具体的には、曲線91aは、メディア転送モジュールにより受信された、音声ミキシング処理済みのオーディオデータストリームにおけるオーディオフレームの受信フレームレートを特徴づけることに用いることができ、たとえば、オーディオフレームの受信フレームレートは、第2収集時間インターバルにより指示された第2フレームレートであってもよく、たとえば、100フレーム/sである。同様に、曲線92aは、メディア転送モジュールにより受信された、第2エンコードスレッドによりエンコードすることにより得られたビデオデータストリームにおけるビデオフレームの受信フレームレートを特徴づけることに用いることができ、たとえば、ビデオフレームの受信フレームレートは、第1収集時間インターバルにより指示された第1フレームレートであってもよく、たとえば、30フレーム/sである。
【0147】
図9に示すように、視聴者端末にオーディオビデオ再生を行うプロセス性を向上させるために、本願実施例では、クラウドサーバ側に優先度キュー+スムーズ取得スレッドの構想を使用してこの問題を改善することを提案する。すなわち、クラウドサーバにおけるメディア転送モジュールは、オーディオフレームとビデオフレームとを受信するときに、すぐに送信する必要がなく、受信されたオーディオフレームとビデオフレームとを優先度キュー中まで一時的に保存する。優先度キューは、オーディオフレームを記憶することに用いられるオーディオキャッシュキューと、ビデオフレームを記憶することに用いられるビデオキャッシュキューと、を含むことができ、他のpacingスレッドは、固定間隔内で優先度キュー中からオーディオビデオパケットを取得しようとして、固定間隔内で取得した、対応する収集タイムスタンプを有するオーディオビデオパケットを、ライブ配信サーバにスムーズに送信することができる。
【0148】
具体的には、曲線91bは、メディア転送モジュールが収集端と同じ収集時間インターバルに応じて、優先度キューから取得しようとするオーディオパケットの送信フレームレートを特徴づけることに用いることができる。たとえば、送信対象オーディオフレームの送信フレームレートは、第2収集時間インターバルにより指示された第2フレームレートであってもよい。曲線92bは、メディア転送モジュールが収集端と同じ収集時間インターバルに応じて、優先度キュー中から取得しようとするビデオパケットの送信フレームレートを特徴づけることに用いることができる。たとえば、このとき、送信対象ビデオフレームの送信フレームレートは、上記第1収集時間インターバルにより指示された第1フレームレートであってもよい。これから分かるように、
図9に示されたメディア転送モジュールにとっては、優先度キュー+スムーズ取得スレッド戦略で、受信されたオーディオビデオストリームに対してスムーズ処理を行った後に、受信された、ジッターが存在するオーディオビデオフレームの曲線に対してスムーズ処理を行うことができ、さらにクラウドゲームライブ配信シーンにおいて、視聴者端末にオーディオビデオを再生する安定性、及び流暢性を向上させることができる。
【0149】
通常の状況において、キャッシュ期間内に、現在優先度キューにプッシュされたオーディオビデオパケットのタイムスタンプが、その前に優先度キューにプッシュされたオーディオビデオパケットのタイムスタンプよりも大きい確率が高いが、たまに伝送ジッターによる所定の順序ずれ問題、たとえば、現在優先度キューにプッシュされたオーディオビデオパケットのタイムスタンプが、その前に優先度キューにプッシュされたオーディオビデオパケットのタイムスタンプよりも小さいという現象を排除するものではない。
【0150】
これに基づいて、上記優先度キューが最新の期間のフレームデータ、たとえば、1~2秒のキャッシュ期間内のフレームデータをキャッシュすることに用いることができることを考慮するため、もしクラウドサーバ内部の間の各モジュールがネットワーク伝送問題等で順序ずれジッターが発生し、且つ順序ずれジッターのジッター期間が優先度キューのキャッシュ期間を超えれば、pacingスレッドにより記録された最後のオーディオビデオパケットのタイムスタンプを通じて次回収集されるオーディオビデオパケットを廃棄する必要があるかどうかを迅速に判断することができる。
【0151】
たとえば、本願実施例により開示されているクラウドサーバは、pacingスレッドを通じて優先度キュー中から1つ又は複数のオーディオビデオパケットを取得し、かつライブ配信サーバに取得したそれぞれのオーディオビデオパケットを送信した後に、送信されたそれらのオーディオビデオパケットのうちの最後のオーディオパケットのタイムスタンプとビデオパケットのタイムスタンプとを記録する。このように、もしpacingスレッドを通じて現在優先度キュー中から取得した次のオーディオビデオパケットのタイムスタンプが、前のオーディオビデオパケットのタイムスタンプ(すなわち、上記記録された最後のオーディオパケットのタイムスタンプ、及びビデオパケットのタイムスタンプ)よりも小さければ、現在取得した次のオーディオビデオパケットのタイムスタンプを廃棄することができる。
【0152】
本願実施例では、クラウドゲームライブ配信シーンにおいて、クラウドゲームクライアントがライブ配信サーバにライブ配信データストリームを直接プッシュするのではなく、該クラウドサーバを通じてライブ配信サーバにライブ配信データストリームのプッシュを行うことを考慮するため、クラウドサーバの強い計算能力を利用し、クラウドゲームクライアント側に対する性能消耗を根本的に低減させることができる。また、クラウドサーバ側でオーディオ収集タイムスタンプと画像収集タイムスタンプとに基づいてオーディオビデオの同期を行うことを通じて、ライブ配信ストリームプッシュ過程においてジッター、順序ずれ等に起因するオーディオビデオの同期ずれ現象を解決することができるだけでなく、マルチチャンネル音声ミキシングの同期、及びフリーズ問題を実現することができ、さらにオーディオとビデオの同期の信頼性を実現することができる。このように、ライブ配信クライアントにおいてライブ配信データストリームにおけるオーディオ収集タイムスタンプと画像収集タイムスタンプとに基づいて、音声ミキシングオーディオデータとゲーム画像データとに対して同期再生を行うときに、音声ミキシング後のオーディオビデオの同期再生効果を向上させることができる。
【0153】
さらに、
図10に参照されるように、
図10は、本願実施例により提供されるゲームデータ処理装置の構造模式図である。ゲームデータ処理装置1は、コンピュータ機器に応用することができ、該コンピュータ機器は、上記
図2に対応する実施例におけるクラウドサーバBであってもよい。さらに、ゲームデータ処理装置1は、ライブ配信要求受信モジュール10と、データ取得モジュール20と、音声ミキシング処理モジュール30と、ライブ配信ストリーム配信モジュール40と、を含むことができる。選択可能に、ライブ配信要求受信モジュール10は、クラウドゲームクライアントから送信された、ターゲットクラウドゲームに対するクラウドゲームライブ配信要求を受信する前に、ゲームデータ処理装置1は、さらに、アクセス要求取得モジュール50と、ゲームサービス確立モジュール60と、クラウドゲーム動作モジュール70と、を含む。
【0154】
ライブ配信要求受信モジュール10は、クラウドゲームクライアントから送信された、ターゲットクラウドゲームに対するクラウドゲームライブ配信要求を受信し、クラウドゲームライブ配信要求に基づいて、クラウドサーバと、クラウドゲームクライアントに関連付けられたライブ配信サーバとの間のライブ配信サービス接続を確立することに用いられる。
【0155】
データ取得モジュール20は、ライブ配信サービス接続に基づいてターゲットクラウドゲームのゲーム画像データ、及びゲームオーディオデータを取得し、ゲーム画像データに対応する画像収集タイムスタンプと、ゲームオーディオデータに対応するオーディオ収集タイムスタンプとを記録することに用いられ、画像収集タイムスタンプとオーディオ収集タイムスタンプとは、同一の参照系におけるタイムスタンプである。
【0156】
音声ミキシング処理モジュール30は、クラウドゲームクライアントから送信されたライブ配信者対象の処理対象オーディオデータを取得したときに、ゲームオーディオデータ、及び処理対象オーディオデータに対して音声ミキシング処理を行って、音声ミキシングオーディオデータを得ることに用いられ、音声ミキシングオーディオデータに対応する音声ミキシングタイムスタンプは、オーディオ収集タイムスタンプと一致するように保持される。
【0157】
ライブ配信ストリーム配信モジュール40は、音声ミキシングオーディオデータ、オーディオ収集タイムスタンプ、ゲーム画像データ、及び画像収集タイムスタンプに基づいて、ターゲットクラウドゲームに対応するライブ配信データストリームを得て、ライブ配信データストリームを、ライブ配信サーバを通じて、クラウドゲームクライアントに関連付けられたライブ配信クライアントに配信することに用いられる。
【0158】
いくつかの実施例では、該装置は、さらに、
クラウドゲームクライアントがターゲットクラウドゲームに対して送信したゲームアクセス要求を取得したときに、ゲームアクセス要求に基づいてクラウドゲームクライアントに対応するゲーム開始識別子に対して権限認証処理を行って、ゲーム開始識別子に対応する権限認証結果を得ることに用いられるアクセス要求取得モジュール50であって、ゲームアクセス要求にはクラウドゲームクライアントが所属するクライアント環境システムが含まれている、アクセス要求取得モジュール50と、
もし権限認証結果が、クラウドゲームクライアントがゲーム開始識別子を通じてターゲットクラウドゲームにアクセスする権限を有することを指示していれば、クラウドサーバとクラウドゲームクライアントとの間のゲームサービス接続を確立し、且つゲームサービス接続に基づいてクラウドゲームクライアントが所属するクライアント環境システムのためにターゲットクラウドゲームを動作させることに用いられるクラウド仮想容器を設けることに用いられるゲームサービス確立モジュール60と、
クラウド仮想容器においてターゲットクラウドゲームのゲーム進行プログラムを開始し、ゲーム進行プログラムを通じてターゲットクラウドゲームを動作させることに用いられるクラウドゲーム動作モジュール70と、を含む。
【0159】
いくつかの実施例では、クラウドゲームクライアントに対応するゲーム表示インタフェース上にライブ配信者対象がクラウドゲームライブ配信を行うように指示することに用いられるライブ配信指示コントロールを含み、ライブ配信要求受信モジュール10は、ライブ配信要求受信ユニット101と、認証要求受信ユニット102と、サービス接続確立ユニット103と、を含み、
ライブ配信要求受信ユニット101は、クラウドゲームクライアントから送信された、ターゲットクラウドゲームに対するクラウドゲームライブ配信要求を受信することに用いられ、クラウドゲームライブ配信要求は、クラウドゲームクライアントがライブ配信者対象によりライブ配信指示コントロールに対して実行されたトリガー操作に応答して生成される。
【0160】
いくつかの実施例では、ライブ配信要求受信モジュール10は、認証要求受信ユニット102と、サービス接続確立ユニット103と、を含み、クラウドゲームライブ配信要求には、上記ゲーム開始識別子が含まれており、
認証要求受信ユニット102は、ゲーム開始識別子に基づいてクラウドゲームクライアントに関連付けられたライブ配信サーバにライブ配信認証要求を送信することで、ライブ配信サーバに、ライブ配信認証要求に基づいてクラウドゲームクライアントのためにターゲットクラウドゲームをライブ配信することに用いられるライブ配信ストリームプッシュアドレスを設定させることに用いられる。
【0161】
サービス接続確立ユニット103は、ライブ配信サーバから返されたライブ配信ストリームプッシュアドレスを受信し、ライブ配信ストリームプッシュアドレスをクラウドゲームクライアントに返すときに、クラウドサーバとライブ配信サーバとの間のライブ配信サービス接続を確立することをトリガーすることに用いられる。
【0162】
いくつかの実施例では、ターゲットクラウドゲームは、クラウド仮想容器におけるゲーム進行プログラムにより動作し、クラウド仮想容器は、クラウドサーバによりクラウドゲームクライアントが所属するクライアント環境システムのために設けられ、データ取得モジュール20は、エンコード進行プログラム開始ユニット201と、データキャプチャーユニット202と、画像データ収集ユニット203と、オーディオデータ収集ユニット204と、を含む。
【0163】
エンコード進行プログラム開始ユニット201は、ライブ配信サービス接続に基づいてクラウド仮想容器においてゲーム進行プログラムに関連付けられたメディアエンコード進行プログラムを開始することに用いられる。
【0164】
データキャプチャーユニット202は、メディアエンコード進行プログラムにより指示されたデータ収集アセンブリを通じて、ターゲットクラウドゲームに関連付けられた背景オーディオフレームデータとゲームビデオフレームデータとをキャプチャーし、キャプチャーされた背景オーディオフレームデータとゲームビデオフレームデータとを、データ収集アセンブリに関連付けられたクラウドキャッシュ空間に保存することに用いられ、クラウドキャッシュ空間は、クラウド仮想容器から独立したクラウドメモリである。
【0165】
画像データ収集ユニット203は、メディアエンコード進行プログラムにより指示されたタイマーを通じて、クラウドメモリにより記憶されたゲームビデオフレームデータ中から、第1収集時間インターバルにより指示された第1フレームレートとマッチングする画像フレームを収集し、収集された画像フレームをターゲットクラウドゲームのゲーム画像データとして、かつタイマーにより指示された参照系において、ゲーム画像データに対応する画像収集タイムスタンプを記録することに用いられる。
【0166】
オーディオデータ収集ユニット204は、タイマーを通じて、クラウドメモリにより記憶された背景オーディオフレームデータ中から、第2収集時間インターバルにより指示された第2フレームレートとマッチングするオーディオフレームを収集し、収集されたオーディオフレームをターゲットクラウドゲームのゲームオーディオデータとして、かつタイマーにより指示された同一の参照系において、ゲームオーディオデータに対応するオーディオ収集タイムスタンプを記録することに用いられ、第2収集時間インターバルの記録は、第1収集時間インターバルよりも小さく、且つ第2フレームレートは、第1フレームレートよりも大きい。
【0167】
いくつかの実施例では、データ取得モジュール20は、さらに、第1エンコードスレッド動作ユニット205と、第1オーディオエンコードユニット206と、第1ビデオエンコードユニット207と、ゲームストリーム返しユニット208と、第2エンコードスレッド動作ユニット209と、第2オーディオエンコードユニット210と、第2ビデオエンコードユニット211と、エンコードストリーム転送ユニット212と、を含み、
第1エンコードスレッド動作ユニット205は、クラウド仮想容器においてメディアエンコード進行プログラムに関連付けられた第1エンコードスレッドを動作させることに用いられる。
【0168】
第1オーディオエンコードユニット206は、第1エンコードスレッドにより指示されたクラウドゲームエンコード標準を取得し、クラウドゲームエンコード標準を通じてキャプチャーされた背景オーディオフレームデータに対してオーディオエンコードを行って、ターゲットクラウドゲームの第1オーディオエンコードストリームを得ることに用いられる。
【0169】
第1ビデオエンコードユニット207は、クラウドゲームエンコード標準を通じてキャプチャーされたゲームビデオフレームデータに対してビデオエンコードを行って、ターゲットクラウドゲームの第1ビデオエンコードストリームを得ることに用いられる。
【0170】
ゲームストリーム返しユニット208は、第1オーディオエンコードストリームと第1ビデオエンコードストリームとをターゲットクラウドゲームのゲームエンコードストリームとして、ゲームエンコードストリームをクラウドゲームクライアントに返すことで、クラウドゲームクライアントにゲームエンコードストリームに対してデコード処理を行わせて、クラウドゲームクライアントにおいて同期再生を行うことに用いられる背景オーディオフレームデータとゲームビデオフレームデータとを得ることに用いられる。
【0171】
いくつかの実施例では、データ取得モジュール20は、さらに、第2エンコードスレッド動作ユニット209と、第2オーディオエンコードユニット210と、第2ビデオエンコードユニット211と、エンコードストリーム転送ユニット212と、を含み、クラウドサーバは、ゲーム進行プログラム、メディアエンコード進行プログラム、及びメディア伝送進行プログラムを動作させることに用いられ、メディア伝送進行プログラムは、クラウド仮想容器から独立した補助仮想容器において動作し、
第2エンコードスレッド動作ユニット209は、クラウド仮想容器においてメディアエンコード進行プログラムに関連付けられた第2エンコードスレッドを動作させることに用いられる。
【0172】
第2オーディオエンコードユニット210は、第2エンコードスレッドにより指示されたクラウドライブ配信エンコード標準を取得し、クラウドライブ配信エンコード標準を通じて第2フレームレートに関連付けられたゲームオーディオデータに対してオーディオエンコードを行って、ターゲットクラウドゲームの第2オーディオエンコードストリームを得ることに用いられる。
【0173】
第2ビデオエンコードユニット211は、クラウドライブ配信エンコード標準を通じて第1フレームレートに関連付けられたゲーム画像データに対してビデオエンコードを行って、ターゲットクラウドゲームの第2ビデオエンコードストリームを得ることに用いられる。
【0174】
エンコードストリーム転送ユニット212は、第2オーディオエンコードストリームと第2ビデオエンコードストリームとをターゲットクラウドゲームの処理対象エンコードストリームとして、処理対象エンコードストリームをメディア伝送進行プログラムに転送することで、処理対象エンコードストリームに基づいて補助クラウド仮想容器においてクラウドゲームクライアントから送信されたライブ配信者対象の処理対象オーディオデータを取得したときに、ゲームオーディオデータ、及び処理対象オーディオデータに対して音声ミキシング処理を行って、音声ミキシングオーディオデータを得るステップを実行する旨をメディア伝送進行プログラムが音声ミキシング処理モジュール30に通知するようにすることに用いられる。
【0175】
いくつかの実施例では、音声ミキシング処理モジュール30は、オーディオデコードユニット301と、参照オーディオフレーム取得ユニット302と、音声ミキシング処理ユニット303と、を含む。
【0176】
オーディオデコードユニット301は、クラウドゲームクライアントから送信されたライブ配信者対象の処理対象オーディオデータを取得したときに、処理対象オーディオデータに対してデコード処理を行って、ライブ配信者対象の処理対象オーディオフレーム、及び処理対象オーディオフレームの録画タイムスタンプを得ることに用いられる。
【0177】
参照オーディオフレーム取得ユニット302は、ゲームオーディオデータに対応する第2収集時間インターバルに基づいて、ゲームオーディオデータにおけるオーディオフレームを取得し、取得したオーディオフレームを参照オーディオフレームとして、且つゲームオーディオデータに対応する収集オーディオタイムスタンプに基づき、参照オーディオフレームの音声ミキシングタイムスタンプを決定することに用いられる。
【0178】
音声ミキシング処理ユニット303は、音声ミキシングタイムスタンプに基づいて録画タイムスタンプを調整し、調整後の録画タイムスタンプに基づいて参照オーディオフレームと処理対象オーディオフレームとに対して音声ミキシング処理を行って、収集タイムスタンプと一致するように保持される音声ミキシングタイムスタンプに対応する音声ミキシングオーディオフレームを得て、得た音声ミキシングオーディオフレームと音声ミキシングオーディオフレームに対応する音声ミキシングタイムスタンプとをターゲットクラウドゲームの音声ミキシングオーディオデータとすることに用いられる。
【0179】
いくつかの実施例では、音声ミキシング処理モジュール30は、さらに、オーディオフレーム統計ユニット304と、音量調整ユニット305と、を含む。
【0180】
オーディオフレーム統計ユニット304は、取得したオーディオフレームのフレーム数を統計処理することに用いられ、もしオーディオフレームのフレーム数がMフレームであれば、Mは、ゼロ以外の正の整数であり、且つMは、音声ミキシング処理を行うべき回数を特徴づけることに用いられる。
【0181】
音量調整ユニット305は、音声ミキシング処理を行うべき回数に基づいて、音声ミキシングタイムスタンプに基づいて録画タイムスタンプを調整し、調整後の録画タイムスタンプに基づいて参照オーディオフレームと処理対象オーディオフレームとに対して音声ミキシング処理を行うステップを実行するときに、処理対象オーディオフレームの音量に対して強化処理を行い、且つ参照オーディオフレームの音量に対して弱化処理を行うことに用いられる。
【0182】
いくつかの実施例では、音声ミキシング処理モジュール30は、さらに、空値検出ユニット306を含む。
【0183】
空値検出ユニット306は、もしオーディオフレームのフレーム数が空値であるか、又は処理対象オーディオフレームのフレーム数が空値であれば、参照オーディオフレームと処理対象オーディオフレームとに対して音声ミキシング処理を行わないことに用いられる。
【0184】
いくつかの実施例では、クラウドサーバは、クラウドゲームライブ配信要求に基づいて開始したメディア転送進行プログラムを含み、メディア転送進行プログラムは、クラウドサーバとライブ配信サーバとの間のライブ配信サービス接続を保持することに用いられ、ライブ配信ストリーム配信モジュール40は、オーディオソート処理ユニット401と、画像ソート処理ユニット402と、データパケット取得ユニット403と、パッケージ配信ユニット404と、を含む。
【0185】
オーディオソート処理ユニット401は、音声ミキシングオーディオデータを取得し、音声ミキシングオーディオデータ中から音声ミキシングオーディオフレームと、音声ミキシングオーディオフレームに対応するオーディオ収集タイムスタンプとを取得し、オーディオ収集タイムスタンプに基づいて音声ミキシングオーディオフレームに対してソート処理を行い、ソート処理済みの音声ミキシングオーディオフレームをメディア転送進行プログラムに関連付けられたオーディオキャッシュキューに書込むことに用いられる。
【0186】
画像ソート処理ユニット402は、ゲーム画像データを取得し、ゲーム画像データ中から画像フレームと、画像フレームに対応する画像収集タイムスタンプとを取得し、画像収集タイムスタンプに基づいて画像フレームに対してソート処理を行い、ソート処理済みの画像フレームをメディア転送進行プログラムに関連付けられたビデオキャッシュキューに書込むことに用いられる。
【0187】
データパケット取得ユニット403は、メディア転送進行プログラムに関連付けられたスムーズ取得スレッドを取得し、スムーズ取得スレッドを通じてビデオキャッシュキュー中から第1収集時間インターバルにより指示された第1フレームレートとマッチングするビデオデータパケットを取得し、かつスムーズ取得スレッドを通じてオーディオキャッシュキュー中から第2収集時間インターバルにより指示された第2フレームレートとマッチングするオーディオデータパケットを取得することに用いられる。
【0188】
パッケージ配信ユニット404は、ビデオデータパケットとオーディオデータパケットとに対してパッケージ処理を行い、ターゲットクラウドゲームに対応するライブ配信データストリームを得て、ライブ配信データストリームを、ライブ配信サーバを通じて、クラウドゲームクライアントに関連付けられたライブ配信クライアントに配信することに用いられる。
【0189】
いくつかの実施例では、データパケット取得ユニット403は、インターバル取得サブユニット4031と、ビデオフレーム取得サブユニット4032と、オーディオフレーム取得サブユニット4033と、を含む。
【0190】
インターバル取得サブユニット4031は、メディア転送進行プログラムに関連付けられたスムーズ取得スレッドを取得し、且つスムーズ取得スレッドと同じ収集時間インターバルを有するデータ収集アセンブリを取得し、データ収集アセンブリの収集時間インターバルに基づいてゲーム画像データに関連付けられた第1収集時間インターバルと、ゲームオーディオデータに関連付けられた第2収集時間インターバルとを決定することに用いられる。
【0191】
ビデオフレーム取得サブユニット4032は、スムーズ取得スレッドを通じて第1収集時間インターバルとマッチングするスムーズビデオ取得タイムスタンプを決定し、ビデオキャッシュキュー中から画像収集タイムスタンプがスムーズビデオ取得タイムスタンプよりも小さい、キャッシュされたビデオフレームを取得し、取得した、キャッシュされたビデオフレームと、キャッシュされたビデオフレームに対応する画像収集タイムスタンプとに対してカプセル化処理を行って、第1収集時間インターバルにより指示された第1フレームレートとマッチングするビデオデータパケットを得ることに用いられる。
【0192】
オーディオフレーム取得サブユニット4033は、スムーズ取得スレッドを通じて第2収集時間インターバルとマッチングするスムーズオーディオ取得タイムスタンプを決定し、ビデオキャッシュキュー中からオーディオ収集タイムスタンプがスムーズオーディオ取得タイムスタンプよりも小さい、キャッシュされたオーディオフレームを取得し、取得した、キャッシュされたオーディオフレームと、キャッシュされたオーディオフレームに対応するオーディオ収集タイムスタンプとに対してカプセル化処理を行って、第2収集時間インターバルにより指示された第2フレームレートとマッチングするオーディオデータパケットを得ることに用いられる。
【0193】
いくつかの実施例では、ライブ配信ストリーム配信モジュール40は、さらに、補助パケット取得ユニット405と、オーディオパケット廃棄ユニット406と、ビデオパケット廃棄ユニット407と、を含む。
【0194】
ライブ配信ストリーム配信モジュール40は、ライブ配信データストリームを、ライブ配信サーバを通じて、クラウドゲームクライアントに関連付けられたライブ配信クライアントに配信した後に、補助パケット取得ユニット405は、ライブ配信データストリームの最大オーディオ収集タイムスタンプを決定することに用いられる。
【0195】
オーディオパケット廃棄ユニット406は、もしスムーズ取得スレッドを通じて、送信対象オーディオデータパケットのオーディオ収集タイムスタンプが最大オーディオ収集タイムスタンプよりも小さいと記録されていれば、送信対象オーディオデータパケットを廃棄することに用いられ、送信対象オーディオデータパケットとは、ライブ配信サーバに送信対象の次のオーディオデータパケットを指す。
【0196】
いくつかの実施例では、ライブ配信ストリーム配信モジュール40は、さらにビデオパケット廃棄ユニット407を含む。ライブ配信ストリーム配信モジュール40は、ライブ配信データストリームを、ライブ配信サーバを通じて、クラウドゲームクライアントに関連付けられたライブ配信クライアントに配信した後に、補助パケット取得ユニット405は、さらに、ライブ配信データストリームの最大画像収集タイムスタンプを決定することに用いられ、
ビデオパケット廃棄ユニット407は、もしスムーズ取得スレッドを通じて、送信対象ビデオデータパケットのビデオ収集タイムスタンプが最大ビデオ収集タイムスタンプよりも小さいと記録されていれば、送信対象ビデオデータパケットを廃棄することに用いられ、送信対象ビデオデータパケットとは、ライブ配信サーバに送信対象の次のビデオデータパケットを指す。さらに、
図11に参照するように、
図11は、本願実施例により提供されるコンピュータ機器の構造模式図である。
図11に示すように、該コンピュータ機器1000は、クラウドサーバであってもよく、該クラウドサーバは、上記
図2に対応する実施例におけるクラウドサーバBであってもよい。該コンピュータ機器1000は、プロセッサ1001と、ネットワークインタフェース1004と、メモリ1005と、を含むことができ、また、コンピュータ機器1000は、さらに、ユーザーインタフェース1003と、少なくとも1つの通信バス1002と、を含むことができる。ここで、通信バス1002は、それらのアセンブリの間の接続通信を実現することに用いられる。ここで、選択可能に、ユーザーインタフェース1003は、さらに標準な有線インタフェースと、無線インタフェースと、を含むことができる。ネットワークインタフェース1004は、選択可能に、標準な有線インタフェースと、無線インタフェース(たとえばWI-FIインタフェース)と、を含むことができる。メモリ1005は、高速RAMメモリであってもよく、不揮発性メモリ(non-volatile memory)、たとえば、少なくとも1つの磁気ディスクメモリであってもよい。メモリ1005は、選択可能に、さらに上記プロセッサ1001から離れる位置に位置する少なくとも1つの記憶装置であってもよい。
図11に示すように、1種のコンピュータ記憶媒体とするメモリ1005中には、オペレーティングシステムと、ネットワーク通信モジュールと、ユーザーインタフェースモジュールと、機器制御アプリケーションプログラムと、を含むことができる。
【0197】
ここで、コンピュータ機器1000におけるネットワークインタフェース1004は、さらに、上記
図1に対応する実施例におけるライブ配信者端末クラスターにおけるいずれかのライブ配信者端末とネットワーク接続を行うことができる。
図11に示されたコンピュータ機器1000において、ネットワークインタフェース1004は、ネットワーク通信機能を提供することができ、ユーザーインタフェース1003は、主にユーザー入力用のインタフェースを提供することに用いられ、プロセッサ1001は、メモリ1005中に記憶された機器制御アプリケーションプログラムを呼び出すことで、前述の
図3、又は
図8に対応する実施例におけるゲームデータ処理方法に対する記述を実行させ、さらに前述の
図10に対応する実施例におけるゲームデータ処理装置1に対する記述を実行させることに用いることができる。
【0198】
また、ここで指摘する必要がある点として、本願実施例は、さらに、コンピュータ記憶媒体を提供し、且つコンピュータ記憶媒体中には、前述で言及されたゲームデータ処理装置1により実行されたコンピュータ可読指令が記憶されており、且つコンピュータ可読指令は、プログラム指令を含み、プロセッサは、プログラム指令を実行するときに、前述の
図3、又は
図8に対応する実施例におけるゲームデータ処理方法に対する記述を実行することができる。例として、プログラム指令は、1つの計算機器上に実行されるか、又は1つの場所に位置する複数の計算機器上に実行されるか、あるいは、複数の場所に分布し且つ通信ネットワークを通じて互いに接続する複数の計算機器上に実行されるように配備されてもよく、複数の場所に分布し且つ通信ネットワークを通じて互いに接続する複数の計算機器は、ブロックチェーンシステムを構成することができる。
【0199】
コンピュータ機器は、メモリと、1つ又は複数のプロセッサと、を含み、上記メモリには、コンピュータ可読指令が記憶されており、上記コンピュータ可読指令は、上記プロセッサに実行されるときに、上記1つ又は複数のプロセッサに上記ゲーミングデータ処理方法のステップを実行させる。
【0200】
1つ又は複数の不揮発性可読記憶媒体であって、それには、コンピュータ可読指令が記憶されており、上記コンピュータ可読指令は、1つ又は複数のプロセッサに実行されるときに、上記1つ又は複数のプロセッサに上記ゲーミングデータ処理方法のステップを実現させる。
【0201】
いくつかの実施例では、さらに、コンピュータプログラム製品を提供し、コンピュータ可読指令を含み、コンピュータ可読指令は、プロセッサに実行されるときに、上記各方法実施例におけるステップを実現する。コンピュータ機器のプロセッサは、コンピュータ可読記憶媒体から該コンピュータ指令を読み取り、プロセッサは、該コンピュータ指令を実行することで、該コンピュータ機器に前述の
図3、又は
図8に対応する実施例におけるゲームデータ処理方法に対する記述を実行させることができる。
【0202】
当業者が理解できるように、上記実施例方法におけるプロセスの全部、又は一部の実現は、コンピュータ可読指令を通じて関連するハードウェアが完了するように指令することができ、プログラムは、コンピュータリーダブル記憶媒体中に記憶することができ、該プログラムは、実行するときに、上記各方法実施例のプロセスを含むことができる。ここで、記憶媒体は、磁気ディスク、光ディスク、読み取り専用メモリ(Read-Only Memory、ROM)、又はランダムアクセスメモリ(Random Access Memory、RAM)等であってもよい。
【0203】
以上で提示されるのは、本願の好ましい実施例に過ぎず、これに基づいて本願の特許請求の範囲を限定することができず、従って、本願の請求項に基づき行った均等物への変更は、依然として本願がカバーする範囲に属する。
【符号の説明】
【0204】
1 ゲームデータ処理装置
10 ライブ配信要求受信モジュール
20 データ取得モジュール
21a クラウドゲームインスタンスモジュール
21b 受信メディアエンコードモジュール
21c メディア伝送モジュール
22a メディア転送モジュール
30 音声ミキシング処理モジュール
40 ライブ配信ストリーム配信モジュール
41a ゲーム端末
42a クラウドサーバ
50 アクセス要求取得モジュール
51a クラウドゲームインスタンス
51b メディアエンコード進行プログラム
51c メディア伝送進行プログラム
52a メディア転送進行プログラム
60 ゲームサービス確立モジュール
70 クラウドゲーム動作モジュール
100a オーディオビデオストリーム
100b オーディオビデオストリーム
101 ライブ配信要求受信ユニット
102 認証要求受信ユニット
103 サービス接続確立ユニット
201 エンコード進行プログラム開始ユニット
201a ライブ配信エッジサーバ
202 データキャプチャーユニット
202a ライブ配信元サーバ
203 画像データ収集ユニット
203a ライブ配信転送サーバ
204 オーディオデータ収集ユニット
205 第1エンコードスレッド動作ユニット
206 第1オーディオエンコードユニット
207 第1ビデオエンコードユニット
209 第2エンコードスレッド動作ユニット
210 第2オーディオエンコードユニット
211 第2ビデオエンコードユニット
212 エンコードストリーム転送ユニット
301 オーディオデコードユニット
302 参照オーディオフレーム取得ユニット
303 音声ミキシング処理ユニット
304 オーディオフレーム統計ユニット
305 音量調整ユニット
306 空値検出ユニット
【手続補正書】
【提出日】2023-11-15
【手続補正2】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピュータ機器により実行される、ゲームデータの処理方法であって、
クラウドゲームクライアントから送信された、ターゲットクラウドゲームに対するクラウドゲームライブ配信要求を受信し、前記クラウドゲームライブ配信要求に基づいて、クラウドサーバと、前記クラウドゲームクライアントに関連付けられたライブ配信サーバとの間のライブ配信サービス接続を確立するステップと、
前記ライブ配信サービス接続に基づいて前記ターゲットクラウドゲームのゲーム画像データ、及びゲームオーディオデータを取得し、前記ゲーム画像データに対応する画像収集タイムスタンプと、前記ゲームオーディオデータに対応するオーディオ収集タイムスタンプとを記録するステップであって、前記画像収集タイムスタンプと前記オーディオ収集タイムスタンプは、同一の参照系におけるタイムスタンプである、ステップと、
前記クラウドゲームクライアントから送信されたライブ配信者対象の処理対象オーディオデータを取得したときに、前記ゲームオーディオデータ、及び処理対象オーディオデータに対して音声ミキシング処理を行って、音声ミキシングオーディオデータを得るステップであって、前記音声ミキシングオーディオデータに対応する音声ミキシングタイムスタンプは、前記オーディオ収集タイムスタンプと一致するように保持される、ステップと、
前記音声ミキシングオーディオデータ、前記オーディオ収集タイムスタンプ、前記ゲーム画像データ、及び前記画像収集タイムスタンプに基づいて、前記ターゲットクラウドゲームに対応するライブ配信データストリームを得て、前記ライブ配信データストリームを、前記ライブ配信サーバを通じて、前記クラウドゲームクライアントに関連付けられたライブ配信クライアントに配信するステップと、を含む、ことを特徴とするゲームデータの処理方法。
【請求項2】
前記クラウドゲームクライアントから送信された、ターゲットクラウドゲームに対するクラウドゲームライブ配信要求を受信する前に、前記方法は、
クラウドゲームクライアントがターゲットクラウドゲームに対して送信したゲームアクセス要求を取得したときに、前記ゲームアクセス要求に基づいて前記クラウドゲームクライアントに対応するゲーム開始識別子に対して権限認証処理を行って、前記ゲーム開始識別子に対応する権限認証結果を得るステップであって、前記ゲームアクセス要求には、前記クラウドゲームクライアントが所属するクライアント環境システムを含まれている、ステップと、
もし前記権限認証結果が、前記クラウドゲームクライアントが前記ゲーム開始識別子を通じて前記ターゲットクラウドゲームにアクセスする権限を有することを指示していれば、前記クラウドサーバと前記クラウドゲームクライアントとの間のゲームサービス接続を確立し、且つ前記ゲームサービス接続に基づいて前記クラウドゲームクライアントが所属するクライアント環境システムのために、前記ターゲットクラウドゲームを動作させることに用いられるクラウド仮想容器を設けるステップと、
前記クラウド仮想容器において前記ターゲットクラウドゲームのゲーム進行プログラムを開始し、前記ゲーム進行プログラムを通じて前記ターゲットクラウドゲームを動作させるステップと、をさらに含む、ことを特徴とする請求項1に記載の方法。
【請求項3】
前記クラウドゲームクライアントに対応するゲーム表示インタフェース上には、前記ライブ配信者対象がクラウドゲームライブ配信を行うように指示することに用いられるライブ配信指示コントロールが含まれ、
クラウドゲームクライアントから送信された、ターゲットクラウドゲームに対するクラウドゲームライブ配信要求を受信し、前記クラウドゲームライブ配信要求に基づいて、クラウドサーバと、前記クラウドゲームクライアントに関連付けられたライブ配信サーバとの間のライブ配信サービス接続を確立するステップは、
クラウドゲームクライアントから送信された、前記ターゲットクラウドゲームに対するクラウドゲームライブ配信要求を受信するステップであって、前記クラウドゲームライブ配信要求は、前記クラウドゲームクライアントが前記ライブ配信者対象により前記ライブ配信指示コントロールに対して実行されたトリガー操作に応答して生成されたものである、ステップを含む、ことを特徴とする請求項2に記載の方法。
【請求項4】
前記クラウドゲームライブ配信要求には、前記ゲーム開始識別子が含まれており、
クラウドゲームクライアントから送信された、ターゲットクラウドゲームに対するクラウドゲームライブ配信要求を受信し、前記クラウドゲームライブ配信要求に基づいて、クラウドサーバと、前記クラウドゲームクライアントに関連付けられたライブ配信サーバとの間のライブ配信サービス接続を確立するステップは、
前記ゲーム開始識別子に基づいて前記クラウドゲームクライアントに関連付けられたライブ配信サーバにライブ配信認証要求を送信することで、前記ライブ配信サーバに、前記ライブ配信認証要求に基づいて前記クラウドゲームクライアントのために前記ターゲットクラウドゲームをライブ配信することに用いられるライブ配信ストリームプッシュアドレスを設定させるステップと、
前記ライブ配信サーバから返された前記ライブ配信ストリームプッシュアドレスを受信し、前記ライブ配信ストリームプッシュアドレスを前記クラウドゲームクライアントに返すときに、前記クラウドサーバと前記ライブ配信サーバとの間のライブ配信サービス接続の確立をトリガーするステップと、を含む、ことを特徴とする請求項2に記載の方法。
【請求項5】
前記ターゲットクラウドゲームは、クラウド仮想容器におけるゲーム進行プログラムにより動作し、前記クラウド仮想容器は、前記クラウドサーバにより前記クラウドゲームクライアントが所属するクライアント環境システムのために設けられ、
前記ライブ配信サービス接続に基づいて前記ターゲットクラウドゲームのゲーム画像データ、及びゲームオーディオデータを取得し、前記ゲーム画像データに対応する画像収集タイムスタンプと、前記ゲームオーディオデータに対応するオーディオ収集タイムスタンプとを記録するステップは、
前記ライブ配信サービス接続に基づいて、前記クラウド仮想容器において前記ゲーム進行プログラムに関連付けられたメディアエンコード進行プログラムを開始するステップと、
前記メディアエンコード進行プログラムにより指示されたデータ収集アセンブリを通じて、前記ターゲットクラウドゲームに関連付けられた背景オーディオフレームデータ、及びゲームビデオフレームデータをキャプチャーし、キャプチャーされた前記背景オーディオフレームデータと前記ゲームビデオフレームデータとを、前記データ収集アセンブリに関連付けられたクラウドキャッシュ空間に保存するステップであって、前記クラウドキャッシュ空間は、前記クラウド仮想容器から独立したクラウドメモリである、ステップと、
前記メディアエンコード進行プログラムにより指示されたタイマーを通じて、前記クラウドメモリにより記憶された前記ゲームビデオフレームデータ中から、第1収集時間インターバルにより指示された第1フレームレートとマッチングする画像フレームを収集し、収集された画像フレームを前記ターゲットクラウドゲームのゲーム画像データとし、かつ前記タイマーにより指示された参照系において、前記ゲーム画像データに対応する画像収集タイムスタンプを記録するステップと、
前記タイマーを通じて、前記クラウドメモリにより記憶された前記背景オーディオフレームデータ中から、第2収集時間インターバルにより指示された第2フレームレートとマッチングするオーディオフレームを収集し、収集されたオーディオフレームを前記ターゲットクラウドゲームのゲームオーディオデータとし、かつ前記タイマーにより指示された同一の参照系において、前記ゲームオーディオデータに対応するオーディオ収集タイムスタンプを記録するステップであって、前記第2収集時間インターバルの記録は、前記第1収集時間インターバルよりも小さく、且つ前記第2フレームレートは、前記第1フレームレートよりも大きい、ステップと、を含む、ことを特徴とする請求項1に記載の方法。
【請求項6】
前記方法は、
前記クラウド仮想容器において前記メディアエンコード進行プログラムに関連付けられた第1エンコードスレッドを動作させるステップと、
前記第1エンコードスレッドにより指示されたクラウドゲームエンコード標準を取得し、前記クラウドゲームエンコード標準を通じてキャプチャーされた前記背景オーディオフレームデータに対してオーディオエンコードを行って、前記ターゲットクラウドゲームの第1オーディオエンコードストリームを得るステップと、
前記クラウドゲームエンコード標準を通じてキャプチャーされた前記ゲームビデオフレームデータに対してビデオエンコードを行って、前記ターゲットクラウドゲームの第1ビデオエンコードストリームを得るステップと、
前記第1オーディオエンコードストリームと前記第1ビデオエンコードストリームとを前記ターゲットクラウドゲームのゲームエンコードストリームとし、前記ゲームエンコードストリームを前記クラウドゲームクライアントに返すことで、前記クラウドゲームクライアントに前記ゲームエンコードストリームに対してデコード処理を行わせ、前記クラウドゲームクライアントにおいて同期再生を行うことに用いられる前記背景オーディオフレームデータと前記ゲームビデオフレームデータとを得るステップと、をさらに含む、ことを特徴とする請求項5に記載の方法。
【請求項7】
前記クラウドサーバは、前記ゲーム進行プログラム、前記メディアエンコード進行プログラム、及びメディア伝送進行プログラムを動作させることに用いられ、前記メディア伝送進行プログラムは、前記クラウド仮想容器から独立した補助仮想容器において動作し、
前記方法は、
前記クラウド仮想容器において前記メディアエンコード進行プログラムに関連付けられた第2エンコードスレッドを動作させるステップと、
前記第2エンコードスレッドにより指示されたクラウドライブ配信エンコード標準を取得し、前記クラウドライブ配信エンコード標準を通じて前記第2フレームレートに関連付けられた前記ゲームオーディオデータに対してオーディオエンコードを行って、前記ターゲットクラウドゲームの第2オーディオエンコードストリームを得るステップと、
前記クラウドライブ配信エンコード標準を通じて前記第1フレームレートに関連付けられた前記ゲーム画像データに対してビデオエンコードを行って、前記ターゲットクラウドゲームの第2ビデオエンコードストリームを得るステップと、
前記第2オーディオエンコードストリームと前記第2ビデオエンコードストリームとを前記ターゲットクラウドゲームの処理対象エンコードストリームとし、前記処理対象エンコードストリームを前記メディア伝送進行プログラムに転送することで、前記メディア伝送進行プログラムに、前記処理対象エンコードストリームに基づいて補助クラウド仮想容器において、前記クラウドゲームクライアントから送信されたライブ配信者対象の処理対象オーディオデータを取得したときに、前記ゲームオーディオデータ、及び処理対象オーディオデータに対して音声ミキシング処理を行って、音声ミキシングオーディオデータを得るステップを実行させるステップと、をさらに含む、ことを特徴とする請求項5に記載の方法。
【請求項8】
前記クラウドゲームクライアントから送信されたライブ配信者対象の処理対象オーディオデータを取得したときに、前記ゲームオーディオデータ、及び処理対象オーディオデータに対して音声ミキシング処理を行って、音声ミキシングオーディオデータを得るステップは、
前記クラウドゲームクライアントから送信されたライブ配信者対象の処理対象オーディオデータを取得したときに、前記処理対象オーディオデータに対してデコード処理を行って、前記ライブ配信者対象の処理対象オーディオフレーム、及び前記処理対象オーディオフレームの録画タイムスタンプを得るステップと、
前記ゲームオーディオデータに対応する第2収集時間インターバルに基づいて、前記ゲームオーディオデータにおけるオーディオフレームを取得し、取得したオーディオフレームを参照オーディオフレームとし、且つ前記ゲームオーディオデータに対応する収集オーディオタイムスタンプに基づき、前記参照オーディオフレームの音声ミキシングタイムスタンプを決定するステップと、
前記音声ミキシングタイムスタンプに基づいて前記録画タイムスタンプを調整し、調整後の録画タイムスタンプに基づいて前記参照オーディオフレームと処理対象オーディオフレームとに対して音声ミキシング処理を行って、前記
オーディオ収集タイムスタンプと一致するように保持される音声ミキシングタイムスタンプに対応する音声ミキシングオーディオフレームを得て、得た音声ミキシングオーディオフレームと前記音声ミキシングオーディオフレームに対応する音声ミキシングタイムスタンプとを前記ターゲットクラウドゲームの音声ミキシングオーディオデータとするステップと、を含む、ことを特徴とする請求項1に記載の方法。
【請求項9】
前記方法は、
取得したオーディオフレームのフレーム数を統計処理し、もし前記オーディオフレームのフレーム数がMフレームであり、且つMがゼロ以外の正の整数であれば、Mを用いて音声ミキシング処理を行うべき回数を特徴づけるステップと、
前記音声ミキシング処理を行うべき回数に基づいて、前記音声ミキシングタイムスタンプに基づいて前記録画タイムスタンプを調整し、調整後の録画タイムスタンプに基づいて前記参照オーディオフレームと処理対象オーディオフレームとに対して音声ミキシング処理を実行するときに、前記処理対象オーディオフレームの音量に対して強化処理を行い、且つ前記参照オーディオフレームの音量に対して弱化処理を行うステップと、をさらに含む、ことを特徴とする請求項8に記載の方法。
【請求項10】
前記方法は、
もし前記オーディオフレームのフレーム数が空値であるか、又は前記処理対象オーディオフレームのフレーム数が空値であれば、前記参照オーディオフレームと処理対象オーディオフレームとに対して音声ミキシング処理を行わないステップをさらに含む、ことを特徴とする請求項9に記載の方法。
【請求項11】
前記クラウドサーバは、前記クラウドゲームライブ配信要求に基づいて開始したメディア転送進行プログラムを含み、前記メディア転送進行プログラムは、前記クラウドサーバと前記ライブ配信サーバとの間の前記ライブ配信サービス接続を保持することに用いられ、
前記音声ミキシングオーディオデータ、前記オーディオ収集タイムスタンプ、前記ゲーム画像データ、及び前記画像収集タイムスタンプに基づいて、前記ターゲットクラウドゲームに対応するライブ配信データストリームを得て、前記ライブ配信データストリームを、前記ライブ配信サーバを通じて、前記クラウドゲームクライアントに関連付けられたライブ配信クライアントに配信するステップは、
前記音声ミキシングオーディオデータを取得し、前記音声ミキシングオーディオデータ中から音声ミキシングオーディオフレーム、及び前記音声ミキシングオーディオフレームに対応する前記オーディオ収集タイムスタンプを取得し、前記オーディオ収集タイムスタンプに基づいて前記音声ミキシングオーディオフレームに対してソート処理を行い、ソート処理済みの音声ミキシングオーディオフレームを、前記メディア転送進行プログラムに関連付けられたオーディオキャッシュキューに書込むステップと、
前記ゲーム画像データを取得し、前記ゲーム画像データ中から画像フレーム、及び前記画像フレームに対応する前記画像収集タイムスタンプを取得し、前記画像収集タイムスタンプに基づいて前記画像フレームに対してソート処理を行い、ソート処理済みの画像フレームを、前記メディア転送進行プログラムに関連付けられたビデオキャッシュキューに書込むステップと、
メディア転送進行プログラムに関連付けられたスムーズ取得スレッドを取得し、前記スムーズ取得スレッドを通じて前記ビデオキャッシュキュー中から第1収集時間インターバルにより指示された第1フレームレートとマッチングするビデオデータパケットを取得し、かつ前記スムーズ取得スレッドを通じて前記オーディオキャッシュキュー中から第2収集時間インターバルにより指示された第2フレームレートとマッチングするオーディオデータパケットを取得するステップと、
前記ビデオデータパケットと前記オーディオデータパケットとに対してパッケージ処理を行い、前記ターゲットクラウドゲームに対応するライブ配信データストリームを得て、前記ライブ配信データストリームを、前記ライブ配信サーバを通じて、前記クラウドゲームクライアントに関連付けられたライブ配信クライアントに配信するステップと、を含む、ことを特徴とする請求項1に記載の方法。
【請求項12】
メディア転送進行プログラムに関連付けられたスムーズ取得スレッドを取得し、前記スムーズ取得スレッドを通じて前記ビデオキャッシュキュー中から第1収集時間インターバルにより指示された第1フレームレートとマッチングするビデオデータパケットを取得し、かつ前記スムーズ取得スレッドを通じて前記オーディオキャッシュキュー中から第2収集時間インターバルにより指示された第2フレームレートとマッチングするオーディオデータパケットを取得するステップは、
メディア転送進行プログラムに関連付けられたスムーズ取得スレッドを取得し、且つ前記スムーズ取得スレッドと同じ収集時間インターバルを有するデータ収集アセンブリを取得し、前記データ収集アセンブリの収集時間インターバルに基づいて前記ゲーム画像データに関連付けられた第1収集時間インターバルと、前記ゲームオーディオデータに関連付けられた第2収集時間インターバルとを決定するステップと、
前記スムーズ取得スレッドを通じて前記第1収集時間インターバルとマッチングするスムーズビデオ取得タイムスタンプを決定し、前記ビデオキャッシュキュー中から画像収集タイムスタンプが前記スムーズビデオ取得タイムスタンプよりも小さいキャッシュされたビデオフレームを取得し、取得した、キャッシュされたビデオフレームと前記キャッシュされたビデオフレームに対応する画像収集タイムスタンプとに対してカプセル化処理を行って、前記第1収集時間インターバルにより指示された第1フレームレートとマッチングするビデオデータパケットを得るステップと、
前記スムーズ取得スレッドを通じて前記第2収集時間インターバルとマッチングするスムーズオーディオ取得タイムスタンプを決定し、前記オーディオキャッシュキュー中からオーディオ収集タイムスタンプが前記スムーズオーディオ取得タイムスタンプよりも小さいキャッシュされたオーディオフレームを取得し、取得した、キャッシュされたオーディオフレームと前記キャッシュされたオーディオフレームに対応するオーディオ収集タイムスタンプとに対してカプセル化処理を行って、前記第2収集時間インターバルにより指示された第2フレームレートとマッチングするオーディオデータパケットを得るステップと、を含む、ことを特徴とする請求項11に記載の方法。
【請求項13】
前記ライブ配信データストリームを、前記ライブ配信サーバを通じて、前記クラウドゲームクライアントに関連付けられたライブ配信クライアントに配信するステップの後に、前記方法は、
前記ライブ配信データストリームの最大オーディオ収集タイムスタンプを決定するステップと、
もし前記スムーズ取得スレッドを通じて、送信対象オーディオデータパケットのオーディオ収集タイムスタンプが前記最大オーディオ収集タイムスタンプよりも小さいと記録されていれば、前記送信対象オーディオデータパケットを廃棄するステップであって、前記送信対象オーディオデータパケットとは、前記ライブ配信サーバに送信対象の次のオーディオデータパケットを指す、ステップと、をさらに含む、ことを特徴とする請求項12に記載の方法。
【請求項14】
前記ライブ配信データストリームを、前記ライブ配信サーバを通じて、前記クラウドゲームクライアントに関連付けられたライブ配信クライアントに配信するステップの後に、前記方法は、
前記ライブ配信データストリームの最大画像収集タイムスタンプを決定するステップと、
もし前記スムーズ取得スレッドを通じて、送信対象ビデオデータパケットのビデオ収集タイムスタンプが最大ビデオ収集タイムスタンプよりも小さいと記録されていれば、前記送信対象ビデオデータパケットを廃棄するステップであって、前記送信対象ビデオデータパケットとは、前記ライブ配信サーバに送信対象の次のビデオデータパケットを指す、ステップと、をさらに含む、ことを特徴とする請求項12に記載の方法。
【請求項15】
ゲームデータ処理装置であって、
クラウドゲームクライアントから送信された、ターゲットクラウドゲームに対するクラウドゲームライブ配信要求を受信し、前記クラウドゲームライブ配信要求に基づいて、クラウドサーバと、前記クラウドゲームクライアントに関連付けられたライブ配信サーバとの間のライブ配信サービス接続を確立することに用いられるライブ配信要求受信モジュールと、
前記ライブ配信サービス接続に基づいて前記ターゲットクラウドゲームのゲーム画像データ、及びゲームオーディオデータを取得し、前記ゲーム画像データに対応する画像収集タイムスタンプと、前記ゲームオーディオデータに対応するオーディオ収集タイムスタンプとを記録することに用いられるデータ取得モジュールであって、前記画像収集タイムスタンプと前記オーディオ収集タイムスタンプは、同一の参照系におけるタイムスタンプである、データ取得モジュールと、
前記クラウドゲームクライアントから送信されたライブ配信者対象の処理対象オーディオデータを取得したときに、前記ゲームオーディオデータ、及び処理対象オーディオデータに対して音声ミキシング処理を行って、音声ミキシングオーディオデータを得ることに用いられる音声ミキシング処理モジュールであって、前記音声ミキシングオーディオデータに対応する音声ミキシングタイムスタンプは、前記オーディオ収集タイムスタンプと一致するように保持される、音声ミキシング処理モジュールと、
前記音声ミキシングオーディオデータ、前記オーディオ収集タイムスタンプ、前記ゲーム画像データ、及び前記画像収集タイムスタンプに基づいて、前記ターゲットクラウドゲームに対応するライブ配信データストリームを得て、前記ライブ配信データストリームを、前記ライブ配信サーバを通じて、前記クラウドゲームクライアントに関連付けられたライブ配信クライアントに配信することに用いられるライブ配信ストリーム配信モジュールと、を含む、ことを特徴とするゲームデータ処理装置。
【請求項16】
メモリと、1つ又は複数のプロセッサと、を含み、前記メモリには、コンピュータ可読指令が記憶されているコンピュータ機器であって、前記コンピュータ可読指令は、前記プロセッサによって実行されるときに、前記1つ又は複数のプロセッサに請求項1~14のいずれか1項に記載の方法のステップを実行させる、ことを特徴とするコンピュータ機器。
【請求項17】
コンピュータプログラ
ムであって
、プロセッサに
よって実行されるときに、請求項1~14のいずれか1項に記載の方
法を実施する
ように構成されている、ことを特徴とするコンピュータプログラ
ム。
【国際調査報告】