概要
クリップは、ライブストリームから抽出された動画です。それらは、S3バケット、FTPサイト、またはビデオクラウドアカウント。クリップはMP4ビデオとして作成され、それはすべてのケースで宛先に送信されるものです。の場合ビデオクラウド、MP4は取り込みシステムによってトランスコードされ、ビデオ用に作成されるレンディションの種類は、使用される取り込みプロファイルによって異なります。
クリップの定義は、/vods
エンドポイントを使用して作成されます。
クリップはいくつかの方法で作成できます。
- ライブストリームイベントの SMPTE タイムコードで、
stream_start_timecode
stream_end_timecode
および/または定義されている- これにはエンコーダが必要であることに注意してくださいタイムコード情報を送信する start_time
end_time
開始時刻を基準に定義されたおよび/または定義 (stream_start_time
)ライブストリームイベント全体の- エポック (Unix) 時間 (秒)
start_time
end_time
で定義されたおよび/または定義 - で
duration
- VOD API できるで使用する暗号化またはDRM保護仕事。現在、ライブモジュールはこれをサポートしていませんが、将来のリリースでサポートされる予定です。
注
- クリップをできるだけ早く使用できるようにするには、セグメント精度が高いクリップを最初に作成してから、使用可能な次第、フレーム精度のクリップに置き換えます。
- を指定した場合
duration
、作成されるクリップは次のようになります。- ジョブがアクティブでまだ有効な場合:(要求時間-期間) ~ (要求時間)
- ジョブが終了した場合:(
finished_at
-期間) ~ (finished_at
)
- 両方を指定すると
start_time
、end_time
次のようになります。- ジョブがアクティブでまだライブの場合:
created_at
エポックタイムウィンドウが完全にその範囲内にあり、リクエスト時間内に収まる限り、クリップが作成されます - ジョブが終了した場合:
created_at
エポックタイムウィンドウが完全におよび内に収まる限りfinished_at
、クリップが作成されます。
- ジョブがアクティブでまだライブの場合:
- SSAI を使用したライブストリームのクリップには広告は含まれません。
- クリップは、イベントの 7 日後まで作成できます。にとって9月、次のアクティベーションまたは7日(どちらか短い方)まで作成できます。
- VOD API は、ストリーム内に存在するコンテンツ以外のコンテンツを追加しません。300 秒の長さのライブストリームで 350 を指定すると、出力の長さは 300 秒になります。
- ライブストリームはブロードキャストされた状態で保存され、イベント終了後の 7 日間すぐに利用できるため、クリッピング機能に DVR 対応のライブストリームを使用する必要はありません。
- Brightcove Live クリッピングでは、最高解像度の出力と同じ解像度のクリップしか生成されません。ソース入力解像度とは一致しません(最高解像度の出力と同じでない限り)。
クリップを複数の宛先に送信することもできます。
- NS ビデオクラウドアカウント
- FTPサーバ
- S3 バケット
クリップを指定すると、出力しなければならない含むまた NS url
行き先また NS videocloud
ビデオの作成とクリップの取り込みを詳細に説明するオブジェクトビデオクラウド。
注: ライブストリームの実行中にクリップを作成できます。これを行うには、クリップの開始時間と終了時間をエポック時間、またはライブストリームの開始時刻を基準に定義する必要があります。
認証情報
クリップの送信先でアクセスする認証情報が必要な場合は、Live API の認証情報操作を使用して認証情報を作成できます。詳細については、Live API の認証情報の管理を参照してください。
終点
クリップは、POST
次の宛てにリクエストを送信することによって作成されます。
https://api.bcovlive.io/v1/vods
リクエスト本文- ビデオクラウド
例 1: ストリーム開始を基準とした開始/終了時間
リクエスト本文には、開始時刻と終了時刻、およびクリップを送信する場所の詳細が含まれます。これは、ストリームの3分の1分のクリップを作成し、それをに送信するサンプルリクエスト本文です。ビデオクラウドアカウント:
{
"live_job_id":"PUT-LIVE-JOB-ID-HERE",
"outputs":[
{
"label": "60 secs by stream from min 2 to min 3",
"stream_start_time": 120,
"stream_end_time": 180,
"credentials": "USER_VIDEOCLOUD_CREDENTIAL_LABEL",
"videocloud": {
"video": {
"name": "One Minute Clip",
"tags": ["live", "clip"]
},
"ingest": {
"capture-images": true
}
}
}
]
}
この例では、1分間のクリップを作成し、に送信しています。ビデオクラウド。クリップに名前といくつかのタグを付けていますが、取り込みプロファイルアカウントのデフォルトが使用されるように再トランスコーディングし、指示しますビデオクラウドトランスコーディング中にクリップからサムネイルとポスターの画像をキャプチャします。
例 2: エポック時間での開始/終了時間
リクエスト本文には、開始時刻と終了時刻をエポック時間で表し、クリップを送信する場所の詳細が含まれます。これは、ストリームの3分の1分のクリップを作成し、それをに送信するサンプルリクエスト本文です。ビデオクラウドアカウント:
{
"live_job_id":"PUT-LIVE-JOB-ID-HERE",
"outputs":[
{
"label": "60 secs - epoch time",
"start_time": 1516652694,
"end_time": 1516652754,
"credentials": "USER_VIDEOCLOUD_CREDENTIAL_LABEL",
"videocloud": {
"video": {
"name": "One Minute Clip",
"tags": ["live", "clip"]
},
"ingest": {
"capture-images": true
}
}
}
]
}
この例では、特定のエポック時間(この例では 2018 年 1 月 22 日 08:24:54 GMT)に 1 分のデュレーションのクリップを作成しています。
例 3: ストリームの開始を基準とした開始時間を持つ期間
リクエスト本文には、デュレーションと stream_start_time、およびクリップを送信する場所の詳細が含まれます。これは、ストリームの3分の1分のクリップを作成し、それをに送信するサンプルリクエスト本文です。ビデオクラウドアカウント:
{
"live_job_id":"PUT-LIVE-JOB-ID-HERE",
"outputs":[
{
"label": "60 secs from start time",
"stream_start_time": 300,
"duration": 60,
"credentials": "USER_VIDEOCLOUD_CREDENTIAL_LABEL",
"videocloud": {
"video": {
"name": "One Minute Clip",
"tags": ["live", "clip"]
},
"ingest": {
"capture-images": true
}
}
}
]
}
この例では、ライブストリームの開始から 5 分後に開始する 1 分のデュレーションのクリップを作成します。
例 4: 開始時間または終了時間がない期間
リクエスト本文には、開始時刻と終了時刻をエポック時間で表し、クリップを送信する場所の詳細が含まれます。これは、ストリームの3分の1分のクリップを作成し、それをに送信するサンプルリクエスト本文です。ビデオクラウドアカウント:
{
"live_job_id":"PUT-LIVE-JOB-ID-HERE",
"outputs":[
{
"label": "60 secs - duration",
"duration": 60,
"credentials": "USER_VIDEOCLOUD_CREDENTIAL_LABEL",
"videocloud": {
"video": {
"name": "One Minute Clip",
"tags": ["live", "clip"]
},
"ingest": {
"capture-images": true
}
},
"notifications": ["http://myserver.com/api/notification_listener?type=jvod"]
}
]
}
この例では、1 分のデュレーションのクリップを作成します。開始時間や終了時間を指定していないため、クリップはライブストリームの最後の 60 秒から取得されます。
例 5: stream_start_timecode
とを使用するstream_end_timecode
リクエスト本文には、HH: MM: SS: FF タイムコードの開始時間と終了時間/フレーム、およびクリップを送信する場所の詳細が含まれます。タイムコードを使用するには、エンコーダがタイムコードを送信している必要があります。これは、ストリームの50分のクリップを作成し、それをに送信するサンプルリクエスト本文です。ビデオクラウドアカウント:
{
"live_job_id":"PUT-LIVE-JOB-ID-HERE",
"outputs":[
{
"label": "Clipping using Timecode from-01:10:18:15 to-01:11:08:15",
"stream_start_timecode": "01:10:18:15",
"stream_end_timecode": "01:11:08:15",
"credentials": "USER_VIDEOCLOUD_CREDENTIAL_LABEL",
"videocloud": {
"video": {
"name": "Fifty Minute Clip",
"tags": ["live", "clip"]
},
"ingest": {
"capture-images": true
}
}
},
"notifications": ["http://myserver.com/api/notification_listener?type=jvod"]
]
}
クリップの送信に関する一般情報ビデオクラウド
どのフィールドをに含めることができるかを確認するにはvideo
とingest
オブジェクト、を参照してくださいDynamic Ingest APIリファレンス。
リクエストボディ-S3
リクエスト本文には、開始時刻と終了時刻、およびクリップを送信する場所の詳細が含まれます。ストリームの 3 分間のクリップを作成し、それを S3 バケットに送信するリクエストボディの例を次に示します。
{
"live_job_id":"",
"outputs":[
{
"label": "last_30",
"duration": 30,
"url": "s3://YOUR_BUCKET_NAME/file_name.mp4",
"credentials": "s3-credentials",
"notifications": ["http://myserver.com/api/notification_listener?type=jvod"]
}
],
}
この例では、30 秒のデュレーションのクリップを作成し、S3 バケットに送信しています。クリップ用のファイル名を含むバケット URL と、保存された S3 バケット認証情報の名前を示す文字列を提供します。認証情報は、Brightcove サポートがお客様のアカウントに対して設定できます。
リクエスト本文フィールド
リクエスト本文フィールドの完全な表を次に示します。
フィールド | タイプ | 説明 |
---|---|---|
live_job_id |
文字列 |
VOD クリップの作成元となるライブストリームジョブの ID。 |
outputs |
オブジェクト [] |
VOD 出力の配列 |
outputs.label |
文字列 |
出力のラベル |
outputs.duration |
数値 |
クリップの持続時間 (秒)。 |
outputs.stream_start_time |
数値 |
ライブストリームの開始時間に対するクリップの開始時間(秒単位)。 |
outputs.stream_end_time |
数値 |
ライブストリームの開始時間に対するクリップの終了時間(秒)は、 |
outputs.start_time |
数値 |
クリップの開始時間はエポック (Unix) 時間 (秒) で表されます。 |
outputs.end_time |
数値 |
クリップの終了時刻をエポック (Unix) 時間 (秒) |
outputs.stream_start_timecode |
数値 |
ストリームの先頭からの SMPTE 形式 (HH: MM: SS: FF) タイムコード内のクリップの開始時刻は、 |
outputs.stream_end_timecode |
数値 |
ストリームの終わりからのSMPTEフォーマット(HH:MM:SS:FF)タイムコードでのクリップの終了時間。 |
outputs.url |
文字列 |
クリップのリンク先URL、出力に注意してくださいしなければならない含むまたこれ |
outputs.credentials |
文字列 |
このアドレスに対してアカウントで設定された認証情報の名前 |
outputs.videocloud |
オブジェクト |
の入力を含むオブジェクトビデオクラウド摂取 |
outputs.videocloud.video |
オブジェクト |
の入力を含むオブジェクトビデオクラウドビデオオブジェクトの作成-を参照してくださいビデオを作成するためのCMS APIリファレンス |
outputs.videocloud.ingest |
オブジェクト |
の入力を含むオブジェクトビデオクラウドビデオの取り込み-を参照してください動的取り込みリファレンス - NS いいえ含める |
のビデオフィールドビデオクラウド摂取
詳細については、 CMS API リファレンスを参照してください。
フィールド | タイプ | 説明 |
---|---|---|
ad_keys |
文字列 | 動画に割り当てられた広告キーと値のペアを表す文字列。キーと値のペアは、キー=値としてフォーマットされ、アンパサンドで区切られます。例: "adKeys": "category=sports&live=true" |
cue_points |
マップの配列 | キューポイントマップの配列 |
custom_fields |
フィールドと値のペアのマップ (文字列) | fieldname:value ビデオのカスタムセット-このビデオの値を持たないカスタムフィールドはこのマップに含まれないことに注意してください。カスタムフィールド値の最大長は 1024 シングルバイト文字です |
description |
文字列。古い shortDescription の代わりになります | ビデオの簡単な説明 (最大長:248 バイト文字) |
economics |
文字列。有効な列挙値の 1 つでなければなりません | 「AD_SUPPOPTED」(デフォルト)または「無料」 |
geo |
プロパティと値のペアのマップ | 動画の地上制限プロパティ |
link |
プロパティと値のペアのマップ | 関連リンクプロパティのマップ |
long_description |
文字列 | 長い説明 (5000 文字まで) |
name |
文字列 | ビデオの名前(最大長:248 シングルバイト文字)が必要です |
offline_enabled |
ブール値 | ビデオがオフライン再生可能かどうか |
projection |
文字列 | 360°動画のマッピング投影(例:「エクイレクタングラーン」) |
reference_id |
文字列 | 動画を一意に識別するユーザー指定の ID。150 文字に制限されています。referenceId は、他のシステムでこの動画を識別するために、外部キーとして使用できます。参照 ID には、スペース、カンマ、特殊文字を含めることはできません。 |
schedule |
プロパティと値のペアのマップ | ビデオの空室状況のための開始日と終了日のマップ |
state |
文字列 | アクティブ、非アクティブ |
tags |
タグの配列 (文字列) | 動画に割り当てられたタグの配列 |
text_tracks |
HTML5スタイルのテキストトラックの配列 | ビデオに割り当てられたテキストトラック(WebVTT ファイル)の配列 |
ビデオキューポイントフィールド
次の表に、video.cuepoints
。
フィールド | タイプ | 説明 |
---|---|---|
id |
文字列 | キューポイントのシステム ID |
force_stop |
ブール値 | ビデオがキューポイントで停止するかどうか |
metadata |
文字列; コードポイントのみ | キューポイントに関連付けられたメタデータ文字列 |
name |
文字列 | キューポイント名 |
time |
フロート | ビデオの開始位置から測定されたキューポイントの時間(秒) |
type |
文字列 | キューポイントタイプ ( AD またはDATA ) |
ビデオジオフィールド
次の表に、video.geo
オブジェクトフィールドを示します。
フィールド | タイプ | 説明 |
---|---|---|
countries |
国コード文字列の配列 | ビデオの再生が許可または許可されていない国の2文字または4文字のコードのISO3166リストの配列(https://www.iso.org/obp/ui/) |
exclude_countries |
ブール値 | trueの場合、国配列は表示から除外された国のリストとして扱われます |
restricted |
ブール値 | この動画で地理フィルタリングが有効になっているかどうか |
ビデオリンクフィールド
次の表に、video.link
オブジェクトフィールドを示します。
フィールド | タイプ | 説明 |
---|---|---|
url |
文字列 | 関連リンク URL |
text |
文字列 | 関連リンクテキスト |
ビデオスケジュールフィールド
次の表は、video.schedule
オブジェクト
フィールド | タイプ | 説明 |
---|---|---|
ends_at |
ISO-8601 日付形式の文字列 | ビデオが視聴できなくなる日時 |
starts_at |
ISO-8601 日付形式の文字列 | ビデオが視聴可能になる日時です。 |
ビデオクラウドフィールドを取り込む
フィールド | タイプ | 説明 |
---|---|---|
audio_tracks オプショナル 動的配信のみ |
オブジェクト [] |
オーディオトラックオブジェクトの配列-を参照してくださいAPIを使用した複数のオーディオトラックの実装詳細については。 |
audio_tracks.merge_with_existing オプショナル |
ブール値 |
既存のオーディオトラックを置き換えるか、新しいオーディオトラックを追加するか(現在のみ デフォルト値: |
audio_tracks.masters オプショナル |
オブジェクト [] |
オーディオトラックオブジェクトの配列動的配信のみ |
audio_tracks.masters.url オプショナル |
文字列 |
オーディオファイルのURL 動的配信のみ |
audio_tracks.masters.language オプショナル |
文字列 |
のサブタグからのオーディオトラックの言語コードhttps://www.iana.org/assignments/language-subtag-registry/language-subtag-registry(Brightcoveサポートに連絡することでアカウントにデフォルトを設定できます)動的配信のみ |
audio_tracks.masters.variant オプショナル |
文字列 |
オーディオトラックのタイプ(デフォルトはBrightcoveサポートに連絡することでアカウントに設定できます)動的配信のみ 許容値: |
profile オプショナル |
文字列 |
トランスコーディングに使用する取り込みプロファイル。存在しない場合は、デフォルトのプロファイルが使用されます |
text_tracks オプショナル |
オブジェクト [] |
の配列 |
text_tracks.url |
Url |
WebVTT ファイルの URL |
text_tracks.srclang |
文字列 |
ISO 639 テキストトラックの 2 文字 (アルファ-2) 言語コード |
text_tracks.kind オプショナル |
文字列 |
vtt ファイルの使用方法について デフォルト値: 許容値: |
text_tracks.label オプショナル |
文字列 |
ユーザーが読めるタイトル |
text_tracks.default オプショナル |
ブール値 |
キャプション/字幕のデフォルト言語を設定します |
capture-images オプショナル |
ブール値 |
トランスコーディング中にポスターとサムネイルをキャプチャする必要があるかどうか。デフォルトは |
poster オプショナル |
オブジェクト |
摂取するビデオポスター-参照画像とDynamicIngest API詳細については |
poster.url |
Url |
動画ポスター画像のURL |
poster.height オプショナル |
整数 |
画像のピクセル高さ |
poster.width オプショナル |
整数 |
画像のピクセル幅 |
thumbnail オプショナル |
オブジェクト |
取り込むビデオサムネイル-を参照画像とDynamicIngest API詳細については |
thumbnail.url |
Url |
動画のサムネイル画像の URL |
thumbnail.height オプショナル |
整数 |
画像のピクセル高さ |
thumbnail.width オプショナル |
整数 |
画像のピクセル幅 |
callbacks オプショナル |
文字列 [] | そのURLの配列通知に送信する必要があります
|
API レスポンス
クリップの作成リクエストへの応答には、ジョブのIDとリクエスト本文に設定したラベル、およびライブジョブIDが含まれます。
{
"vod_jobs": [
{
"jvod_id": "9582606c50d84be5ad4bc104f2aa3360",
"label": "last 60 secs of live job"
}
],
"live_job_id": "88ba5d87b61a4ef3a6dddabd0c38d319"
}
応答フィールド
フィールド | タイプ | 説明 |
---|---|---|
vod_jobs |
オブジェクト |
クリップ応答オブジェクト |
jvod_id |
文字列 |
クリップジョブID |
label |
文字列 |
クリップラベル(入力から) |
live_job_id |
文字列 |
ライブジョブID(入力から) |