最終更新日:2022-04-15 07:44:45
ライブストリーミングの発展により、均質化の競争から脱却することがますます困難になってきています。ライブストリーミングプラットフォームは、これまで通り新機能に注力しますが、ライブストリーミングコンテンツの再利用も重視しています。ライブストリーミングの録画、特にスポーツイベントなどをループ再生することで、ストリーマールームの視聴を維持したいと考えるお客様もいます。その要望に応えて、CDNetworksでは、録画したファイルをライブ中継するVoD(映像オンデマンド)ストリーミング機能を展開します。
VoDストリーミングとは、PoPがユーザー指定のVoD(映像オンデマンド)ファイルをループ順または順次にリクエストし、ファイル内容のストリームをユーザー指定のアドレスにプッシュすることです。使いやすさを考慮し、CDNetworksでは、接続するためのAPIを提供しています。
APIにはアクセス許可が必要です。アカウントがCDNWのサービスを有効にし、かつ一定のルールでパラメータを入力した場合にのみ、正しく呼び出されます。アクセス管理ポリシーは、n、r、kの3つのパラメータによって決められ、その詳細な説明は以下の通りです:
MD5の計算方法:
k = md5(r+key)、つまり新しい文字列であり、rにkeyを加え、MD5でハッシュ化し、新しい値kに変換することです。
注:キーは、当社のカスタマーサービススタッフから取得できます。
例:
1.適用してキーを取得=012f37a3f2952
2.ランダムな文字列r=1409284800を生成
3.統合して新しい文字列を生成=1409284800012f37a3f29524。
4.新しい文字列をMD5で計算し、k値を得る: b9fed80be752551834eec3e52fa94115
リアルタイムのVoDストリーミング
VoDストリーミングを開始/終了させるためのAPIを呼び出します。
API:
http://livect.ossin.cdnetworks.com/api/cdn/v2/forwardRequest.action (アジア地域で使用)。
http://livect.osame.cdnetworks.com/api/cdn/v2/forwardRequest.action (ヨーロッパおよびアメリカ地域で使用)
呼び出し方法:ポスト
HTTPヘッダー:Content-Type:application/json
ボディコンテンツ:
VoDストリーミングの開始
{
"transcallbackurl": "http://www.callback.com/api",
"cmd": "1",
"type": "video",
"list": [{
"id": "123",
"src": [{
"url": "http://www.video.com/live/abc.mp4"
},
{
"url": "http://www.video.com/live/1.flv",
"absofftime": "20181022153000-20181022155000"
},
{
"url": "http://www.video.com/live/2.mp4",
"relofftime": "300-500"
}
],
"forward": [{
"url": "rtmp://www.push1.com/live/test"
},
{
"url": "rtmp://www.push2.com/live/test2"
}
],
"extendParam": {
"loop": "1",
"index": "1",
"callBackFileInfo": "0"
}
}]
}
注意事項:VoDストリーミング開始後、サービスPoPサーバーはVoDストリーミングのループ順でファイルを読み込みます。VODストリーミングタスクは、お客様がタスクを終了するためのインターフェイスを呼び出した時点で終了します。
VoDストリーミングの終了
{
"transcallbackurl": "http://www.callback.com/api",
"cmd": "2",
"type": "video",
"list": [{
"id": "123",
"src": [{
"url": ""
}],
"forward": [{
"url": "rtmp://www.push1.com/live/test"
}, {
"url": "rtmp://www.push2.com/live/test2"
}]
}]
}
ボディパラメータ仕様
フィールド名 | フィールドタイプ | フィールドの意味 | 必須項目 | さらにデモンストレーションの例 |
---|---|---|---|---|
transcallbackurl | 文字列 | コールバックアドレス | いいえ | |
cmd | 文字列 | VODストリーミングコマンド | はい | cmd=1 VoDストリーミングの開始。cmd=2 VoDストリーミングの終了。cmd=3 ファイルリストの更新。cmd=5 再生再開 |
タイプ | 文字列 | VoDストリーミングタイプ | はい | 固定値とタイプの記入=映像 |
リスト | リスト | プッシュストリームリスト | はい |
リストパラメータ仕様
フィールド名 | フィールドタイプ | フィールドの意味 | 必須項目 | さらにデモンストレーションの例 |
---|---|---|---|---|
id | 文字列 | お客様のタスク識別(ID) | はい | 固有のタスク識別(ID)同じIDが存在する場合は、前のタスクを先に終了させてからVoDストリーミングを開始します。 |
src | リスト | プルストリーム情報 | はい | 以下のsrcパラメータ仕様リストをご参照ください。 |
forward | リスト | VoDストリーミング情報 | はい | 下記、forward仕様リストをご参照ください。 |
extendParam | アレイ | エクステンションパラメータ | いいえ | extendParam パラメータ仕様をご参照ください |
src パラメータ仕様
フィールド名 | フィールドタイプ | フィールドの意味 | 必須項目 | さらにデモンストレーションの例 |
---|---|---|---|---|
url | 文字列 | VoDファイルアドレス | はい | 複数のVoDファイルアドレスの記入、flv/mp4/m3u8の映像ファイル形式に対応していますが、他のm3u8ファイルを参照したm3u8には対応していません。 |
absofftime | 文字列 | VoDストリーミングの時間範囲が複数ある場合は、セミコロン「;」で区切ってください。 | いいえ | コンテンツがVoDストリーミングで読み取られる時間範囲。例:20181022153000-20181022155000, yyyymmddHHMMSS の形式となります。時間の優先順位は relofftime> absofftime となります。 |
relofftime | 文字列 | VoDストリーミングの時間範囲が複数ある場合は、セミコロン「;」で区切ってください。 | いいえ | 単位は秒となります |
forward パラメータ仕様
フィールド名 | フィールドタイプ | フィールドの意味 | 必須項目 | さらにデモンストレーションの例 |
---|---|---|---|---|
url | 文字列 | プッシュストリームのアドレス | はい | このフィールドは、複数のVoDストリーミングアドレスを記入できますが、rtmpストリームプッシュのみに対応しています。 |
extendParam パラメータ仕様
フィールド名 | フィールドタイプ | フィールドの意味 | 必須項目 | さらにデモンストレーションの例 |
---|---|---|---|---|
ループ | int | ファイルのループ回数 | いいえ | VoDファイルのループ回数。srcに複数のVoDファイルがある場合、順次再生してから、ループ順に再生にします。 |
インデックス | int | ファイルの読み込み順 | いいえ | srcに複数のファイルがある場合、デフォルトでは最初のファイルからVoDファイルストリーミングを開始するとなっています。 |
callBackFileInfo | int | VoDストリーミングファイル情報を毎回呼び出すか。 | いいえ | 0は、VODストリーミングファイル情報を毎回コールバックする必要がないことを意味します。1は、VODストリーミングファイルの情報を毎回コールバックすることです。デフォルト設定は0です |
時限VoDストリーミング
VoDストリーミングの開始/終了時刻を設定するAPIを呼び出し、設定した時刻にVoDストリーミングを開始/終了させることができます。
API:
http://livect.ossin.cdnetworks.com/api/cdn/v2/forwardRequest.action (アジア地域で使用)。
http://livect.osame.cdnetworks.com/api/cdn/v2/forwardRequest.action (ヨーロッパおよびアメリカ地域で使用)
呼び出し方法:POST
HTTPヘッダー:Content-Type:application/json
ボディコンテンツ:
設定の終了タイム
{
"transcallbackurl": "http://www.callback.com/api",
"cmd": "1",
"type": "video",
"list": [{
"id": "123",
"src": [{
"url": "http://www.video.com/live/abc.mp4"
}, {
"url": "http://www.video.com/live/1.flv",
"absofftime": "20181022153000-20181022155000"
}, {
"url": "http://www.video.com/live/2.mp4",
"relofftime": "300-500"
}],
"forward": [{
"url": "rtmp://www.push1.com/live/test"
}, {
"url": "rtmp://www.push2.com/live/test2"
}],
"extendParam": {
"loop": "1",
"index": "1",
"callBackFileInfo": "0"
},
"start": "1540216800000",
"end": "1540220400000"
}]
}
注意:設定した時刻にVoDストリーミングを開始すると、サービスPoPサーバーはVoDストリーミングのループ順にファイルを読み込みます。VoDストリーミングは、設定された終了時刻、またはお客様がインターフェイスを呼び出してタスクを終了させたときに終了されます。
ボディパラメータ仕様
フィールド名 | フィールドタイプ | フィールドの意味 | 必須項目 | さらにデモンストレーションの例 |
---|---|---|---|---|
transcallbackurl | 文字列 | コールバックアドレス | いいえ | |
cmd | 文字列 | VODストリーミングコマンド | はい | cmd=1 VoDストリーミングの開始。cmd=2 VoDストリーミングの終了。cmd=3 ファイルリストの更新。cmd=5 再生再開 |
タイプ | 文字列 | VoDストリーミングタイプ | はい | 固定値とタイプの記入=映像 |
リスト | リスト | プッシュストリームリスト | はい |
リストパラメータ仕様
フィールド名 | フィールドタイプ | フィールドの意味 | 必須項目 | さらにデモンストレーションの例 |
---|---|---|---|---|
id | 文字列 | お客様タスク識別(ID) | はい | 固有のタスク識別(ID)同じIDが存在する場合は、前のタスクを先に終了させてからVoDストリーミングを開始します。 |
src | リスト | プルストリーム情報 | はい | 以下のsrcパラメータ仕様リストをご参照ください。 |
forward | リスト | VoDストリーミング情報 | はい | 下記、forward仕様リストをご参照ください。 |
スタート | int | VODストリーミングの開始時間 | はい | 13桁のUnixタイムスタンプ:スタートが現在時刻より小さい場合、VoDストリーミングは直ちに現在時刻で開始されます。 |
終了 | int | VODストリーミングの終了時間 | はい | 13桁のUnixタイムスタンプ:終了は開始と現在時刻より5分以上経過している必要があります |
extendParam | アレイ | エクステンションパラメータ | いいえ | extendParam パラメータ仕様をご参照ください |
src パラメータ仕様
フィールド名 | フィールドタイプ | フィールドの意味 | 必須項目 | さらにデモンストレーションの例 |
---|---|---|---|---|
url | 文字列 | VoDファイルアドレス | はい | 複数のVoDファイルアドレスの記入、flv/mp4/m3u8の映像ファイル形式に対応していますが、他のm3u8ファイルを参照したm3u8には対応していません。 |
absofftime | 文字列 | VoDストリーミングの時間範囲が複数ある場合は、セミコロン「;」で区切ってください。 | いいえ | コンテンツがVoDストリーミングで読み取られる時間範囲。例:20181022153000-20181022155000, yyyymmddHHMMSS の形式となります。時間の優先順位は relofftime> absofftime となります。 |
relofftime | 文字列 | VoDストリーミングの時間範囲が複数ある場合は、セミコロン「;」で区切ってください。 | いいえ | 単位は秒、時間優先度は end>relofftime となります |
forward パラメータ仕様
フィールド名 | フィールドタイプ | フィールドの意味 | 必須項目 | さらにデモンストレーションの例 |
---|---|---|---|---|
url | 文字列 | プッシュストリームのアドレス | はい | 複数のVoDストリーミングアドレスを記入できますが、rtmpストリームプッシュのみに対応しています。 |
extendParam パラメータ仕様
フィールド名 | フィールドタイプ | フィールドの意味 | 必須項目 | さらにデモンストレーションの例 |
---|---|---|---|---|
ループ | int | ファイルのループ回数 | いいえ | VoDファイルのループ回数。srcに複数のVoDファイルがある場合、順次再生してから、ループ順に再生にします:end>loop |
インデックス | int | ファイルの読み込み順 | いいえ | srcに複数のファイルがある場合、デフォルトでは最初のファイルからVoDファイルストリーミングを開始するとなっています。 |
callBackFileInfo | int | VoDストリーミングファイル情報を毎回呼び出すか。 | いいえ | 0は、VODストリーミングファイル情報を毎回コールバックする必要がないことを意味します。1は、VODストリーミングファイルの情報を毎回コールバックすることです。デフォルト設定は0です |
定時終了
VODストリーミングの定時終了を設定された場合、時間がなるまでに終了したい場合は、終了コマンドを呼び出してタスクを終了することができます。VODストリーミングの終了コマンドには、start および end のパラメータを含んではなりません。
{
"transcallbackurl": "http://www.callback.com/api",
"cmd": "2",
"type": "video",
"list": [{
"id": "123",
"src": [{
"url": ""
}],
"forward": [{
"url": "rtmp://www.push1.com/live/test"
}, {
"url": "rtmp://www.push2.com/live/test2"
}]
}]
}
ファイル更新
VODストリーミングの過程で、インターフェースを通じてVODファイルを更新することができます。そして、VoDストリーミングに更新されたファイルを使用します。ボディ内容:
{
"transcallbackurl": "http://www.callback.com/api",
"cmd": "3",
"type": "video",
"list": [{
"id": "123",
"src": [{
"url": "http://www.video.com/live/d.mp4"
}, {
"url": "http://www.video.com/live/3.flv",
"absofftime": "20181022153000-20181022155000"
}, {
"url": "http://www.video.com/live/4.mp4",
"relofftime": "300-500"
}],
"forward": [{
"url": "rtmp://www.push1.com/live/test"
}, {
"url": "rtmp://www.push2.com/live/test2"
}],
"extendParam": {
"loop": "1",
"index": "1",
"callBackFileInfo": "0",
"waitCrtUrlFinish": "0"
}
}]
}
ボディパラメータ仕様
フィールド名 | フィールドタイプ | フィールドの意味 | 必須項目 | さらにデモンストレーションの例 |
---|---|---|---|---|
cmd | 文字列 | VODストリーミングコマンド | はい | cmd=3 更新ファイルリスト。 |
extendParam パラメータ仕様
フィールド名 | フィールドタイプ | フィールドの意味 | 必須項目 | さらにデモンストレーションの例 |
---|---|---|---|---|
waitCrtUrlFinish | int | ファイルの更新を直ちに反映されるか | いいえ | 0は、ファイルが即座に有効になり、更新ファイルのストリーミングを意味します。1は、現在のVODストリーミングタスクの終了後に有効になり、現在のタスクの終了後に更新ファイルをストリーミングすることです。デフォルトは0です。 |
注意:
再生再開
VODストリーミング終了コマンドを呼び出し、VODストリーミングを終了させると、現在ファイルの再生時間(有効期間48時間)がシステムによって記録されます。再生再開のインタフェースが呼び出されると、VODストリーミングPoPは前回の終了時刻から再開されます。
ボディ内容:
{
"transcallbackurl": "http://www.callback.com/api",
"cmd": "5",
"type": "video",
"list": [{
"id": "123",
"src": [{
"url": "http://www.video.com/live/d.mp4"
}, {
"url": "http://www.video.com/live/3.flv",
"absofftime": "20181022153000-20181022155000"
}, {
"url": "http://www.video.com/live/4.mp4",
"relofftime": "300-500"
}],
"forward": [{
"url": "rtmp://www.push1.com/live/test"
}, {
"url": "rtmp://www.push2.com/live/test2",
"resetUrl": "rtmp://www.push3.com/live/test3"
}]
}]
}
ボディパラメータ仕様
フィールド名 | フィールドタイプ | フィールドの意味 | 必須項目 | さらにデモンストレーションの例 |
---|---|---|---|---|
cmd | 文字列 | VODストリーミングコマンド | はい | cmd=5 再生再開 |
extendParam パラメータ仕様
フィールド名 | フィールドタイプ | フィールドの意味 | 必須項目 | さらにデモンストレーションの例 |
---|---|---|---|---|
resetUrl | 文字列 | VODストリーミングのアドレス変更 | いいえ | 再生再開時に、プッシュストリームアドレスを変更します。デフォルトでは変更ありません。 |
注意:
トランスコードまたはウォーターマーク
インタフェースを介して、VODストリーミングを実現しています。また、VODストリーミングのトランスコードやウォーターマークに関連パラメータを追加した後、インターフェースを介してサポートされるようになります。
ボディ内容:
{
"transcallbackurl": "http://www.callback.com/api",
"cmd": "1",
"type": "video",
"list": [{
"id": "123",
"src": [{
"url": "http://www.video.com/live/d.mp4",
"wmimage": "http://ws.test.com/live/picture1.jpg",
"wmposition": "TOP_LEFT"
}, {
"url": "http://www.video.com/live/3.flv",
"absofftime": "20181022153000-20181022155000"
}, {
"url": "http://www.video.com/live/4.mp4",
"relofftime": "300-500"
}],
"forward": [{
"url": "rtmp://www.push1.com/live/test"
}, {
"url": "rtmp://www.push2.com/live/test2"
}],
"fops": {
"bps": "1200",
"res": "25",
"fps": "1280x640",
"vcodec": "libx265",
"acodec": "libmp3lame"
}
}]
}
リストパラメータ仕様
フィールド名 | フィールドタイプ | フィールドの意味 | 必須項目 | さらにデモンストレーションの例 |
---|---|---|---|---|
fops | アレイ | エンコードパラメータ |
FOPSパラメータ仕様
フィールド名 | フィールドタイプ | フィールドの意味 | 必須項目 | さらにデモンストレーションの例 |
---|---|---|---|---|
bps | 文字列 | ビットレート(bps) | いいえ | 1200 |
res | 文字列 | 解像度 | いいえ | 420x720(インラインの「x」は小文字の「x」です) |
fps | 文字列 | フレームレート(fps) | いいえ | 25 |
vcodec | 文字列 | 映像符号化スキーム | いいえ | Libx264、対応スキーム:libx264、libx265、libvpxなど。ウォーターマークが必要な場合、libx264になります。 |
acodec | 文字列 | 音声符号化スキーム | いいえ | Libfaac、対応スキーム:libmp3lame、libfaac、libvorbis、など。 |
src パラメータ仕様
フィールド名 | フィールドタイプ | フィールドの意味 | 必須項目 | さらにデモンストレーションの例 |
---|---|---|---|---|
wmimage | 文字列 | ウォーターマーク画像のUrlアドレス | いいえ | urlに&がある場合、url文字のエスケープが必要です。 |
wmposition | 文字列 | ウォーターマークの位置 | いいえ | TOP_LEFT左上隅。TOP_CENTER中央。TOP_RIGHT右上隅、CENTER_LEFT中央左。CENTER中央。CENTER_RIGHT中央右。BOTTOM_LEFT左下隅。BOTTOM_CENTER下中央。BOTTOM_RIGHT右下隅。 |
注意:トランスコードとウォーターマークコマンドのその他のパラメータについては、上記のパラメータ仕様を参照してください。
インターフェース応答情報
{
"http_code": "200",
"msg": "receive task success!",
"call_time": 1479952114000
}
リターンステータスコード仕様:
200:インターフェース呼び出し成功。
400:リクエストパラメータエラー(パラメータがない、時間形式エラーなど)
403:リクエスト許可なし。
VODストリーミングのコールバック情報
{
"msg": "Start pushing!",
"code": "0",
"srcurl": "[{\"url\":\"http://www.video.com/live/abc.mp4\"}]",
"cmd": "1",
"id": "124",
"forwardurl": "rtmp://www.push1.com/live/test"
}
フィールド名 | フィールドタイプ | フィールドの意味 | 必須項目 |
---|---|---|---|
id | 文字列 | お客様タスクの識別(ID) | コールバック情報にお客様IDが表示されます。 |
srcurl | 文字列 | プルストリーム情報リスト | |
forwardurl | 文字列 | VODストリーミング情報リスト | |
cmd | 文字列 | VODストリーミングコマンド | cmd=1 VODストリーミング開始。cmd=2 VODストリーミング終了 |
コード | 文字列 | VoDストリーミング結果 | 0:成功。1:失敗。2:警告 |
msg | 文字列 | コールバック情報 |
注:VODストリーミングコールバック後、ピアインターフェースサーバーは200ステータスコードとボディコンテンツを返します。ボディ内容は詳細でなくてもよいが、必ず入れましょう。