CSSレコーディングは、ライブストリーミングオリジナルストリームのオーディオおよびビデオのパッケージ化(オーディオ、ビデオデータおよび対応するタイムスタンプなどの情報は変更しない)で生成されたファイルをVODプラットフォームにストレージするサービスです。
注意事項
プッシュ開始後、レコーディングタスクの開始までに一時的なディレイがあるため、プッシュ時間が短すぎると、レコーディングファイルを生成できなくなります。レコーディングファイルの品質を保証するためにも、レコーディング時のプッシュ時間を10秒より長くすることをお勧めします。
レコーディングのストレージ
CSSレコーディングは、ファイルをVODプラットフォームにストレージします。 CSSレコーディングサービスを使用したい場合は、まず VODサービスをアクティブにします。 レコーディング形式
レコーディングファイル形式のサポート:FLV/HLS/MP4/AAC、そのうちAACはオーディオレコーディング。
レコーディングユースケース
|
プッシュドメイン名、ストリーム名に応じたマルチレベルレコーディング | プッシュドメイン名、ストリーム名のレベル別にレコーディングの要否を設定できます。 |
指定時間帯ごとのレコーディング | APIの呼び出しを介して、レコーディングの開始および終了時間を制御し、指定の時間内にレコーディングを実施できます。 |
精彩なビデオレコーディング | プッシュ中の精彩な画面は、APIを呼び出し、リアルタイムでレコーディングできます。 |
純粋なオーディオレコーディング | プッシュが純粋なオーディオである場合、AACの純粋なオーディオレコーディングを設定できます。 |
指定プッシュドメイン名におけるライブストリームのレコーディングについて
レコーディングパラメータをテンプレート形式で管理し、各種業務シナリオのレコーディング設定テンプレートを作成します。また設定テンプレートを使用して各種プッシュドメイン名、ストリーム名とのバインドを行い、レコーディング設定を柔軟に管理します。
オンデマンドサービスをアクティブ化した後、特定のプッシュドメイン名のライブストリーミングストリームのレコーディングが必要となった場合は、2つの実現方法があります。
CSSコンソール
APIの呼び出し
2. CreateLiveRecordRuleを呼び出し、パラメータプッシュドメイン名DomainNameとTemplateId(第1ステップに戻ります)を設定します。AppNameおよびStreamNameに空の文字列を入力します。本操作は本ドメイン名ですべてのプッシュが共通化されることを意味します。 同様に、レコーディングテンプレートを異なるストリーム名とバインドすることによって、一部のCSSストリームのレコーディング開始の効果を実現します。
さらに同一のレコーディングテンプレートを各種の異なるプッシュドメイン名、ストリーム名に連結させることができるため、同一のCSSストリームが同時に複数のレコーディングテンプレートにバインドされている場合がありますが、最終的に優先度が最も高いテンプレートのみとバインドします。テンプレートのバインドルールには下表に示す優先度があります(煩雑な工程を含むシナリオでのみ使用されます)。
そのうち:【空】はワイルドカード、【✓】は正確なマッチング、【0】は最も優先度が高いです。優先度の高いテンプレートにマッチすると、マッチングを停止し、この優先度のテンプレートに戻ります。
同一プッシュドメイン名の特定のストリームのレコーディングの無効化
あるプッシュドメイン名にレコーディングを設定済みであるが、このドメイン名に業務上の理由でレコーディングの必要がない一部のプッシュが存在する場合は、次の操作を行ってください。
https://live.tencentcloudapi.com/?Action=CreateLiveRecordTemplate
&TemplateName=norecord
&Description=test
&<パブリックリクエストパラメータ>
ご注意:
上述のスキームは一部のプッシュのレコーディングが不要な場合のみに対応します。操作する必要があるライブストリーミングのストリーム数が多い場合は、主に次の点を考慮しつつ、別のプッシュドメイン名を使用して個別に管理することをお勧めします。
レコーディングテンプレートかレコーディングルールかを問わず、最大数に制限があります(50)。
プッシュドメイン名の管理制度は柔軟性が高いため、ドメイン上の変化に対してレコーディングテンプレートとルールを変更する必要性はありません。
指定時間帯のレコーディング
一部のプッシュにつき、指定の開始時間にレコーディングを開始し、指定の終了時間にレコーディングを終了したい場合は、 API 方式を介してレコーディングを指定することができます。レコーディングテンプレートの設定方式とは異なり、具体的なレコーディングパラメータはAPIを介して指定する必要があります。通常この方式は、いずれのレコーディング方式も設定されていない場合に使用されます。
APIの呼び出し
レコーディング例
最もシンプルなケースでは、指定されたStreamName、DomainName、AppNameとEndTimeパラメータを入力するだけで利用可能です。
例:2020年08月10日午前08時から10時までのレコーディングタスクを作成、FLV形式、ビデオレコーディング、セグメント30分、永久保存。
入力例:
https://live.tencentcloudapi.com/?Action=CreateRecordTask
&AppName=live
&DomainName=mytest.live.push.com
&StreamName=livetest
&StartTime=1597017600
&EndTime=1597024800
&TemplateId=0
&<パブリックリクエストパラメータ>
さらに具体的なレコーディング形式、レコーディングタイプ、ストレージパラメータなどを指定できます。
例:2020年08月10日午前08時から10時までのレコーディングタスクを作成、MP4形式、セグメント1時間、永久保存。
入力例:
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
&<パブリックリクエストパラメータ>
精彩なビデオレコーディングについて、説明すべき点は次のとおりです。
プッシュ中にレコーディングを作成する必要があります。
海外のプッシュをサポートします。
ミクスストリーミングのレコーディング
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コンソール
VODコンソールにログインし、非管理者ページで【メディアリソース管理】>【ビデオ管理】を選択すれば、生成されたレコーディングファイルを全て閲覧することが可能です。 レコーディングイベント通知
コンソールまたはAPIの呼び出しによって、レコーディングコールバックアドレスを設定すると、レコーディングファイルの生成後に、当該コールバックアドレスにメッセージ形式で通知されます。メッセージを受信した後は、レコーディングのコールバックイベントメッセージ通知に従って、業務を処理することができます。 イベント通知メカニズムは、効率的かつ信頼性が高く、即時性もあります。コールバックメソッドを使用してレコーディングファイルを取得することをお勧めします。
VOD APIクエリー
使用方法の詳細についてはVODのAPI SearchMediaインターフェースを参照してレコーディングファイルをフィルタリングして確認してください。 設定更新に関する注意事項
レコーディング設定が更新されたら、再プッシュし、設定を検証することお勧めします。有効性の設定におけるルールは次の通りです。
設定が有効になるまでの時間はデフォルトで10分です。
設定は、CSSプッシュ開始時に有効になり、レコーディング中に更新されません。
プッシュ継続時間が長時間にわたるシナリオ(監視カメラなど)については、有効にするためにプッシュを停止してから再起動する必要があります。
この記事はお役に立ちましたか?