CSSレコーディングは、ライブストリーミングオリジナルストリームのオーディオおよびビデオのパッケージ化(オーディオ、ビデオデータおよび対応するタイムスタンプなどの情報は変更しない)で生成されたファイルをVODプラットフォームにストレージするサービスです。
CSSレコーディングは、ファイルをVODプラットフォームにストレージします。 CSSレコーディングサービスを使用したい場合は、まず VODサービスをアクティブにします。
説明:生成されるレコーディングファイルの命名ルールを理解したい場合は、レコーディングテンプレートパラメータ-VodFileNameをご参照ください。
レコーディングファイル形式のサポート:FLV/HLS/MP4/AAC、そのうちAACはオーディオレコーディング。
ユースケース | 説明 |
---|---|
プッシュドメイン名、ストリーム名に応じたマルチレベルレコーディング | プッシュドメイン名、ストリーム名のレベル別にレコーディングの要否を設定できます。 |
指定時間帯ごとのレコーディング | APIの呼び出しを介して、レコーディングの開始および終了時間を制御し、指定の時間内にレコーディングを実施できます。 |
精彩なビデオレコーディング | プッシュ中の精彩な画面は、APIを呼び出し、リアルタイムでレコーディングできます。 |
純粋なオーディオレコーディング | プッシュが純粋なオーディオである場合、AACの純粋なオーディオレコーディングを設定できます。 |
レコーディングパラメータをテンプレート形式で管理し、各種業務シナリオのレコーディング設定テンプレートを作成します。また設定テンプレートを使用して各種プッシュドメイン名、ストリーム名とのバインドを行い、レコーディング設定を柔軟に管理します。
オンデマンドサービスをアクティブ化した後、特定のプッシュドメイン名のライブストリーミングストリームのレコーディングが必要となった場合は、2つの実現方法があります。
同様に、レコーディングテンプレートを異なるストリーム名とバインドすることによって、一部のCSSストリームのレコーディング開始の効果を実現します。
さらに同一のレコーディングテンプレートを各種の異なるプッシュドメイン名、ストリーム名に連結させることができるため、同一のCSSストリームが同時に複数のレコーディングテンプレートにバインドされている場合がありますが、最終的に優先度が最も高いテンプレートのみとバインドします。テンプレートのバインドルールには下表に示す優先度があります(煩雑な工程を含むシナリオでのみ使用されます)。
DomainName | StreamName | 優先度 |
---|---|---|
✓ | ✓ | 0 |
空 | ✓ | 1 |
✓ | 空 | 2 |
空 | そら | 3 |
そのうち:【空】はワイルドカード、【✓】は正確なマッチング、【0】は最も優先度が高いです。優先度の高いテンプレートにマッチすると、マッチングを停止し、この優先度のテンプレートに戻ります。
あるプッシュドメイン名にレコーディングを設定済みであるが、このドメイン名に業務上の理由でレコーディングの必要がない一部のプッシュが存在する場合は、次の操作を行ってください。
https://live.tencentcloudapi.com/?Action=CreateLiveRecordTemplate
&TemplateName=norecord
&Description=test
&<パブリックリクエストパラメータ>
注意:上述のスキームは一部のプッシュのレコーディングが不要な場合のみに対応します。操作する必要があるライブストリーミングのストリーム数が多い場合は、主に次の点を考慮しつつ、別のプッシュドメイン名を使用して個別に管理することをお勧めします。
- レコーディングテンプレートかレコーディングルールかを問わず、最大数に制限があります(50)。
- プッシュドメイン名の管理制度は柔軟性が高いため、ドメイン上の変化に対してレコーディングテンプレートとルールを変更する必要性はありません。
一部のプッシュにつき、指定の開始時間にレコーディングを開始し、指定の終了時間にレコーディングを終了したい場合は、 API 方式を介してレコーディングを指定することができます。レコーディングテンプレートの設定方式とは異なり、具体的なレコーディングパラメータはAPIを介して指定する必要があります。通常この方式は、いずれのレコーディング方式も設定されていない場合に使用されます。
レコーディングタスク作成APIの具体的な説明については、 CreateRecordTaskをご参照ください。
https://live.tencentcloudapi.com/?Action=CreateRecordTask
&AppName=live
&DomainName=mytest.live.push.com
&StreamName=livetest
&StartTime=1597017600
&EndTime=1597024800
&TemplateId=0
&<パブリックリクエストパラメータ>
https://live.tencentcloudapi.com/?Action=CreateLiveRecordTemplate
&TemplateName=templat
&Description=test
&Mp4Param.Enable=1
&Mp4Param.RecordInterval=3600
&Mp4Param.StorageTime=0
&<パブリックリクエストパラメータ>
{
"Response": {
"RequestId": "839d12da-95a9-43b2-a9a0-03366d01b532",
"TemplateId": 17016
}
}
https://live.tencentcloudapi.com/?Action=CreateRecordTask
&StreamName=livetest
&AppName=live
&DomainName=mytest.live.push.com
&StartTime=1597017600
&EndTime=1597024800
&TemplateId=17016
&<パブリックリクエストパラメータ>
説明:
- 同一のCSSストリームについては、定時タスク間および定時タスクとその他形式のレコーディングタスクの間に衝突などの問題はありません。つまり、作成した複数の定時タスクを指定する時間範囲で重複させることができます。またレコーディング設定を有効にした後、APIを再度呼び出し、レコーディングタスクを作成できます。
- このほか、事前に(例:1時間前、または早朝に当日のタスクを作成するなど)レコーディングタスクを作成し、イベント時間よりやや早い時間をタスク開始時間として指定することをお勧めします。
プッシュ中に、精彩なビデオ画面を見つけ、その場でレコーディングを開始し、後で使用するために精彩なビデオクリップを作成したい場合は、APIを呼び出して、精彩なビデオレコーディングを指定できます。
https://live.tencentcloudapi.com/?Action=CreateRecordTask
&StreamName=test
&AppName=live
&DomainName=mytest.live.push.com
&EndTime=1597024800
&<パブリックリクエストパラメータ>
精彩なビデオレコーディングについて、説明すべき点は次のとおりです。
プッシュ中にレコーディングを作成する必要があります。
APIStopRecordTaskを呼び出し、事前にタスクを終了することができます。
海外のプッシュをサポートします。
ミクスストリーミングサービスについては、始めにクラウドミクスストリーミング をご参照ください。
CSSクラウドミクスストリーミングサービスを使用するシナリオでは、レコーディング側がミクスストリーミングパラメータOutputStreamType(出力ストリームタイプ)に従ってミクスストリーミングを2つのタイプに分類します。
OutputStreamType が 0
であるのは、出力ストリームが入力ストリームリストに存在すること、つまり、新しいストリームが生成されていないことを意味します。
OutputStreamType が 1
であるのは、出力ストリームが入力ストリームリストに存在しないこと、つまり、新しいストリームが生成されたことを意味します。
プッシュAとBがあり、ミキシング後の出力ストリームがCであると仮定した場合について説明します。
OutputStreamType が 0
であり、かつCストリームがAストリーム(ストリーム名は同一ですが、ミクスストリーミング後の画面です)と仮定した場合について、レコーディング設定を有効にすると、デフォルトでAストリーム(ミクスストリーミング画面)、Bストリームのレコーディングファイルが作成されます。同一のストリームIDが再利用されるため、Aストリームのオリジナルプッシュはレコーディングされないことにご注意ください。
OutputStreamType が 1
である場合、レコーディング設定を有効にした後、デフォルトでAストリーム、BストリームおよびC トリーム(ミクスストリーミング画面)のレコーディングファイルが作成されます。
ミクスストリーミング画面のみをレコーディングしたい場合は、APICreateRecordTaskを介して実現できます。OutputStreamType 1
のミクスストリーミングタイプについては、上述のAPIを呼び出し、StreamTypeパラメータを1
に設定する必要があることに注意してください。
注意:ミクスストリーミングのレコーディングは、レコーディングファイルエラーが発生し、通常の視聴と再生に影響を与えるため、中国内地(大陸)とグローバル/中国香港・マカオ・台湾のライブミクスストリーミングをサポートしていません。
##自動スプライスレコーディング(マルチストリームレコーディング)
ネットワークジッターのためにプッシュが複数回中断されると、レコーディングファイルが複数生成されてライブストリームの連続再生に不都合が生じます。本問題を解決するために、CSSレコーディングでは中断した複数のプッシュレコーディングファイルを自動スプライスレコーディングすることで短時間で一つのファイルに統合します。
その原理は、HLSレコーディング形式で、HLSの #EXT-X-DISCONTINUITY タグを使用して複数プッシュのオーディオおよびビデオデータをセグメント化することです。このタグの機能は、オーディオおよびビデオデータのタイムスタンプ、ビデオコーデック、オーディオコーデック、サンプルレートなどの情報が異なる場合があることを示します。プレーヤーは、連続再生のためにデコーダーを更新する必要があります。したがって、この機能を使用する場合は、プレーヤーは #EXT-X-DISCONTINUITY タグをサポートしている必要があります。iOSネイティブプレーヤー(またはSafari直接再生)、AndroidのExoPlayer、Web端末のhls.jsプレーヤーはいずれもこのタグをサポートしていますが、VLCなどのプレーヤーはこのタグをサポートしていません。
この機能を使用した後、自動スプライスの中断時間(設定可能時間は最長30分です。つまり最長30分中断したプッシュを1つのファイルにスプライスできます)を設定し、最終の正常なプッシュが終了した後、中断前後のファイルが自動的にスプライスされて、HLSレコーディングファイルが生成されます。
自動スプライスレコーディングは、現在、HLS形式をサポートしており、 CSSレコーディングで連続レコーディングタイムアウト時間を設定できます。
注意:
- 自動スプライスでは、オーディオデータなしのCSSストリームをサポートしていません。
- ビデオマージ機能は、VODのビデオ合成インターフェースを呼び出すことで実現します。関連ドキュメントの説明については、ビデオの合成処理をご参照ください。
- HLS連続レコーディング機能を設定すると、中間でプッシュが中断されてもコールバックしません。デフォルトではストリーミングを継続し、最終的なファイル生成のみコールバックします。
レコーディングファイルが生成されると、自動的にVODシステムに保存されます。レコーディングファイルを取得するには、次のような方法があります。
VODコンソールにログインし、非管理者ページで【メディアリソース管理】>【ビデオ管理】を選択すれば、生成されたレコーディングファイルを全て閲覧することが可能です。
コンソールまたはAPIの呼び出しによって、レコーディングコールバックアドレスを設定すると、レコーディングファイルの生成後に、当該コールバックアドレスにメッセージ形式で通知されます。メッセージを受信した後は、レコーディングのコールバックイベントメッセージ通知に従って、業務を処理することができます。
イベント通知メカニズムは、効率的かつ信頼性が高く、即時性もあります。コールバックメソッドを使用してレコーディングファイルを取得することをお勧めします。
使用方法の詳細についてはVODのAPI SearchMediaインターフェースを参照してレコーディングファイルをフィルタリングして確認してください。
注意:CSS APIを介して レコーディングタスク作成する際は、レコーディングコールバックはユーザーのプッシュURLのstream_paramパラメータは返されませんが、その他のレコーディング方式で作成した場合は返されますのでご注意ください。
レコーディング設定が更新されたら、再プッシュし、設定を検証することお勧めします。有効性の設定におけるルールは次の通りです。
この記事はお役に立ちましたか?