(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-05
(45)【発行日】2024-02-14
(54)【発明の名称】ビデオ処理方法、装置、コンピュータデバイスおよびコンピュータプログラム
(51)【国際特許分類】
H04N 21/438 20110101AFI20240206BHJP
H04N 21/238 20110101ALI20240206BHJP
【FI】
H04N21/438
H04N21/238
(21)【出願番号】P 2022539104
(86)(22)【出願日】2021-05-06
(86)【国際出願番号】 CN2021091889
(87)【国際公開番号】W WO2021233123
(87)【国際公開日】2021-11-25
【審査請求日】2022-07-22
(31)【優先権主張番号】202010433505.2
(32)【優先日】2020-05-21
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】514187420
【氏名又は名称】テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】フゥ,グアンプゥ
(72)【発明者】
【氏名】ジャン,ポン
【審査官】富樫 明
(56)【参考文献】
【文献】米国特許出願公開第2008/0291999(US,A1)
【文献】特開2009-065551(JP,A)
【文献】特開2004-080145(JP,A)
【文献】米国特許出願公開第2018/0131742(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 21/00-21/858
(57)【特許請求の範囲】
【請求項1】
端末によって実行されるビデオ処理方法であって、
少なくとも2つのチャネルを介してビデオサブストリームを取得して、前記少なくとも2つのチャネルと1対1に対応する少なくとも2つのビデオサブストリームを得るステップと、
前記少なくとも2つのビデオサブストリームの補足強化情報フレームから、ビデオスライス番号を抽出するステップと、
抽出されたビデオスライス番号に基づいて、前記少なくとも2つのビデオサブストリームのうちの相応のビデオサブストリームがビデオスライスを欠失していることを決定するステップと、
前記相応のビデオサブストリームに対応するビデオソースから、欠失されている前記ビデオスライスをダウンロードするステップと、
ダウンロードされた前記ビデオスライスと、前記少なくとも2つのビデオサブストリームとを、前記ビデオスライス番号の順序に従って再生するステップと、
を含むことを特徴とする方法。
【請求項2】
少なくとも2つのチャネルを介してビデオサブストリームを取得する前記ステップの前に、前記方法は、さらに、
ビデオ再生コマンドを取得するステップと、
前記ビデオ再生コマンドに応答して、コンテンツ配信ネットワークシステムのターゲットサーバから、予め設定された時間範囲内の完全なビデオストリームをダウンロードするステップであって、前記完全なビデオストリームと、前記少なくとも2つのビデオサブストリームとが、いずれも、同じビデオのデータストリームに属するものであるステップと、
前記端末により、前記完全なビデオストリームを再生するステップと、
前記端末が前記完全なビデオストリームを再生する過程において安定的な再生状態に達した場合、少なくとも2つのチャネルを介してビデオサブストリームを取得する前記ステップを実行するステップと、を含む、
ことを特徴とする請求項1に記載の方法。
【請求項3】
少なくとも2つのチャネルを介してビデオサブストリームを取得して、前記少なくとも2つのチャネルと1対1に対応する少なくとも2つのビデオサブストリームを得る前記ステップは、
ダウンロードするビデオストリームを、少なくとも2つのビデオサブストリームに分割するステップと、
コンテンツ配信ネットワークシステムのターゲットサーバから、少なくとも2つのチャネルを介して、前記少なくとも2つのビデオサブストリームをそれぞれダウンロードするステップと、を含む、
ことを特徴とする請求項1に記載の方法。
【請求項4】
少なくとも2つのチャネルを介してビデオサブストリームを取得する前記ステップは、
他のクライアントから、少なくとも1つのビデオサブストリームをダウンロードするステップと、
コンテンツ配信ネットワークシステムのターゲットサーバから、残りのビデオサブストリームをダウンロードするステップと、を含む、
ことを特徴とする請求項1に記載の方法。
【請求項5】
他のクライアントから、少なくとも1つのビデオサブストリームをダウンロードする前記ステップは、
前記少なくとも2つのビデオサブストリームから、少なくとも1つのターゲットビデオサブストリームを選択するステップと、
他のクライアントから、前記ターゲットビデオサブストリームをダウンロードするステップと、を含み、
前記方法は、さらに、
前記他のクライアントから前記ターゲットビデオサブストリームをダウンロードすると決定した場合、前記ターゲットサーバから前記ターゲットビデオサブストリームをダウンロードすることを一時停止するステップ、を含む、
ことを特徴とする請求項4に記載の方法。
【請求項6】
抽出されたビデオスライス番号に基づいて、前記少なくとも2つのビデオサブストリームのうちの相応のビデオサブストリームがビデオスライスを欠失していることを決定する前記ステップは、
前記少なくとも2つのビデオサブストリームがビデオスライス番号を欠失しているかどうかを判断するステップと、
前記ビデオスライス番号が欠失されているビデオサブストリームが少なくとも1つ存在すれば、欠失されている前記ビデオスライス番号に基づいて、前記少なくとも1つのビデオサブストリームにおいて欠失されているビデオスライスを決定するステップと、を含む、
ことを特徴とする請求項1~5のいずれか1項に記載の方法。
【請求項7】
ダウンロードされた前記ビデオスライスと、前記少なくとも2つのビデオサブストリームとを、前記ビデオスライス番号の順序に従って再生する前記ステップは、
ダウンロードされた前記ビデオスライスと、前記少なくとも2つのビデオサブストリームとを保存するステップと、
保存されているビデオスライスと、各ビデオサブストリームとを、前記ビデオスライス番号の順序に従ってクライアントに順次にロードして、相応の再生対象となるビデオストリームを得るステップと、
前記再生対象となるビデオストリームにおける各ビデオスライスを順次にレンダリングして、再生対象となる画像シーケンスを得るステップと、
前記クライアントにより、前記再生対象となる画像シーケンスを再生するステップと、を含む、
ことを特徴とする請求項1~6のいずれか1項に記載の方法。
【請求項8】
前記ビデオストリームは、ビデオ収集システムによってプッシュされたオリジナルビデオストリームに対してスライス処理をサーバが順次に行って得られたものであり、前記ビデオスライス番号は、スライスされた各ビデオスライスを前記サーバが番号付けて得られたものである、
ことを特徴とする請求項2、3、7のいずれか1項に記載の方法。
【請求項9】
前記オリジナルビデオストリームと前記ビデオストリームは、いずれも、FLVストリーミングメディアフォーマットのビデオストリームである、
ことを特徴とする請求項8に記載の方法。
【請求項10】
サーバ
と、ターゲットサーバと、端末とを含むビデオ処理システムによって実行されるビデオ処理方法であって、
前記サーバが、ビデオ収集システムによってプッシュされたターゲットビデオフォーマットのオリジナルビデオストリームを受信するステップと、
前記サーバが、前記オリジナルビデオストリームに対してスライス処理を順次に行って、対応するビデオスライスを得るステップと、
前記サーバが、得られたビデオスライスを番号付けて、ビデオスライス番号を得るステップと、
前記サーバが、前記ビデオスライス番号を補足強化情報フレームに保存して、スライスされた前記ターゲットビデオフォーマットのビデオストリームを得るステップと、
前記ターゲットサーバがクライアントによって送信されたビデオ再生コマンドに基づいて、対応するビデオストリームを返信するように、
前記サーバが、前記ビデオストリームを前記ターゲットサーバに送信するステップと、
前記端末が、少なくとも2つのチャネルを介してビデオサブストリームを取得して、前記少なくとも2つのチャネルと1対1に対応する少なくとも2つのビデオサブストリームを得るステップと、
前記端末が、前記少なくとも2つのビデオサブストリームの補足強化情報フレームから、ビデオスライス番号を抽出するステップと、
前記端末が、抽出されたビデオスライス番号に基づいて、前記少なくとも2つのビデオサブストリームのうちの相応のビデオサブストリームがビデオスライスを欠失していることを決定するステップと、
前記端末が、前記相応のビデオサブストリームに対応するビデオソースから、欠失されている前記ビデオスライスをダウンロードするステップと、
前記端末が、ダウンロードされた前記ビデオスライスと、前記少なくとも2つのビデオサブストリームとを、前記ビデオスライス番号の順序に従って再生するステップと、
を含むことを特徴とするビデオ処理方法。
【請求項11】
前記オリジナルビデオストリームと前記ビデオストリームは、いずれも、FLVストリーミングメディアフォーマットのビデオストリームである、
ことを特徴とする請求項10に記載の方法。
【請求項12】
ビデオ処理装置であって、
少なくとも2つのチャネルを介してビデオサブストリームを取得して、前記少なくとも2つのチャネルと1対1に対応する少なくとも2つのビデオサブストリームを得る第1ダウンロードモジュールと、
前記少なくとも2つのビデオサブストリームの補足強化情報フレームから、ビデオスライス番号を抽出する抽出モジュールと、
抽出されたビデオスライス番号に基づいて、前記少なくとも2つのビデオサブストリームのうちの相応のビデオサブストリームがビデオスライスを欠失していることを決定する決定モジュールと、
前記相応のビデオサブストリームに対応するビデオソースから、欠失されている前記ビデオスライスをダウンロードする第2ダウンロードモジュールと、
ダウンロードされた前記ビデオスライスと、前記少なくとも2つのビデオサブストリームとを、前記ビデオスライス番号の順序に従って再生する再生モジュールと、
を含むことを特徴とするビデオ処理装置。
【請求項13】
前記装置は、さらに、
ビデオ再生コマンドを取得する取得モジュールを、含み、
前記第1ダウンロードモジュールは、さらに、前記ビデオ再生コマンドに応答して、コンテンツ配信ネットワークシステムのターゲットサーバから、予め設定された時間範囲内の完全なビデオストリームをダウンロードするために使用され、前記完全なビデオストリームと、前記少なくとも2つのビデオサブストリームとが、いずれも、同じビデオのデータストリームに属するものであり、
前記再生モジュールは、さらに、前記完全なビデオストリームを再生するために使用され、
前記第1ダウンロードモジュールは、さらに、前記完全なビデオストリームを再生する過程において安定的な再生状態に達した場合、少なくとも2つのチャネルを介してビデオサブストリーム取得するために使用される、
ことを特徴とする請求項12に記載の装置。
【請求項14】
前記第1ダウンロードモジュールは、さらに、他のクライアントから、少なくとも1つのビデオサブストリームをダウンロードし、コンテンツ配信ネットワークシステムのターゲットサーバから、残りのビデオサブストリームをダウンロードするために使用される、
ことを特徴とする請求項12に記載の装置。
【請求項15】
前記第1ダウンロードモジュールが、さらに、前記少なくとも2つのビデオサブストリームから、少なくとも1つのターゲットビデオサブストリームを選択し、他のクライアントから、前記ターゲットビデオサブストリームをダウンロードし、前記他のクライアントから前記ターゲットビデオサブストリームをダウンロードすると決定した場合、前記ターゲットサーバから前記ターゲットビデオサブストリームをダウンロードすることを一時停止するために使用される、
ことを特徴とする請求項14に記載の装置。
【請求項16】
前記決定モジュールは、さらに、前記少なくとも2つのビデオサブストリームがビデオスライス番号を欠失しているかどうかを判断し、前記ビデオスライス番号が欠失されているビデオサブストリームが少なくとも1つ存在すれば、欠失されている前記ビデオスライス番号に基づいて、前記少なくとも1つのビデオサブストリームにおいて欠失されているビデオスライスを決定するために使用される、
ことを特徴とする請求項12~15のいずれか1項に記載の装置。
【請求項17】
前記再生モジュールは、さらに、ダウンロードされた前記ビデオスライスと、前記少なくとも2つのビデオサブストリームとを保存し、保存されているビデオスライスと、各ビデオサブストリームとを、前記ビデオスライス番号の順序に従ってクライアントに順次にロードして、相応の再生対象となるビデオストリームを得、前記再生対象となるビデオストリームにおける各ビデオスライスを順次にレンダリングして、再生対象となる画像シーケンスを得て、前記クライアントにより、前記再生対象となる画像シーケンスを再生するために使用される、
ことを特徴とする請求項12~16のいずれか1項に記載の装置。
【請求項18】
ビデオ処理
サーバと、端末とを含むビデオ処理システムであって、
前記ビデオ処理サーバは、
ビデオ収集システムによってプッシュされたターゲットビデオフォーマットのオリジナルビデオストリームを受信する受信モジュールと、
前記オリジナルビデオストリームに対してスライス処理を順次に行って、対応するビデオスライスを得る処理モジュールと、
得られたビデオスライスを番号付けて、ビデオスライス番号を得る番号付けモジュールと、
前記ビデオスライス番号を補足強化情報フレームに保存して、スライスされた前記ターゲットビデオフォーマットのビデオストリームを得る保存モジュールと、
ターゲットサーバがクライアントによって送信されたビデオ再生コマンドに基づいて、対応するビデオストリームを返信するように、前記ビデオストリームを前記ターゲットサーバに送信する送信モジュールと、
を含
み、
前記端末は、
少なくとも2つのチャネルを介してビデオサブストリームを取得して、前記少なくとも2つのチャネルと1対1に対応する少なくとも2つのビデオサブストリームを得る第1ダウンロードモジュールと、
前記少なくとも2つのビデオサブストリームの補足強化情報フレームから、ビデオスライス番号を抽出する抽出モジュールと、
抽出されたビデオスライス番号に基づいて、前記少なくとも2つのビデオサブストリームのうちの相応のビデオサブストリームがビデオスライスを欠失していることを決定する決定モジュールと、
前記相応のビデオサブストリームに対応するビデオソースから、欠失されている前記ビデオスライスをダウンロードする第2ダウンロードモジュールと、
ダウンロードされた前記ビデオスライスと、前記少なくとも2つのビデオサブストリームとを、前記ビデオスライス番号の順序に従って再生する再生モジュールと、
を含むことを特徴とするビデオ処理
システム。
【請求項19】
コンピュータプログラムが記憶されているメモリと、プロセッサとを含むコンピュータデバイスであって、
前記プロセッサは、前記コンピュータプログラムを実行するとき、請求項1~
9のいずれか1項に記載の方法のステップを実現する、
ことを特徴とするコンピュータデバイス。
【請求項20】
コンピュータプログラムであって、
前記コンピュータプログラムが、コンピュータデバイスによって実行されるとき、請求項1~
9のいずれか1項に記載の方法のステップを実現させる、
ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願への相互参照]
本願は、2020年5月21日に中国特許局に出願された、出願番号が202010433505.2であり、発明名称が「ビデオ処理方法、装置、コンピュータデバイスおよび記憶媒体」である中国特許出願の優先権を主張しており、そのすべての内容が、参照により本願に組み込まれる。
[技術分野]
本願は、ビデオ処理技術の分野に関し、特に、ビデオ処理方法、装置、コンピュータデバイスおよび記憶媒体に関する。
【背景技術】
【0002】
ビデオ処理技術およびインターネット技術の絶え間ない発展に伴い、ますます多くのユーザは、クライアントを使用してインターネットに接続し、自分の好きなビデオを選択して視聴することができ、これは、大多数のユーザのために大きな便利さを提供している。ビデオ再生にとって、フリーズということは、ビデオ再生の品質を分析するための重要な指標であり、従来のビデオ再生方式では、ビデオ再生中にフリーズという問題が発生することを回避するために、クライアントは、通常、一部のビデオデータをバッファリングする場合があり、ビデオデータをバッファリングするこの期間は、保護ウィンドウと呼ばれる。
従来のビデオ再生方式では、各クライアントは、いずれも、指定されたプロトコルによって、サーバからビデオデータを取得する。クライアントの数が一定の規模に達した後、サーバは、巨大なI/O(Input/Output、入力/出力)および帯域幅などによる圧力を受けることがある。サーバがクライアントの要求をタイムリーに処理できない場合、クライアントには、フリーズという問題が発生してしまう。
【0003】
上記の問題を解決するために、ビデオを再生する過程において、ビデオソース(例えば、他のサーバまたは他のクライアント)から一部のビデオデータをダウンロードすることができ、これにより、サーバの処理圧力を緩和させて、フリーズということが回避され得る。ビデオソースから一部のビデオデータをダウンロードすると、ビデオデータ伝送のために保護ウィンドウ上に遅延を加える必要があり、即ち、再生するビデオデータをサーバからダウンロードするほかに、また、再生するビデオデータを他のビデオソースからダウンロードすることもでき、これにより、サーバの圧力を大幅に低減させることができる。しかしながら、従来のビデオ再生方式を採用することは、再生する場合の遅延時間をもさらに増加する。
【発明の概要】
【課題を解決するための手段】
【0004】
本願の様々な実施例によれば、ビデオ処理方法、装置、コンピュータデバイスおよび記憶媒体が提供される。
【0005】
端末によって実行されるビデオ処理方法であって、
少なくとも2つのチャネルを介してビデオサブストリームを取得して、前記少なくとも2つのチャネルと1対1に対応する少なくとも2つのビデオサブストリームを得るステップと、
前記少なくとも2つのビデオサブストリームの補足強化情報フレームから、ビデオスライス番号を抽出するステップと、
抽出されたビデオスライス番号に基づいて、前記少なくとも2つのビデオサブストリームのうちの相応のビデオサブストリームがビデオスライスを欠失していることを決定するステップと、
前記相応のビデオサブストリームに対応するビデオソースから、欠失されている前記ビデオスライスをダウンロードするステップと、
ダウンロードされた前記ビデオスライスと、前記少なくとも2つのビデオサブストリームとを、前記ビデオスライス番号の順序に従って再生するステップと、
を含む。
【0006】
ビデオ処理装置であって、
少なくとも2つのチャネルを介してビデオサブストリームを取得して、前記少なくとも2つのチャネルと1対1に対応する少なくとも2つのビデオサブストリームを得る第1ダウンロードモジュールと、
前記少なくとも2つのビデオサブストリームの補足強化情報フレームから、ビデオスライス番号を抽出する抽出モジュールと、
抽出されたビデオスライス番号に基づいて、前記少なくとも2つのビデオサブストリームのうちの相応のビデオサブストリームがビデオスライスを欠失していることを決定する決定モジュールと、
前記相応のビデオサブストリームに対応するビデオソースから、欠失されている前記ビデオスライスをダウンロードする第2ダウンロードモジュールと、
ダウンロードされた前記ビデオスライスと、前記少なくとも2つのビデオサブストリームとを、前記ビデオスライス番号の順序に従って再生する再生モジュールと、
を含む。
【0007】
コンピュータプログラムが記憶されているメモリと、プロセッサとを含むコンピュータデバイスであって、前記プロセッサは、前記コンピュータプログラムを実行するときに、
少なくとも2つのチャネルを介してビデオサブストリームを取得して、前記少なくとも2つのチャネルと1対1に対応する少なくとも2つのビデオサブストリームを得るステップと、
前記少なくとも2つのビデオサブストリームの補足強化情報フレームから、ビデオスライス番号を抽出するステップと、
抽出されたビデオスライス番号に基づいて、前記少なくとも2つのビデオサブストリームのうちの相応のビデオサブストリームがビデオスライスを欠失していることを決定するステップと、
前記相応のビデオサブストリームに対応するビデオソースから、欠失されている前記ビデオスライスをダウンロードするステップと、
ダウンロードされた前記ビデオスライスと、前記少なくとも2つのビデオサブストリームとを、前記ビデオスライス番号の順序に従って再生するステップと、
を実現する。
【0008】
コンピュータプログラムが記憶されているコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、前記プロセッサによって実行されるとき、
少なくとも2つのチャネルを介してビデオサブストリームを取得して、前記少なくとも2つのチャネルと1対1に対応する少なくとも2つのビデオサブストリームを得るステップと、
前記少なくとも2つのビデオサブストリームの補足強化情報フレームから、ビデオスライス番号を抽出するステップと、
抽出されたビデオスライス番号に基づいて、前記少なくとも2つのビデオサブストリームのうちの相応のビデオサブストリームがビデオスライスを欠失していることを決定するステップと、
前記相応のビデオサブストリームに対応するビデオソースから、欠失されている前記ビデオスライスをダウンロードするステップと、
ダウンロードされた前記ビデオスライスと、前記少なくとも2つのビデオサブストリームとを、前記ビデオスライス番号の順序に従って再生するステップと、
を実現させる。
【0009】
サーバによって実行されるビデオ処理方法であって、
ビデオ収集システムによってプッシュされたターゲットビデオフォーマットのオリジナルビデオストリームを受信するステップと、
前記オリジナルビデオストリームに対してスライス処理を順次に行って、対応するビデオスライスを得るステップと、
得られたビデオスライスを番号付けて、ビデオスライス番号を得るステップと、
前記ビデオスライス番号を補足強化情報フレームに保存して、スライスされた前記ターゲットビデオフォーマットのビデオストリームを得るステップと、
ターゲットサーバがクライアントによって送信されたビデオ再生コマンドに基づいて、対応するビデオストリームを返信するように、前記ビデオストリームを前記ターゲットサーバに送信するステップと、
を含む。
【0010】
ビデオ処理装置であって、
ビデオ収集システムによってプッシュされたターゲットビデオフォーマットのオリジナルビデオストリームを受信する受信モジュールと、
前記オリジナルビデオストリームに対してスライス処理を順次に行って、対応するビデオスライスを得る処理モジュールと、
得られたビデオスライスを番号付けて、ビデオスライス番号を得る番号付けモジュールと、
前記ビデオスライス番号を補足強化情報フレームに保存して、スライスされた前記ターゲットビデオフォーマットのビデオストリームを得る保存モジュールと、
ターゲットサーバがクライアントによって送信されたビデオ再生コマンドに基づいて、対応するビデオストリームを返信するように、前記ビデオストリームを前記ターゲットサーバに送信する送信モジュールと、
を含む。
【0011】
コンピュータプログラムが記憶されているメモリと、プロセッサとを含むコンピュータデバイスであって、前記プロセッサは、が前記コンピュータプログラムを実行するときに、
ビデオ収集システムによってプッシュされたターゲットビデオフォーマットのオリジナルビデオストリームを受信するステップと、
前記オリジナルビデオストリームに対してスライス処理を順次に行って、対応するビデオスライスを得るステップと、
得られたビデオスライスを番号付けて、ビデオスライス番号を得るステップと、
前記ビデオスライス番号を補足強化情報フレームに保存して、スライスされた前記ターゲットビデオフォーマットのビデオストリームを得るステップと、
ターゲットサーバがクライアントによって送信されたビデオ再生コマンドに基づいて、対応するビデオストリームを返信するように、前記ビデオストリームを前記ターゲットサーバに送信するステップと、
を実現する。
【0012】
コンピュータプログラムが記憶されているコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、前記プロセッサによって実行されるとき、
ビデオ収集システムによってプッシュされたターゲットビデオフォーマットのオリジナルビデオストリームを受信するステップと、
前記オリジナルビデオストリームに対してスライス処理を順次に行って、対応するビデオスライスを得るステップと、
得られたビデオスライスを番号付けて、ビデオスライス番号を得るステップと、
前記ビデオスライス番号を補足強化情報フレームに保存して、スライスされた前記ターゲットビデオフォーマットのビデオストリームを得るステップと、
ターゲットサーバがクライアントによって送信されたビデオ再生コマンドに基づいて、対応するビデオストリームを返信するように、前記ビデオストリームを前記ターゲットサーバに送信するステップと、
を実現させる。
【0013】
コンピュータ読み取り可能な記憶媒体に記憶されているコンピュータ命令を含むコンピュータプログラム製品またはコンピュータプログラムであって、コンピュータデバイスのプロセッサは、コンピュータ読み取り可能な記憶媒体から、前記コンピュータ命令を読み出して実行するときに、上記のビデオ処理方法のステップを前記コンピュータデバイスに実行させる。
【0014】
本願の1つまたは複数の実施例の詳細は、以下の図面および説明において提出されている。本願の他の特徴および利点は、明細書、図面および特許請求の範囲から明らかになる。
【図面の簡単な説明】
【0015】
【
図1】1つの実施例におけるビデオ処理方法の応用環境の図である。
【
図2】1つの実施例におけるビデオ処理方法のフロー概略図である。
【
図3】1つの実施例における、ビデオストリームをプリロードして再生するステップのフロー概略図である。
【
図4】別の実施例におけるビデオ処理方法のフロー概略図である。
【
図5】別の実施例におけるビデオ処理方法のフロー概略図である。
【
図6】1つの実施例における、FLVストリーミングメディアフォーマットのオリジナルライブビデオストリームに対してP2Pスライスを行うフロー概略図である。
【
図7】1つの実施例におけるライブビデオストリームの伝送プロセスのフロー概略図である。
【
図8】1つの実施例におけるビデオ処理装置の構成のブロック図である。
【
図9】別の実施例におけるビデオ処理装置の構成のブロック図である。
【
図10】別の実施例におけるビデオ処理装置の構成のブロック図である。
【
図11】1つの実施例におけるコンピュータデバイスの内部構成図である。
【
図12】別の実施例におけるコンピュータデバイスの内部構成図である。
【発明を実施するための形態】
【0016】
以下、本願の目的、技術的解決手段および利点をさらに明確にするために、図面および実施例を参照しながら、本願をさらに詳細に説明する。理解すべきものとして、ここで説明する具体的な実施例は、本願を説明するためにのみ使用され、本願を限定するために使用されない。
【0017】
本願によって提供されるビデオ処理方法は、
図1に示すような応用環境に適用され得る。ここで、
図1に示すように、端末102、他のユーザの端末(以下、他の端末と略称される)104、CDN(Content Delivery Network、コンテンツ配信ネットワーク)システムにおけるターゲットサーバ106、トランスコーディングサーバ(サーバと略称することができる)108、ビデオ収集システム110の間では、ネットワークを介して通信が実行される。端末102は、少なくとも2つのチャネルを介して、ビデオストリームのダウンロードを行う(例えば、コンテンツ配信ネットワークシステムのターゲットサーバ106または他のクライアント104からビデオストリームをダウンロードする)ことにより、少なくとも2つのビデオサブストリームを得ることと、当該少なくとも2つのビデオサブストリームの補足強化情報フレームから、ビデオスライス番号を抽出することと、抽出されたビデオスライス番号に基づいて、少なくとも2つのビデオサブストリームのうちの相応のビデオサブストリームがビデオスライスを欠失していることを決定することと、相応のビデオサブストリームに対応するビデオソースから、欠失されているビデオスライスをダウンロードすることと、ダウンロードされたビデオスライスと、少なくとも2つのビデオサブストリームとを、ビデオスライス番号の順に従ってクライアントに書き込んで再生する。
【0018】
ここで、ビデオを再生するために、端末102にビデオを再生するためのクライアントがインストールされている。他の端末104がビデオを再生する必要がある場合、ターゲットサーバ106からビデオストリームをダウンロードしてもよく、端末102から一部のビデオストリームをダウンロードしてもよい(即ち、あるビデオサブストリームをダウンロードする)。端末102および他の端末104は、様々なパーソナルコンピュータ、ノートパソコン、スマートフォン、タブレットコンピュータ、およびポータブルウェアラブルデバイスを含んでもよいが、それらに限定されない。ターゲットサーバ106およびトランスコーディングサーバ108は、独立したサーバによって実現されてもよく、複数のサーバからなるサーバクラスタによって実現されてもよい。
【0019】
1つの実施例では、
図2に示すように、
図2は、本願の実施例によって提供されるビデオ処理方法であり、当該方法は、
図1における端末102に適用することを例として説明され、以下のステップを含む。
【0020】
S202で、少なくとも2つのチャネルを介してビデオサブストリームを取得して、少なくとも2つのチャネルと1対1に対応する少なくとも2つのビデオサブストリームを得る。
【0021】
ここで、ビデオストリームは、ライブビデオストリームであってもよく、録画ビデオストリームであってもよいし、他の非ライブ形式のビデオストリームであってもよい。ビデオストリームをダウンロードする前またはダウンロードする過程において、ビデオストリームは、2つ以上のビデオサブストリームに分割され得る。
【0022】
ライブビデオストリームは、ライブビデオのビデオスライスによって構成され得る。録画ビデオストリームは、予め録画されたビデオのビデオスライスによって構成され得る。各ビデオスライスは、1つ以上のビデオフレームによって構成され得て、後続の実施例では、ビデオストリームをライブビデオストリームとし、かつ、ビデオスライスが1つのビデオフレームによって構成されることを例として説明する。
【0023】
また、各ビデオスライスは、特定のビデオフォーマットを使用してビデオフレームをパッケージングして得られたものである。当該ビデオフォーマットは、FLV(Flash Video、Flashビデオ)ストリーミングメディアフォーマット、RMVB(Real Media、可変ビットレート)フォーマット、MPEG(Moving Picture Experts Group、動画専門家グループ)フォーマット、およびAVI(Audio Video Interleaved、オーディオビデオインターリーブド)フォーマットなどを含んでもよいが、これらに限定されない。
【0024】
ビデオストリームがライブビデオストリームである場合、ビデオサブストリームは、ライブビデオストリームにおけるビデオスライスによって構成され得る。例えば、ライブビデオストリームは、1、2、3、…、4n+3であり、それに対応して、1番目のビデオサブストリームは、0、4、8、…、4nであってもよく、2番目のビデオサブストリームは、1、5、9、…、4n+1であってもよいし、3番目のビデオサブストリームは、2、6、10、…、4n+2であってもよく、4番目のビデオサブストリームは、3、7、11、…、4n+3であってもよい。ここで、上記のnは、0以上の正整数である。
【0025】
1つの実施例では、ビデオストリームは、ビデオ収集システムによってプッシュされたオリジナルビデオストリームに対してスライス処理をトランスコーディングサーバが順次に行って得られたものであり、ビデオスライス番号は、スライスされた各ビデオスライスをトランスコーディングサーバが番号付けて得られたものである。
【0026】
ここで、オリジナルビデオストリームは、オリジナルライブビデオストリームを含み、オリジナルライブビデオストリームのビデオフォーマットは、FLVストリーミングメディアフォーマット、RMVBフォーマット、MPEGフォーマットおよびAVIフォーマットなどを含んでもよいが、これらに限定されない。後続の実施例では、オリジナルライブビデオストリームとライブビデオストリームがFLVストリーミングメディアフォーマットのビデオストリームであることを例にして説明する。
【0027】
具体的には、トランスコーディングサーバは、ビデオ収集システムによってプッシュされたターゲットビデオフォーマットのオリジナルビデオストリームを受信し、オリジナルビデオストリームに対してトランスコーディングを順次に行い、トランスコーディングを行う過程においてスライス処理を行って、対応するビデオスライスを得ることと、得られたビデオスライスを番号付けて、ビデオスライス番号を得ることと、ビデオスライス番号を補足強化情報フレームに保存して、トランスコーディングされて番号付けられたビデオストリームを得ることと、ターゲットサーバがクライアントによって送信されたビデオ再生コマンドに基づいて、対応するビデオストリームを返信するように、スライスされたビデオストリームをコンテンツ配信ネットワークシステムのターゲットサーバに送信することと、を実行する。ここで、当該クライアントとは、端末にインストールされた、ビデオを再生するために使用可能なクライアントを指す。
【0028】
1つの実施例では、ビデオ収集システムは、ターゲットオブジェクトを撮影してビデオデータを得て、次に、特定のビデオフォーマットを使用して、得られたビデオデータをパッケージングして、複数のビデオデータパケットによって構成されるオリジナルビデオストリームを得る。
【0029】
例えば、ビデオストリームがライブビデオストリームである場合、ビデオ収集システムは、FLVストリーミングメディアフォーマットに従ってビデオデータをパッケージングすることにより、FLVストリーミングメディアフォーマットのライブビデオストリームを得る。
【0030】
S202について、再生初期には、端末は、コンテンツ配信ネットワークシステムのターゲットサーバだけから、ビデオストリームをダウンロードすることができ、再生初期が終了した後(即ち、初期の再生するビデオストリームをダウンロードした後)に、端末は、コンテンツ配信ネットワークシステムのターゲットサーバおよび他のクライアントから、ビデオストリームをダウンロードすることができ、また、再生初期が終了した後に、端末は、他のクライアントだけから、ビデオストリームをダウンロードすることもできる。ここで、他のクライアントとは、他の端末にインストールされて、ビデオを再生するために使用可能なクライアントを指すことができる。したがって、S202を以下のいくつかのシーンに分けて説明することができる。
【0031】
シーン1において、再生初期には、端末は、コンテンツ配信ネットワークシステムのターゲットサーバだけから、ビデオストリームをダウンロードする。
【0032】
1つの実施例では、S202は、具体的には、端末がダウンロードするビデオストリームを少なくとも2つのビデオサブストリームに分割することと、コンテンツ配信ネットワークシステムのターゲットサーバから、少なくとも2つのビデオサブストリームをダウンロードすることとを実行する、ことを含んでもよい。例えば、端末は、0~30sまたは10~30sのビデオストリームを、4つのビデオサブストリームに分割し、コンテンツ配信ネットワークシステムのターゲットサーバから、4つのビデオサブストリームをダウンロードすることができる。
【0033】
1つの実施例では、端末は、予め設定された番号規則に従って、ダウンロード対象となるビデオストリームを少なくとも2つのサブストリームに分割する。この場合、端末は、コンテンツ配信ネットワークシステムのターゲットサーバから、ビデオサブストリームをダウンロードすることができる。
【0034】
例えば、ビデオストリームがライブビデオストリームである場合、ライブビデオストリームを4つのビデオサブストリームに分割し、具体的な分割は、以下の通りであり、即ち、
1)1番目のビデオサブストリームについて、ビデオスライス番号が4nであるビデオを、1番目のビデオサブストリームにスライス化する。例えば、ビデオスライス番号が0、4、8などであるビデオを、1番目のビデオサブストリームにスライス化する。端末は、コンテンツ配信ネットワークシステムのターゲットサーバから1番目のビデオサブストリームをダウンロードする。
【0035】
2)2番目のビデオサブストリームについて、ビデオスライス番号が4n+1であるビデオを、2番目のビデオサブストリームにスライス化する。例えば、ビデオスライス番号が1、5、9などであるビデオを、2番目のビデオサブストリームにスライス化する。端末は、コンテンツ配信ネットワークシステムのターゲットサーバから、2番目のビデオサブストリームをダウンロードする。
【0036】
3)3番目のビデオサブストリームについて、ビデオスライス番号が4n+2であるビデオを、3番目のビデオサブストリームにスライス化する。例えば、ビデオスライス番号が2、6、10などであるビデオを、3番目のビデオサブストリームにスライス化する。端末は、コンテンツ配信ネットワークシステムのターゲットサーバから、3番目のビデオサブストリームをダウンロードする。
【0037】
4)4番目のビデオサブストリームについて、ビデオスライス番号が4n+3であるビデオを、4番目のビデオサブストリームにスライス化する。例えば、ビデオスライス番号が3、7、11などであるビデオを、4番目のビデオサブストリームにスライス化する。端末は、コンテンツ配信ネットワークシステムのターゲットサーバから、4番目のビデオサブストリームをダウンロードする。
【0038】
注意すべきものとして、ダウンロードを行う過程において、1番目のビデオサブストリーム、2番目のビデオサブストリーム、3番目のビデオサブストリーム、および4番目のビデオサブストリームは、同時に、コンテンツ配信ネットワークシステムのターゲットサーバからダウンロードされ得る。ここで、上記のnは、0以上の正整数である。
【0039】
シーン2において、再生初期が終了した後、端末は、それぞれ、コンテンツ配信ネットワークシステムのターゲットサーバおよび他のクライアントから、ビデオストリームをダウンロードすることができる。
【0040】
1つの実施例では、端末は、クライアントを介して、少なくとも1つの他のクライアントと通信接続を確立する。S202は、具体的には、端末が他のクライアントから少なくとも1つのビデオサブストリームをダウンロードすることと、コンテンツ配信ネットワークシステムのターゲットサーバから、残りのビデオサブストリームをダウンロードすることとを実行する、ことを含んでもよい。これにより、ターゲットサーバの負荷圧力を低減させることができる。
【0041】
例えば、ビデオストリームがライブビデオストリームである場合、端末は、0~30sまたは10~30sのライブビデオストリームを、4つのビデオサブストリームに分割することができ、他のクライアントから2つのビデオサブストリームをダウンロードして、かつ、コンテンツ配信ネットワークシステムのターゲットサーバからの、当該2つのビデオサブストリームのダウンロードを停止することができる。また、端末は、コンテンツ配信ネットワークシステムのターゲットサーバから、他の2つのビデオサブストリームをダウンロードする。
【0042】
1つの実施例では、他のクライアントから少なくとも1つのビデオサブストリームをダウンロードするステップは、具体的には、端末が当該少なくとも2つのビデオサブストリームから、少なくとも1つのターゲットビデオサブストリームを選択することと、他のクライアントからターゲットビデオサブストリームをダウンロードすることとを実行する、ことを含んでもよい。当該方法は、また、他のクライアントからターゲットビデオサブストリームをダウンロードすると決定した場合、端末がターゲットサーバからターゲットビデオサブストリームをダウンロードすることを一時停止する、ことをさらに含む。これにより、ターゲットサーバの負荷圧力を低減させることができるだけでなく、ビデオサブストリームの重複ダウンロードが回避され得る。
【0043】
ここで、他のクライアントからターゲットビデオサブストリームをダウンロードする前に、当該ターゲットビデオサブストリームは、コンテンツ配信サーバからダウンロードされ得る。他のクライアントからターゲットビデオサブストリームをダウンロードすると決定した場合、端末は、ターゲットサーバからターゲットビデオサブストリームをダウンロードすることを一時停止する。
【0044】
1つの実施例では、端末は、他のクライアントと通信接続を確立し、かつ、少なくとも1つのターゲットビデオサブストリームを選択するとき、他のクライアントから当該ターゲットビデオサブストリームをダウンロードすることを決定することができる。この場合、端末は、一方で、他のクライアントからターゲットビデオサブストリームをダウンロードすることができ、他方で、ターゲットサーバからターゲットビデオサブストリームをダウンロードすることを一時停止することができる。
【0045】
1つの実施例では、端末は、予め設定された番号規則に従って、ダウンロード対象となるビデオストリームを分割し、即ち、少なくとも2つのビデオサブストリームに分割し、そのうちの少なくとも1つのビデオサブストリームを、他のクライアントからダウンロードし、残りのビデオサブストリームを、コンテンツ配信ネットワークシステムのターゲットサーバからダウンロードする。
【0046】
例えば、ビデオストリームがライブビデオストリームである場合、ライブビデオストリームを4つのビデオサブストリームに分割してダウンロードし、具体的には、以下に示すとおりであり、即ち、
1)1番目のビデオサブストリームについて、端末は、他のクライアントから1番目のビデオサブストリームをダウンロードし、かつ、コンテンツ配信ネットワークシステムのターゲットサーバから1番目のビデオサブストリームをダウンロードすることを一時停止する。
【0047】
2)2番目のビデオサブストリームについて、端末は、他のクライアントから2番目のビデオサブストリームをダウンロードし、かつ、コンテンツ配信ネットワークシステムのターゲットサーバから2番目のビデオサブストリームをダウンロードすることを一時停止する。
【0048】
3)3番目のビデオサブストリームについて、端末は、コンテンツ配信ネットワークシステムのターゲットサーバから、3番目のビデオサブストリームをダウンロードする。
【0049】
4)4番目のビデオサブストリームについて、端末は、コンテンツ配信ネットワークシステムのターゲットサーバから、4番目のビデオサブストリームをダウンロードする。
【0050】
シーン3において、再生初期が終了した後、端末は、他のクライアントだけから、ビデオストリームをダウンロードすることができる。
【0051】
1つの実施例では、端末は、クライアントを介して、少なくとも1つの他のクライアントと通信接続を確立し、S202は、具体的には、端末が他のクライアントから当該少なくとも2つのビデオサブストリームをダウンロードする、ことを含んでもよい。
【0052】
例えば、ビデオストリームがライブビデオストリームである場合、端末は、0~30sまたは10~30sのライブビデオストリームを4つに分割し、次に、他のクライアントから、4つのビデオサブストリームをダウンロードすることができる。
【0053】
1つの実施例では、端末は、予め設定された番号規則に従って、ダウンロード対象となるビデオストリームに対してサブストリーム分割を行い、即ち、少なくとも2つのビデオサブストリームに分割し、当該少なくとも2つのビデオサブストリームを他のクライアントからダウンロードする。
【0054】
例えば、ビデオストリームがライブビデオストリームである場合、ライブビデオストリームを4つのビデオサブストリームに分割してダウンロードし、具体的には、以下に示すとおりであり、即ち、
1)1番目のビデオサブストリームはについて、端末は、他のクライアントから1番目のビデオサブストリームをダウンロードし、かつ、コンテンツ配信ネットワークシステムのターゲットサーバから1番目のビデオサブストリームをダウンロードすることを一時停止する。
【0055】
2)2番目のビデオサブストリームについて、端末は、他のクライアントから2番目のビデオサブストリームをダウンロードし、かつ、コンテンツ配信ネットワークシステムのターゲットサーバから2番目のビデオサブストリームをダウンロードすることを一時停止する。
【0056】
3)3番目のビデオサブストリームについて、端末は、コンテンツ配信ネットワークシステムのターゲットサーバから3番目のビデオサブストリームをダウンロードし、かつ、コンテンツ配信ネットワークシステムのターゲットサーバから3番目のビデオサブストリームをダウンロードすることを一時停止する。
【0057】
4)4番目のビデオサブストリームについて、端末は、コンテンツ配信ネットワークシステムのターゲットサーバから4番目のビデオサブストリームをダウンロードし、かつ、コンテンツ配信ネットワークシステムのターゲットサーバから4番目のビデオサブストリームをダウンロードすることを一時停止する。
【0058】
S204で、少なくとも2つのビデオサブストリームの補足強化情報フレームから、ビデオスライス番号を抽出する。
【0059】
ここで、SEI(Supplemental Enhancement Information、補足強化情報)フレームは、付加情報をビデオストリームに追加してビデオストリームに統合するために使用される。
【0060】
1つの実施例では、端末は、各ビデオサブストリームから補足強化情報フレームを特定して、補足強化情報フレームからビデオスライス番号を抽出する。
【0061】
S206で、抽出されたビデオスライス番号に基づいて、少なくとも2つのビデオサブストリームのうちの相応のビデオサブストリームがビデオスライスを欠失していることを決定する。
【0062】
1つの実施例では、S206は、具体的に、端末が当該少なくとも2つのビデオサブストリームがビデオスライス番号を欠失しているかどうかを判断することと、ビデオスライス番号が欠失されているビデオサブストリームが少なくとも1つ存在すれば、欠失されているビデオスライス番号に従って、少なくとも1つのビデオサブストリームが欠失しているビデオスライスを決定することとを、実行することを含んでもよい。
【0063】
1つの実施例では、端末がビデオストリームを個別的にダウンロードする場合、各ビデオサブストリームは、通常、ビデオスライス番号の大きさ順に従ってダウンロードされる。したがって、各ダウンロードされたビデオサブストリームにおけるビデオスライス番号は、連続性があり、大きさの順がある。例えば、1番目のビデオサブストリームのビデオスライス番号は、0、4、8、12、…、4nである。
【0064】
1つの実施例では、端末は、ビデオスライス番号の連続性に従って、少なくとも2つのビデオサブストリームのうち、相応のビデオサブストリームがビデオスライス番号を欠失しているかどうかを決定し、そうであれば、相応のビデオサブストリームが完全なデータストリームではないと決定し、S208を実行する。例えば、ダウンロードされた1番目のビデオサブストリームが0、4、8、16、…、4nであれば、ビデオスライスの連続性から分かるように、ダウンロードされた1番目のビデオサブストリームが不完全であり、番号が12であるビデオスライスが欠失されるため、番号が12であるビデオスライスを直ちにダウンロードする必要がある。
【0065】
S208で、相応のビデオサブストリームに対応するビデオソースから、欠失されているビデオスライスをダウンロードする。
【0066】
ここで、当該ビデオソースは、コンテンツ配信ネットワークシステムにおけるターゲットサーバであってもよく、他のクライアントであってもよい。
【0067】
1つの実施例では、端末は、欠失されているビデオスライスに対応するビデオソースを決定し、当該ビデオソースから、欠失されているビデオスライスをダウンロードする。
【0068】
具体的には、端末は、欠失されているビデオスライスに対応するのがコンテンツ配信ネットワークシステムにおけるターゲットサーバであると決定した場合、欠失されているビデオスライス番号が付けられているダウンロード要求を、当該ターゲットサーバに送信し、当該ターゲットサーバから、欠失されているビデオスライスをダウンロードする。端末は、欠失されているビデオスライスに対応するのが他のクライアントであると決定した場合、欠失されているビデオスライス番号が付けられているダウンロード要求を、当該他のクライアントに送信し、当該他のクライアントから、欠失されているビデオスライスをダウンロードする。
【0069】
S210で、ダウンロードされたビデオスライスと、少なくとも2つのビデオサブストリームとを、ビデオスライス番号の順序に従って再生する。
【0070】
1つの実施例では、端末は、ダウンロードされたビデオスライスと、少なくとも2つのビデオサブストリームとを、ビデオスライス番号の順序に従ってクライアントにロードすることで、クライアントによりビデオ再生を行う。ここで、当該クライアントは、端末にインストールされているアプリケーションプログラムであり、具体的には、ビデオクライアントであってもよい。
【0071】
1つの実施例では、S210は、具体的には、端末がダウンロードされたビデオスライスと、少なくとも2つのビデオサブストリームとを保存することと、保存されているビデオスライスと、各ビデオサブストリームとを、ビデオスライス番号の順序に従ってクライアントに順次にロードして、相応の再生対象となるビデオストリームを得ることと、再生対象となるビデオストリームにおける各ビデオスライスを順次にレンダリングして、再生対象となる画像シーケンスを得ることと、クライアントにより再生対象となる画像シーケンスを再生することとを実行することを含んでもよい。
【0072】
1つの実施例では、端末は、レンダリングツールを呼び出して、再生対象となるビデオストリームにおける各ビデオスライスをレンダリングして、対応する再生対象となる画像シーケンスを得て、クライアントにより当該再生対象となる画像シーケンスを再生する。
【0073】
例えば、端末は、WebGL(Web Graphics Library、ウェブグラフィックライブラリ)、またはOpenGL ES(Open Graphics Library for Embedded Systems、組み込みシステム用のオープングラフィックライブラリ)、または、OpenGL ES2.0バージョンを呼び出して、再生対象となるビデオストリームにおける各ビデオスライスをレンダリングして、再生対象となる画像シーケンスを得る。
【0074】
上記の実施例では、少なくとも2つのチャネルを介してビデオストリームを取得することにより、サーバの圧力を低減させることができる。各ビデオサブストリームの補足強化情報フレームから、ビデオスライス番号を抽出して、抽出されたビデオスライス番号に基づいて、当該少なくとも2つのビデオサブストリームのうちのいずれのビデオサブストリームがビデオスライスを欠失しているかどうかを決定することができ、これにより、対応するビデオソースから、欠失されているビデオスライスが迅速に補足され、ビデオ再生の遅延時間を大幅に低減させることができる。
【0075】
1つの実施例では、
図3に示すように、S202の前に、当該方法は、さらに、以下のことを含み、即ち、
S302で、ビデオ再生コマンドを取得する。
【0076】
ここで、当該ビデオ再生コマンドには、ビデオのビデオ識別子が付けられてもよい。例えば、ユーザがあるスポーツ競技の決勝戦を視聴したい場合、当該ビデオ再生コマンドには、当該スポーツ競技の決勝戦の識別子が付けられている。
【0077】
1つの実施例では、端末は、クライアントを起動した後、ビデオ再生のエントリページを表示し、入力された、再生対象となるビデオ識別子に対するトリガ操作を検出した場合、ビデオ再生コマンドを生成し、かつ、コンテンツ配信ネットワークシステムにおけるターゲットサーバにビデオ再生コマンドを送信し、および、表示されたエントリページをビデオ再生ページに切り替える。
【0078】
S304で、ビデオ再生コマンドに応答して、コンテンツ配信ネットワークシステムのターゲットサーバから、予め設定された時間範囲内の完全なビデオストリームをダウンロードする。
【0079】
ここで、当該予め設定された時間範囲内の完全なビデオストリームと、上記の少なくとも2つのビデオサブストリームは、いずれも、同じビデオのデータストリームに属するものである。完全なビデオストリームとは、予め設定された時間範囲内の全てのビデオデータを指し、例えばビデオの最初の5秒内のビデオデータを指す。
【0080】
1つの実施例では、端末が、ビデオ再生コマンドを取得した場合、コンテンツ配信ネットワークシステムのターゲットサーバにビデオ再生コマンドを送信し、これにより、当該ターゲットサーバは、ビデオ再生コマンドにおけるビデオ識別子に基づいて、対応する予め設定された時間範囲内の完全なビデオストリームを取得し、次に、当該完全なビデオストリームをクライアントに送信する。
【0081】
例えば、ビデオストリームがライブビデオストリームであることを例とし、ユーザは、あるスポーツ競技の決勝戦の生放送のi分目に視聴し開始すると、コンテンツ配信ネットワークシステムのターゲットサーバから、i分目~i+1分目の完全なライブビデオストリームをダウンロードすることができ、これにより、クライアントは、当該決勝戦ビデオを安定的に再生することができる。
【0082】
S306で、クライアントにより、当該完全なビデオストリームを再生する。
【0083】
1つの実施例では、端末は、レンダリングツールを呼び出して、当該完全なビデオストリームにおける各ビデオスライスをレンダリングして、対応する再生対象となる画像シーケンスを得て、クライアントにより当該再生対象となる画像シーケンスを再生する。
【0084】
例えば、ビデオストリームがライブビデオストリームであることを例とし、端末は、WebGL、またはOpenGL ES、またはOpenGL ES2.0バージョンを呼び出して、当該完全なライブビデオストリームにおける各ビデオスライスをレンダリングして、再生対象となる画像シーケンスを得る。
【0085】
S308で、クライアントが完全なビデオストリームを再生する過程において安定的な再生状態に達した場合、少なくとも2つのチャネルを介して、予め設定された時間範囲外のビデオストリームをダウンロードする。
【0086】
ここで、安定的な再生状態とは、単位再生時間内に再生するビデオのフレーム数が予め設定されたフレームレートに対応するビデオフレーム数と同じであり、それにより、ビデオをスムーズに再生させ、フリーズという現象が発生しないようにすることを指すことができる。例えば、フレームレートが24fpsであるビデオに対して、1秒内に24フレームを再生する必要があり、再生する時に毎秒に24フレームの再生速度に達することができる場合、フリーズという現象が発生せず、安定した再生状態にあるということを示し、ネットワーク問題が発生するためタイムリーにダウンロードすることができず、または復号速度が遅すぎ、それにより、1秒内に再生されたフレームの数が24フレームよりも少ないと、フリーズという現象が発生し、不安定な再生状態にあるということを示す。
【0087】
上記のS308については、上記の実施例におけるS202を参照することができる。
【0088】
上記の実施例では、ビデオ再生の初期に、まず、コンテンツ配信ネットワークシステムのターゲットサーバから、1段落の完全なビデオストリームをダウンロードして再生し、これにより、フリーズという状況の発生が回避され、再生が安定した場合、ビデオストリームをストリーム分けてダウンロードし開始し、これによって、サーバの圧力を低減させることができる。
【0089】
1つの実施例では、
図4に示すように、
図4は、本願によって提供されるビデオ処理方法であり、当該方法を
図1におけるトランスコーディングサーバ(サーバと略称され得る)108に適用することを例にして説明し、以下のステップを含み、即ち、
S402で、ビデオ収集システムによってプッシュされたターゲットビデオフォーマットのオリジナルビデオストリームを受信する。
【0090】
ここで、オリジナルビデオストリームは、オリジナルライブビデオストリーム、録画ビデオストリーム、または他の非ライブ形式のビデオストリームであってもよい。後続の実施例では、オリジナルビデオストリームがオリジナルライブビデオストリームとし、かつ、ビデオスライスが1つのビデオフレームによって構成されることを例にして説明する。
【0091】
ターゲットビデオフォーマットは、FLVストリーミングメディアフォーマット、RMVBフォーマット、MPEGフォーマット、およびAVIフォーマットなどを含んでもよいが、これらに限定されない。ビデオ収集システムは、専用のビデオ収集デバイスであってもよく、例えば、スポーツ試合の生放送時のビデオ収集デバイス、または記者会見の生放送時のビデオ収集デバイス、あるいはゲームの生放送時にまたは他のネットワークによる生放送時に使用される端末デバイスなどである。後続の実施例では、オリジナルビデオストリームがFLVストリーミングメディアフォーマットのビデオストリームであることを例にして説明する。
【0092】
1つの実施例では、トランスコーディングサーバは、ビデオ収集システムと通信接続を確立し、次に、ビデオ収集システムによってリアルタイムトランスポートプロトコルに基づいて送信されたオリジナルビデオストリームを受信する。ここで、リアルタイムトランスポートプロトコルは、RTMP(Real Time Messaging Protocol、リアルタイムメッセージトランスポートプロトコル)、HLS(Http Live Streaming、HTTPベースのストリーミングメディアのリアルタイムトランスポート)プロトコル、WebRTC(Web Real-Time Communication、Webサイトからのリアルタイム通信)プロトコルであってもよい。
【0093】
S404で、オリジナルビデオストリームに対してスライス処理を順次に行って、対応するビデオスライスを得る。
【0094】
1つの実施例では、トランスコーディングサーバは、オリジナルビデオストリームに対してトランスコーディングを順次に行い、トランスコーディングを行う過程においてスライス処理を行って、対応するビデオスライスを得る。
【0095】
S406で、得られたビデオスライスを番号付けて、ビデオスライス番号を得る。
【0096】
1つの実施例では、トランスコーディングサーバは、予め設定された番号規則に基づいて、得られたビデオスライスを番号付けて、ビデオスライス番号を得る。
【0097】
S408で、ビデオスライス番号を補足強化情報フレームに保存して、スライスされたターゲットビデオフォーマットのビデオストリームを得る。
【0098】
ここで、オリジナルビデオストリームがトランスコーディングされてスライスされた後、得られたビデオストリームのフォーマットは、オリジナルビデオストリームと同じであり、依然としてターゲットビデオフォーマットである。後続の実施例では、ビデオストリームがFLVストリーミングメディアフォーマットのビデオストリームであることを例にして説明する。
【0099】
SEI(Supplemental Enhancement Information、補足強化情報)フレームは、付加情報をビデオストリームに追加してビデオストリームに統合するために使用される。
【0100】
S410で、ターゲットサーバがクライアントによって送信されたビデオ再生コマンドに基づいて、対応するビデオストリームを返信するように、ビデオストリームをターゲットサーバに送信する。
【0101】
1つの実施例では、トランスコーディングサーバは、ビデオストリームをコンテンツ配信ネットワークシステムのターゲットサーバに送信し、これにより、ターゲットサーバは、クライアントから送信されたビデオ再生コマンドに基づいて対応するビデオストリームを返信する。
【0102】
1つの実施例では、トランスコーディングサーバは、リアルタイムトランスポートプロトコルに基づいて、コンテンツ配信ネットワークシステムのターゲットサーバに、スライスされたビデオストリームを送信し、これにより、ターゲットサーバは、クライアントによって送信されたビデオ再生コマンドに基づいて、対応するビデオストリームを返信する。
【0103】
ここで、クライアントは、ターゲットサーバから、少なくとも2つのチャネルを介してビデオストリームをダウンロードして、少なくとも2つのビデオサブストリームを得ることができ、ビデオサブストリームにビデオスライスの欠失が発生すると、欠失されているビデオスライスを即時に補足することができる。そして、当該クライアントは、他のクライアントからビデオサブストリームをダウンロードすることもできる。欠失されているビデオスライスを補足し、かつ、他のクライアントからビデオサブストリームをダウンロードするプロセスについては、上記の実施例におけるS202~S210を参照することができる。
【0104】
例えば、P2Pスライスストリーミングのビデオ再生コマンドを受信すると、ターゲットサーバは、ビデオストリームを複数のビデオサブストリームに分けてクライアントに送信することができ、非P2Pスライスストリーミングのビデオ再生コマンドを受信すると、ターゲットサーバは、ビデオストリームをクライアントに直接に送信することができる。
【0105】
また、クライアントは、他のクライアントと通信接続を確立し、かつ、他のクライアントから、少なくとも1つのビデオサブストリームを要求する場合、ターゲットサーバは、当該少なくとも1つのビデオサブストリームをクライアントに送信することを一時停止する。
【0106】
上記の実施例では、ビデオ収集システムによってプッシュされたオリジナルビデオストリームに対してスライス処理を行い、得られたビデオスライスを番号付けて、得られたビデオスライス番号を補足強化情報フレームに保存することにより、クライアントは、補足強化情報フレームにおけるビデオスライス番号を使用して、ビデオスライスの欠失状況が発生するかどうかを決定することができ、これにより、クライアントは、欠失されているビデオスライスをタイムリーに補足することができ、これによって、クライアントがビデオを再生する際の遅延時間を低減させるのに有利である。
【0107】
1つの実施例では、
図5に示すように、ビデオ処理方法は、さらに、以下を含み、即ち、
S502で、ビデオ収集システムは、ターゲットビデオフォーマットのオリジナルビデオストリームをトランスコーディングサーバにプッシュする。
【0108】
S504で、トランスコーディングサーバは、オリジナルビデオストリームを受信した場合、オリジナルビデオストリームに対してスライス処理を順次に行って、対応するビデオスライスを得る。
【0109】
S506で、トランスコーディングサーバは、得られたビデオスライスを番号付けて、ビデオスライス番号を得る。
【0110】
S508で、トランスコーディングサーバは、ビデオスライス番号を補足強化情報フレームに保存して、スライスされたターゲットビデオフォーマットのビデオストリームを得る。
【0111】
S510で、トランスコーディングサーバは、ビデオストリームをコンテンツ配信ネットワークシステムのターゲットサーバ(即ち、CDNサーバ)に送信し、これにより、ターゲットサーバは、クライアントから送信されたビデオ再生コマンドに基づいて、対応するビデオストリームを返信する。
【0112】
S512で、端末は、ビデオ再生コマンドを取得する。
【0113】
S514で、端末は、ビデオ再生コマンドに応答して、コンテンツ配信ネットワークシステムのターゲットサーバから、予め設定された時間範囲内の完全なビデオストリームをダウンロードする。
【0114】
S516で、端末は、クライアントにより、完全なビデオストリームを再生する。
【0115】
S518で、端末は、クライアントが完全なビデオストリームを再生する過程において安定的な再生状態に達した場合、少なくとも2つのチャネルを介してビデオストリームのダウンロードを行って、少なくとも2つのビデオサブストリームを得る。
【0116】
1つの実施例では、S518は、具体的には、端末がダウンロードするビデオストリームを少なくとも2つのビデオサブストリームに分割することと、コンテンツ配信ネットワークシステムのターゲットサーバから、少なくとも2つのビデオサブストリームをダウンロードすることとを実行する、ことを含んでもよい。
【0117】
1つの実施例では、当該方法は、端末がクライアントを介して少なくとも1つの他のクライアントと通信接続を確立すること、をさらに含む。S518は、具体的には、端末が他のクライアントから少なくとも1つのビデオサブストリームをダウンロードするステップS518aと、端末がコンテンツ配信ネットワークシステムのターゲットサーバから残りのビデオサブストリームをダウンロードするステップS518bと、を含んでもよい。
【0118】
1つの実施例では、他のクライアントから少なくとも1つのビデオサブストリームをダウンロードする上記のステップは、具体的には、端末が当該少なくとも2つのビデオサブストリームから、少なくとも1つのターゲットビデオサブストリームを選択することと、他のクライアントからターゲットビデオサブストリームをダウンロードすることとを実行する、ことを含んでもよい。当該方法は、端末が、他のクライアントからターゲットビデオサブストリームをダウンロードすると決定した場合、ターゲットサーバからターゲットビデオサブストリームをダウンロードすることを一時停止する、ことをさらに含む。
【0119】
S520で、端末は、各ビデオサブストリームの補足強化情報フレームから、ビデオスライス番号を抽出する。
【0120】
S522で、端末は、抽出されたビデオスライス番号に基づいて、相応のビデオサブストリームがビデオスライスを欠失していることを決定する。
【0121】
1つの実施例では、S522は、具体的に、端末が当該少なくとも2つのビデオサブストリームにビデオスライス番号が欠失しているかどうかを判断することと、ビデオスライス番号が欠失している少なくとも1つのビデオサブストリームが存在すれば、欠失されているビデオスライス番号に基づいて、少なくとも1つのビデオサブストリームにおいて欠失されているビデオスライスを決定することとを実行する、ことを含んでもよい。
【0122】
S524で、端末は、相応のビデオサブストリームに対応するビデオソースから、欠失されているビデオスライスをダウンロードする。
【0123】
S526で、端末は、ダウンロードされたビデオスライスと、少なくとも2つのビデオサブストリームとを保存する。
【0124】
S528で、端末は、保存されているビデオスライスと、各ビデオサブストリームとを、ビデオスライス番号の順序に従ってクライアントに順次に書き込んで、相応の再生対象となるビデオストリームを得る。
【0125】
ここで、クライアントへの書き込みとは、クライアントにロードすることを指し、例えば、保存されているビデオスライスと、各ビデオサブストリームとを、ビデオスライス番号の順序に従ってクライアントに順次にロードする。
【0126】
S530で、端末は、再生対象となるビデオストリームにおける各ビデオスライスを順次にレンダリングして、再生対象となる画像シーケンスを得る。
【0127】
S532で、端末は、クライアントにより、再生対象となる画像シーケンスを再生する。
【0128】
ここで、上記のオリジナルビデオストリームとビデオストリームは、いずれも、FLVストリーミングメディアフォーマットのビデオストリームであってもよい。
【0129】
一例として、オリジナルビデオストリームおよびライブビデオストリームがFLVストリーミングメディアフォーマットのビデオストリームを例に挙げて説明し、以下の通りであり、即ち、
図6に示すように、
図6は、FLVストリーミングメディアフォーマットのオリジナルライブビデオストリームに対してP2Pスライスを行うフロー概略図である。
【0130】
1)、アナウンサーは、ビデオ収集システム(例えば、コンピュータまたは携帯電話など)によって、トランスコーディングサーバにプッシュストリーミングを実行する。
【0131】
また、ユーザの設定またはシステムの構成要求に基づいて自動的なストリーミングを完了することもできる。ここで、ストリーミングとは、オリジナルライブビデオストリームをトランスコーディングサーバにプッシュすることを指す。
【0132】
2)、スライスを行い、トランスコーディングサーバは、ビデオスライスのvideo tag(ビデオタグ)を番号付けて、かつ番号付け情報(即ち、上記の実施例におけるビデオスライス番号)をSEIフレームに保存する。
【0133】
3)、スライスされたライブビデオストリームを得て、次に、当該ライブビデオストリームをライブCDNサーバ(即ち、上記の実施例におけるコンテンツ配信ネットワークシステムのターゲットサーバ)に送信する。
【0134】
ここで、当該ライブビデオストリームは、依然として、標準的なFLVストリーミングメディアフォーマットを保持している。
【0135】
4)、P2Pクライアントは、CDNサーバにP2Pスライスストリーミング要求(P2Pスライスのビデオ再生コマンド)を送信し、一般的なクライアントは、flv要求(非P2Pスライスのビデオ再生コマンド)を送信する。P2Pスライスを実行した後に得られたライブビデオストリームは、依然として、標準的なFLVストリーミングメディアフォーマットを保持しているため、CDNサーバは、この2種類の要求を受信した場合、統合的にバック・トゥ・ソース(Back-to-source)を実行することができ、即ち、この2種類の要求を受信した場合、異なるビデオフォーマットのライブビデオストリームを取得する必要がなく、トランスコーディングサーバから、スライスされたライブビデオストリームを直接に取得することができる。
【0136】
図7に示すように、
図7は、ライブビデオストリーム伝送のフローチャートであり、具体的には、以下の通りであり、即ち、
(1)生放送を開始する前に、端末は、CDNサーバから1段落の固定時間長さの完全なライブデータストリーム(対応するスライス番号は、0、1、2、3、4、5…であり)をダウンロードし、次に、安定的な放送状態に達した場合にステップ(2)を実行するまでに、再生を行う。
【0137】
例えば、まず、30sの完全なライブビデオストリームをダウンロードし、
図7に示すように、ステップ1.1で、30s以内の完全なライブビデオストリームをダウンロードし、ステップ1.2で、当該完全なライブビデオストリームから、ビデオストリームタグを解析し、ステップ1.3で、当該完全なライブビデオストリームから、ビデオスライスを解析し、ステップ1.3を完了した場合にステップ5を実行することで、ビデオスライスを処理し、ステップ6で、ダウンロードされたビデオスライスを記憶し、ステップ7で、クライアントにビデオスライスを書き込み、ステップ8で、クライアントのプレーヤーにより、書き込まれたビデオスライスを再生する。
【0138】
(2)安定的な再生状態に達した場合に、端末は、複数のチャネルを介して、ビデオストリームのダウンロードを行う。
【0139】
例えば、ビデオストリームを4つのビデオサブストリームに分割する。
【0140】
【表1】
ここで、端末は、チャンネル別にライブビデオストリームのダウンロードを開始するとき、全部、CDNサーバからダウンロードすることができ、具体的には、以下の通りであり、即ち、ステップ2.1で、CDNサーバからビデオサブストリームをダウンロードし、ステップ2.2で、ダウンロードされたビデオサブストリームから、ビデオストリームタグを解析し、ステップ2.3で、ダウンロードされたビデオサブストリームから、ビデオスライスを解析し、そして、ステップ5を実行する。
【0141】
他のクライアントにライブビデオストリームがある場合、他のクライアントからライブビデオストリームをダウンロードすることができ、具体的には、ステップ(3)のとおりである。
【0142】
(3)端末は、クライアントを介して同じライブビデオを再生する他のクライアントと通信接続を確立して、当該他のクライアントから1つのビデオサブストリームを要求する。
【0143】
図7に示すように、端末は、他のクライアントにビデオサブストリーム1(1、5、9…)を要求し、具体的なプロセスについては、ステップ2.1~2.3を参照する。また、端末は、他のクライアントにビデオサブストリーム1を要求すると、CDNサーバからビデオサブストリーム1をダウンロードすることを停止する。
【0144】
(4)ビデオスライスを処理し、端末は、データを受信するとき、SEIフレームにおける番号情報を取得し、データ番号の連続性に基づいて、ライブビデオストリームの伝送の完全性を判断することができ、これにより、欠失されているビデオスライスがタイムリーにダウンロードされる。
【0145】
あるビデオサブストリームがビデオスライスを欠失していると決定した場合、ビデオスライスが欠失されているビデオサブストリームに対応するCDNサーバまたは他のクライアントから、欠失されているビデオスライスをダウンロードし、具体的なプロセスは、
図7に示すとおりであり、即ち、ステップ3.1で、ビデオスライスが欠失されているビデオサブストリームに対応するCDNサーバまたは他のクライアントから、欠失されているビデオスライスをダウンロードし、ステップ3.2で、当該ビデオスライスに対応するビデオストリームタグを解析し、ステップ3.3で、当該ビデオスライスを解析し、解析を完了した後、ステップ5を実行する。
【0146】
例えば、端末は、ビデオサブストリーム0を要求し、実際にビデオサブストリーム(0、4、8、16…)を受信し、スライス16を受信すると、受信したビデオサブストリームが完全ではなく、番号12のビデオスライスが欠失されていると判断することができ、ビデオスライス12を直ちにダウンロードする。このようにして、P2Pウィンドウが省略され、遅延を低減させ、超低遅延のP2Pを実現する。
【0147】
(5)ダウンロードされたビデオスライスと、各ライブビデオストリームとを、ローカルに記憶して、ビデオスライス番号の順序に従ってプレーヤーに順次に書き込み、これにより、プレーヤーは、再生を行う。
【0148】
(6)端末は、クライアントを介して他のクライアントと通信接続を確立し、他のクライアントは、ビデオサブストリームを送信するとき、番号の順序に基づいて、相応のビデオサブストリームのビデオスライスを伝送する。
【0149】
また、ある他のクライアント(または自端クライアント)は、複数の他のクライアントからの要求を同時に受信する可能性があり、当該ある他のクライアント(または自端クライアント)は、それぞれ、要求を送信する他のクライアントに、番号の順序に従ってビデオスライスを送信する。
【0150】
1つの実施例では、WebRTCプロトコルに基づくウェブページは、ビデオを再生するとき、WebRTCサーバからビデオサブストリームをダウンロードして再生し、具体的なステップは、
図7に示すとおりであり、即ち、ステップ4.1で、WebRTCサーバからビデオサブストリームをダウンロードし、ステップ4.2で、ビデオスライスを合成し、ステップ4.3で、ビデオスライスを解析し、解析を完了した後、ステップ5を実行し、次にステップ8を実行し、ダウンロードされたビデオスライスを記憶することで、ウェブページに再生する。
【0151】
上記実施例により、フリーズということを発生しない共にP2Pの共有レートを保証する前提で、より低い遅延のP2Pビデオライブが実現され得て、従来のP2Pビデオライブ技術と比べて、遅延を10s以上低減させることができる。
【0152】
理解すべきものとして、
図2~
図4のフローチャートにおける各ステップは、矢印に示すような順番に従って順次に実行されるが、これらのステップが、必ずしも矢印に示すような順番に従って順次に実行されない。本明細書に明示的に示されない限り、これらのステップの実行は、厳密な順序に限定されず、これらのステップが、他の順序で実行されてもよい。また、
図2~4における少なくとも一部のステップは、複数のステップまたは複数の段階を含んでもよいが、これらのステップまたは段階が、必ずしも同一の時刻に実行して完了されず、異なる時刻に実行されてもよい、これらのステップまたは段階の実行順序も必ずしも順次に行われず、他のステップまたは他のステップにおけるステップまたは段階の少なくとも一部と共に順番にまたは交互に実行されてもよい。
【0153】
1つの実施例では、
図8に示すように、
図8は、本願の実施例によって提供されるビデオ処理装置の構成のブロック図であり、この装置は、ソフトウェアモジュールまたはハードウェアモジュール、あるいはこの両者の組み合わせを使用してコンピュータデバイスの一部となることができ、この装置は、第1ダウンロードモジュール802、抽出モジュール804、決定モジュール806、第2ダウンロードモジュール808、および再生モジュール810を含み、ここで、
第1ダウンロードモジュール802は、少なくとも2つのチャネルを介してビデオサブストリームを取得して、少なくとも2つのチャネルと1対1に対応する少なくとも2つのビデオサブストリームを得るために使用される。
【0154】
抽出モジュール804は、少なくとも2つのビデオサブストリームの補足強化情報フレームから、ビデオスライス番号を抽出するために使用される。
【0155】
決定モジュール806は、抽出されたビデオスライス番号に基づいて、少なくとも2つのビデオサブストリームのうちの相応のビデオサブストリームがビデオスライスを欠失していることを決定するために使用される。
【0156】
第2ダウンロードモジュール808は、相応のビデオサブストリームに対応するビデオソースから、欠失されているビデオスライスをダウンロードするために使用される。
【0157】
再生モジュール810は、ダウンロードされたビデオスライスと、少なくとも2つのビデオサブストリームとを、ビデオスライス番号の順序に従って再生するために使用される。
【0158】
1つの実施例では、第1ダウンロードモジュール802は、ダウンロードするビデオストリームを少なくとも2つのビデオサブストリームに分割することと、コンテンツ配信ネットワークシステムのターゲットサーバから、少なくとも2つのチャネルを介して、少なくとも2つのビデオサブストリームをそれぞれダウンロードすることと、を実行するために使用される。
【0159】
1つの実施例では、
図9に示すように、この装置は、接続モジュール812をさらに含み、ここで、
第1ダウンロードモジュール802は、さらに、他のクライアントから少なくとも1つのビデオサブストリームをダウンロードすることと、ターゲットサーバから残りのビデオサブストリームをダウンロードすることと、を実行するために使用される。
【0160】
1つの実施例では、第1ダウンロードモジュール802は、各ビデオサブストリームから、少なくとも1つのターゲットビデオサブストリームを選択することと、他のクライアントからターゲットビデオサブストリームをダウンロードすることと、他のクライアントからターゲットビデオサブストリームをダウンロードすると決定された場合、ターゲットサーバからターゲットビデオサブストリームをダウンロードすることを一時停止することと、を実行する。
【0161】
1つの実施例では、決定モジュール806は、当該少なくとも2つのビデオサブストリームがビデオスライス番号を欠失しているかどうかを判断することと、ビデオスライス番号が欠失されているビデオサブストリームが少なくとも1つ存在すれば、欠失されているビデオスライス番号に従って、少なくとも1つのビデオサブストリームが欠失しているビデオスライスを決定することと、を実行するために使用される。
【0162】
1つの実施例では、再生モジュール810は、ダウンロードされたビデオスライスと、少なくとも2つのビデオサブストリームとを保存することと、保存されているビデオスライスと、各ビデオサブストリームとを、ビデオスライス番号の順序に従ってクライアントに順次にロードして、相応の再生対象となるビデオストリームを得ることと、再生対象となるビデオストリームにおける各ビデオスライスを順次にレンダリングして、再生対象となる画像シーケンスを得ることと、クライアントにより再生対象となる画像シーケンスを再生することと、を実行するために使用される。
【0163】
1つの実施例では、ビデオストリームは、ビデオ収集システムによってプッシュされたオリジナルビデオストリームに対してスライス処理をトランスコーディングサーバが順次に行って得られたものであり、ビデオスライス番号は、スライスされた各ビデオスライスをトランスコーディングサーバが番号付けて得られたものである。
【0164】
1つの実施例では、オリジナルビデオストリームとビデオストリームは、いずれも、FLVストリーミングメディアフォーマットのビデオストリームである。
【0165】
上記の実施例では、少なくとも2つのチャネルを介してビデオストリームをダウンロードすることにより、サーバの圧力を低減させることができる。各ビデオサブストリームの補足強化情報フレームから、ビデオスライス番号を抽出して、抽出されたビデオスライス番号に基づいて、当該少なくとも2つのビデオサブストリームのうちのいずれのビデオサブストリームがビデオスライスを欠失しているかどうかを決定することができ、これにより、対応するビデオソースから、欠失されているビデオスライスが迅速に補足され、ビデオ再生の遅延時間を大幅に低減させることができる。
【0166】
1つの実施例では、
図9に示すように、この装置は、取得モジュール814をさらに含み、ここで、
取得モジュール814は、少なくとも2つのチャネルを介してビデオストリームのダウンロードを行う前に、ビデオ再生コマンドを取得するために使用される。
【0167】
第1ダウンロードモジュール802は、さらに、ビデオ再生コマンドに応答して、コンテンツ配信ネットワークシステムのターゲットサーバから、予め設定された時間範囲内の完全なビデオストリームをダウンロードするために使用される。
【0168】
再生モジュール810は、さらに、クライアントにより完全なビデオストリームを再生するために使用される。
【0169】
第1ダウンロードモジュール802は、さらに、クライアントが完全なビデオストリームを再生する過程において安定的な再生状態に達した場合、少なくとも2つのチャネルを介してビデオストリームのダウンロードを行うために使用される。
【0170】
上記の実施例では、ビデオ再生の初期に、まず、コンテンツ配信ネットワークシステムのターゲットサーバから、1段落の完全なビデオストリームをダウンロードして再生し、これにより、フリーズという状況の発生が回避され、再生が安定した場合、ビデオストリームをストリーム分けてダウンロードし開始し、これによって、サーバの圧力を低減させることができる。
【0171】
1つの実施例では、
図10に示すように、
図10は、本願の実施例によって提供されるビデオ処理装置の構成のブロック図であり、この装置は、ソフトウェアモジュールまたはハードウェアモジュール、あるいはこの両者の組み合わせを使用してコンピュータデバイスの一部となることができ、この装置は、受信モジュール1002、処理モジュール1004、番号付けモジュール1006、保存モジュール1008、および送信モジュール1010を含み、ここで、
受信モジュール1002は、ビデオ収集システムによってプッシュされたターゲットビデオフォーマットのオリジナルビデオストリームを受信するために使用される。
【0172】
処理モジュール1004は、オリジナルビデオストリームに対してスライス処理を順次に行って、対応するビデオスライスを得るために使用される。
【0173】
番号付けモジュール1006は、得られたビデオスライスを番号付けて、ビデオスライス番号を得るために使用される。
【0174】
保存モジュール1008は、ビデオスライス番号を補足強化情報フレームに保存して、スライスされたターゲットビデオフォーマットのビデオストリームを得るために使用される。
【0175】
送信モジュール1010は、ターゲットサーバがクライアントによって送信されたビデオ再生コマンドに基づいて、対応するビデオストリームを返信するように、ビデオストリームをコンテンツ配信ネットワークシステムのターゲットサーバに送信するために使用される。
【0176】
1つの実施例では、オリジナルビデオストリームとビデオストリームは、いずれも、FLVストリーミングメディアフォーマットのビデオストリームである。
【0177】
上記の実施例では、ビデオ収集システムによってプッシュされたオリジナルビデオストリームに対してスライス処理を行い、得られたビデオスライスを番号付けて、得られたビデオスライス番号を補足強化情報フレームに保存することにより、クライアントは、補足強化情報フレームにおけるビデオスライス番号を使用して、ビデオスライスの欠失状況が発生するかどうかを決定することができ、これにより、クライアントは、欠失されているビデオスライスをタイムリーに補足することができ、これによって、クライアントがビデオを再生する際の遅延時間を低減させるのに有利である。
【0178】
ビデオ処理装置に対する具体的な限定については、上述したビデオ処理方法に対する限定を参照することができ、ここでは、これ以上説明しない。上記のビデオ処理装置における各モジュールは、ソフトウェア、ハードウェア、およびそれらの組み合わせによって、全部または一部実現され得る。上記の各モジュールは、ハードウェア形式で、コンピュータデバイスに内蔵されてもよく、コンピュータデバイスから独立されてもよいし、ソフトウェア形式で、コンピュータデバイスにおけるメモリに記憶されてもよく、これにより、プロセッサは、以上の各モジュールに対応する動作を呼び出して実行する。
【0179】
1つの実施例では、コンピュータデバイスが提供され、当該コンピュータデバイスは、端末であってもよく、その内部構成図は、
図11に示すようにしてもよい。当該コンピュータデバイスには、システムバスによって接続されているプロセッサ、メモリ、通信インタフェース、ディスプレイおよび入力装置が含まれる。ここで、当該コンピュータデバイスのプロセッサは、計算および制御能力を提供するために使用される。当該コンピュータデバイスのメモリには、不揮発性記憶媒体、内部メモリが含まれる。当該不揮発性記憶媒体には、オペレーティングシステムおよびコンピュータプログラムが記憶されている。当該内部メモリは、不揮発性記憶媒体におけるオペレーティングシステムおよびコンピュータプログラムの実行に対して環境を提供する。当該コンピュータデバイスの通信インタフェースは、外部の端末と有線または無線方式で通信するために使用され、無線方式は、WIFI、事業者ネットワーク、NFC(近距離通信)または他の技術によって実現され得る。当該コンピュータプログラムがプロセッサによって実行されると、ビデオ処理方法が実現される。当該コンピュータデバイスのディスプレイは、液晶ディスプレイまたは電子インクディスプレイであってもよく、当該コンピュータデバイスの入力装置は、ディスプレイ上に覆われたタッチ層であってもよいし、コンピュータデバイスのハウジングに設けられたキー、トラックボールまたはタッチパネルであってもよいし、外部に接続されたキーボード、タッチパネルまたはマウスなどであってもよい。
【0180】
当業者であれば、
図11に示す構成は、本願の技術案に関連する部分構成のブロック図にすぎず、本願の技術案が適用されるコンピュータデバイスに対する限定を構成するものではなく、具体的なコンピュータデバイスは、図に示されているものよりも多くまたは少ない構成要素を含んでいてもよいし、またはいくつかの構成要素を組み合わせていてもよいし、異なる構成要素を有してもよい。
【0181】
1つの実施例では、メモリおよびプロセッサを含むコンピュータデバイスも提供され、メモリには、コンピュータプログラムが記憶されており、当該プロセッサは、コンピュータプログラムを実行するときに、以下のステップ、即ち、少なくとも2つのチャネルを介してビデオサブストリームを取得して、少なくとも2つのチャネルと1対1に対応する少なくとも2つのビデオサブストリームを得るステップと、少なくとも2つのビデオサブストリームの補足強化情報フレームから、ビデオスライス番号を抽出するステップと、抽出されたビデオスライス番号に基づいて、少なくとも2つのビデオサブストリームのうちの相応のビデオサブストリームがビデオスライスを欠失していることを決定するステップと、相応のビデオサブストリームに対応するビデオソースから、欠失されているビデオスライスをダウンロードするステップと、ダウンロードされたビデオスライスと、少なくとも2つのビデオサブストリームとを、ビデオスライス番号の順序に従って再生するステップと、を実現する。
【0182】
1つの実施例では、コンピュータプログラムがプロセッサによって実行されると、次のステップ、即ち、ビデオ再生コマンドを取得するステップと、ビデオ再生コマンドに応答して、コンテンツ配信ネットワークシステムのターゲットサーバから、予め設定された時間範囲内の完全なビデオストリームをダウンロードするステップと、クライアントにより、完全なビデオストリームを再生するステップと、クライアントが完全なビデオストリームを再生する過程において安定的な再生状態に達した場合、少なくとも2つのチャネルを介してビデオストリームのダウンロードを行うステップと、をプロセッサに実行させる。
【0183】
1つの実施例では、コンピュータプログラムが、少なくとも2つのチャネルを介してビデオストリームのダウンロードを実行するステップを、プロセッサによって実行する場合、以下のステップ、即ち、ダウンロードするビデオストリームを、少なくとも2つのビデオサブストリームに分割するステップと、コンテンツ配信ネットワークシステムのターゲットサーバから、少なくとも2つのビデオサブストリームをダウンロードするステップと、をプロセッサに具体的に実行させる。
【0184】
1つの実施例では、コンピュータプログラムが、少なくとも2つのチャネルを介してビデオストリームのダウンロードを実行するステップを、プロセッサによって実行する場合、以下のステップ、即ち、他のクライアントから、少なくとも1つのビデオサブストリームをダウンロードするステップと、コンテンツ配信ネットワークシステムのターゲットサーバから、残りのビデオサブストリームをダウンロードするステップと、をプロセッサに具体的に実行させる。
【0185】
1つの実施例では、コンピュータプログラムが、他のクライアントから少なくとも1つのビデオサブストリームをダウンロードするステップを、プロセッサによって実行する場合、以下のステップ、即ち、当該少なくとも2つのビデオサブストリームから、少なくとも1つのターゲットビデオサブストリームを選択するステップと、他のクライアントから、ターゲットビデオサブストリームをダウンロードするステップと、をプロセッサに具体的に実行させる。コンピュータプログラムが、プロセッサによって実行される場合、さらに、他のクライアントからターゲットビデオサブストリームをダウンロードすると決定した場合、ターゲットサーバからターゲットビデオサブストリームをダウンロードすることを一時停止するステップ、をプロセッサに実行させる。
【0186】
1つの実施例では、コンピュータプログラムが、抽出されたビデオスライス番号に基づいて、少なくとも2つのビデオサブストリームのうちの相応のビデオサブストリームがビデオスライスを欠失していることを決定するステップを、プロセッサによって実行する場合、以下のステップ、即ち、当該少なくとも2つのビデオサブストリームがビデオスライス番号を欠失しているかどうかを判断するステップと、ビデオスライス番号が欠失されているビデオサブストリームが少なくとも1つ存在すれば、欠失されているビデオスライス番号に従って、少なくとも1つのビデオサブストリームが欠失しているビデオスライスを決定するステップと、をプロセッサに具体的に実行させる。
【0187】
1つの実施例では、コンピュータプログラムが、ダウンロードされたビデオスライスと、少なくとも2つのビデオサブストリームとを、ビデオスライス番号の順序に従ってクライアントにロードして再生するステップを、プロセッサによって実行する場合、以下のステップ、即ち、ダウンロードされたビデオスライスと、少なくとも2つのビデオサブストリームとを保存するステップと、保存されているビデオスライスと、各ビデオサブストリームとを、ビデオスライス番号の順序に従ってクライアントに順次にロードして、相応の再生対象となるビデオストリームを得るステップと、再生対象となるビデオストリームにおける各ビデオスライスを順次にレンダリングして、再生対象となる画像シーケンスを得るステップと、クライアントにより、再生対象となる画像シーケンスを再生するステップと、をプロセッサに具体的に実行させる。
【0188】
1つの実施例では、ビデオストリームは、ビデオ収集システムによってプッシュされたオリジナルビデオストリームに対してスライス処理をトランスコーディングサーバが順次に行って得られたものであり、ビデオスライス番号は、スライスされた各ビデオスライスをトランスコーディングサーバが番号付けて得られたものである。
【0189】
1つの実施例では、オリジナルビデオストリームとビデオストリームは、いずれも、FLVストリーミングメディアフォーマットのビデオストリームである。
【0190】
1つの実施例では、コンピュータプログラムが記憶されているコンピュータ読み取り可能な記憶媒体が提供され、当該コンピュータプログラムがプロセッサによって実行されるとき、以下のステップ、即ち、少なくとも2つのチャネルを介してビデオサブストリームを取得して、少なくとも2つのチャネルと1対1に対応する少なくとも2つのビデオサブストリームを得るステップと、少なくとも2つのビデオサブストリームの補足強化情報フレームから、ビデオスライス番号を抽出するステップと、抽出されたビデオスライス番号に基づいて、少なくとも2つのビデオサブストリームのうちの相応のビデオサブストリームがビデオスライスを欠失していることを決定するステップと、相応のビデオサブストリームに対応するビデオソースから、欠失されているビデオスライスをダウンロードするステップと、ダウンロードされたビデオスライスと、少なくとも2つのビデオサブストリームとを、ビデオスライス番号の順序に従って再生するステップと、が実現される。
【0191】
1つの実施例では、コンピュータプログラムがプロセッサによって実行されると、次のステップ、即ち、ビデオ再生コマンドを取得するステップと、ビデオ再生コマンドに応答して、コンテンツ配信ネットワークシステムのターゲットサーバから、予め設定された時間範囲内の完全なビデオストリームをダウンロードするステップと、クライアントにより、完全なビデオストリームを再生するステップと、クライアントが完全なビデオストリームを再生する過程において安定的な再生状態に達した場合、少なくとも2つのチャネルを介してビデオストリームのダウンロードを行うステップと、をプロセッサに実行させる。
【0192】
1つの実施例では、コンピュータプログラムがプロセッサによって実行されるとき、さらに、以下のステップ、即ち、ダウンロードするビデオストリームを、少なくとも2つのビデオサブストリームに分割するステップと、コンテンツ配信ネットワークシステムのターゲットサーバから、少なくとも2つのチャネルを介して、少なくとも2つのビデオサブストリームをそれぞれダウンロードするステップと、をプロセッサに具体的に実行させる。
【0193】
1つの実施例では、コンピュータプログラムが、少なくとも2つのチャネルを介してビデオストリームのダウンロードを実行するステップを、プロセッサによって実行する場合、以下のステップ、即ち、他のクライアントから、少なくとも1つのビデオサブストリームをダウンロードするステップと、コンテンツ配信ネットワークシステムのターゲットサーバから、残りのビデオサブストリームをダウンロードするステップと、をプロセッサに具体的に実行させる。
【0194】
1つの実施例では、コンピュータプログラムが、他のクライアントから少なくとも1つのビデオサブストリームをダウンロードするステップを、プロセッサによって実行する場合、以下のステップ、即ち、各ビデオサブストリームから、少なくとも1つのターゲットビデオサブストリームを選択するステップと、他のクライアントから、ターゲットビデオサブストリームをダウンロードするステップと、をプロセッサに具体的に実行させる。コンピュータプログラムがプロセッサによって実行する場合、さらに、以下のステップ、即ち、他のクライアントからターゲットビデオサブストリームをダウンロードすると決定された場合、ターゲットサーバからターゲットビデオサブストリームをダウンロードすることを一時停止するステップ、をプロセッサに実行させる。
【0195】
1つの実施例では、コンピュータプログラムが、抽出されたビデオスライス番号に基づいて、少なくとも2つのビデオサブストリームのうちの相応のビデオサブストリームがビデオスライスを欠失していることを決定するステップを、プロセッサによって実行する場合、以下のステップ、即ち、当該少なくとも2つのビデオサブストリームがビデオスライス番号を欠失しているかどうかを判断するステップと、ビデオスライス番号が欠失されているビデオサブストリームが少なくとも1つ存在すれば、欠失されているビデオスライス番号に従って、少なくとも1つのビデオサブストリームが欠失しているビデオスライスを決定するステップと、をプロセッサに具体的に実行させる。
【0196】
1つの実施例では、コンピュータプログラムが、ダウンロードされたビデオスライスと、少なくとも2つのビデオサブストリームとを、ビデオスライス番号の順序に従って再生するステップを、プロセッサによって実行する場合、以下のステップ、即ち、ダウンロードされたビデオスライスと、少なくとも2つのビデオサブストリームとを保存するステップと、保存されているビデオスライスと、各ビデオサブストリームとを、ビデオスライス番号の順序に従ってクライアントに順次にロードして、相応の再生対象となるビデオストリームを得るステップと、再生対象となるビデオストリームにおける各ビデオスライスを順次にレンダリングして、再生対象となる画像シーケンスを得るステップと、クライアントにより、再生対象となる画像シーケンスを再生するステップと、をプロセッサに具体的に実行させる。
【0197】
1つの実施例では、ビデオストリームは、ビデオ収集システムによってプッシュされたオリジナルビデオストリームに対してスライス処理をトランスコーディングサーバが順次に行って得られたものであり、ビデオスライス番号は、スライスされた各ビデオスライスをトランスコーディングサーバが番号付けて得られたものである。
【0198】
1つの実施例では、オリジナルビデオストリームとビデオストリームは、いずれも、FLVストリーミングメディアフォーマットのビデオストリームである。
【0199】
1つの実施例では、コンピュータデバイスが提供され、当該コンピュータデバイスは、トランスコーディングサーバであってもよく、その内部構成図は、
図12に示すようにしてもよい。当該コンピュータデバイスには、システムバスによって接続されているプロセッサ、メモリおよびネットワークインタフェースが含まれる。ここで、当該コンピュータデバイスのプロセッサは、計算および制御能力を提供するために使用される。当該コンピュータデバイスのメモリには、不揮発性記憶媒体、内部メモリが含まれる。当該不揮発性記憶媒体には、オペレーティングシステム、コンピュータプログラムおよびデータベースが記憶されている。当該内部メモリは、不揮発性記憶媒体におけるオペレーティングシステムおよびコンピュータプログラムの実行に対して環境を提供する。当該コンピュータデバイスのデータベースは、ビデオストリームデータを記憶するために使用される。当該コンピュータデバイスのネットワークインタフェースは、ネットワーク接続を介して外部の端末と通信するために使用される。当該コンピュータプログラムがプロセッサによって実行されると、ビデオ処理方法が実現される。
【0200】
1つの実施例では、メモリおよびプロセッサを含むコンピュータデバイスも提供され、メモリには、コンピュータプログラムが記憶されており、当該プロセッサは、コンピュータプログラムを実行するときに、以下のステップ、即ち、ビデオ収集システムによってプッシュされたターゲットビデオフォーマットのオリジナルビデオストリームを受信するステップと、オリジナルビデオストリームに対してスライス処理を順次に行って、対応するビデオスライスを得るステップと、得られたビデオスライスを番号付けて、ビデオスライス番号を得るステップと、ビデオスライス番号を補足強化情報フレームに保存して、スライスされたターゲットビデオフォーマットのビデオストリームを得るステップと、ターゲットサーバがクライアントによって送信されたビデオ再生コマンドに基づいて、対応するビデオストリームを返信するように、ビデオストリームをターゲットサーバに送信するステップと、が実現される。
【0201】
1つの実施例では、オリジナルビデオストリームとビデオストリームは、いずれも、FLVストリーミングメディアフォーマットのビデオストリームである。
【0202】
1つの実施例では、コンピュータプログラムが記憶されているコンピュータ読み取り可能な記憶媒体が提供され、当該コンピュータプログラムがプロセッサによって実行されるとき、以下のステップ、即ち、ビデオ収集システムによってプッシュされたターゲットビデオフォーマットのオリジナルビデオストリームを受信するステップと、オリジナルビデオストリームに対してスライス処理を順次に行って、対応するビデオスライスを得るステップと、得られたビデオスライスを番号付けて、ビデオスライス番号を得るステップと、ビデオスライス番号を補足強化情報フレームに保存して、スライスされたターゲットビデオフォーマットのビデオストリームを得るステップと、ターゲットサーバがクライアントによって送信されたビデオ再生コマンドに基づいて、対応するビデオストリームを返信するように、ビデオストリームをターゲットサーバに送信するステップと、が実現される。
【0203】
1つの実施例では、オリジナルビデオストリームとビデオストリームは、いずれも、FLVストリーミングメディアフォーマットのビデオストリームである。
【0204】
当業者であれば、上記の実施例方法における全部または一部を実現するための流れは、関連するハードウェアがそれを完成するようにコンピュータプログラムによって指令することができ、当該コンピュータプログラムは、不揮発性のコンピュータ読み取り可能な記憶媒体に記憶され得ており、当該コンピュータプログラムは、実行されるときに、上記の各方法の実施例の流れを含むことができる、ということを理解することができる。
ここで、本願によって提供される実施例において使用されるメモリ、ストレージ、データベースまたは他の媒体への任意の参照は、不揮発性および揮発性メモリのうちの少なくとも1つを含むことができる。不揮発性メモリは、リードオンリーメモリ(ROM:Read-ONly Memory)、磁気テープ、フロッピーディスク、フラッシュメモリ、または光メモリなどを含み得る。揮発性メモリは、ランダムアクセスメモリ(RAM:Random Access Memory)または外部キャッシュメモリを含み得る。説明として、限定されるものではなく、RAMは、静的ランダムアクセスメモリ(SRAM:Static Random Access Memory)や、動的ランダムアクセスメモリ(DRAM:Dynamic Random Access Memory)など、様々な形態であってもよい。
【0205】
以上の実施例の各技術的特徴は、任意の組み合わせが可能であり、説明を簡潔にするために、上記の実施例における各技術的特徴の全ての可能な組み合わせについては説明していないが、これらの技術的特徴の組み合わせには矛盾がない限り、本説明書に記載された範囲と考えるべきである。
【0206】
上記の実施例は、本願のいくつかの実施形態のみを示しており、その説明は比較的具体的かつ詳細であるが、そのために特許範囲の制限として理解することはできない。指摘すべきものとして、当業者にとっては、本願の構想から逸脱しない前提で、若干の変形や改良が可能であり、これらは、本願の保護範囲に属するものである。従って、本願特許の保護範囲は、添付の請求項に準ずるものとする。