このページでは、入力エンドポイントまたはチャネル作成時に、複数の音声トラック、字幕、スプライト シートなどのライブ ストリーム機能を構成する方法について説明します。
入力エンドポイントの作成を通じて構成する
入力エンドポイントの作成の際に、次の機能の構成を指定できます。
IP 許可リスト
入力エンドポイントへのアクセスを制限するには、入力ストリームの送信元となる IP 範囲(エンコーダの IP アドレスなど)を指定します。動画パイプラインは、これらの範囲内の IP アドレスからのトラフィックのみを受け入れます。IP 範囲は CIDR ブロック形式にする必要があります。
Input
リソースの securityRules
フィールドを構成します。
{
"type": "RTMP_PUSH",
"securityRules": {
"ipRanges": ["1.2.3.4/32"]
}
}
チャネル作成を使用して構成する
チャネルの作成中に、次の機能の構成を指定できます。
複数のビットレートのストリーム
複数のビットレート、解像度、フレームレートをサポートする高度なチャネル構成を作成できます。次の構成では、2 つの muxStream
が生成されています。1 つは 360p でフレームレートは 30 FPS(mux_video_360p30
)、もう 1 つは 720p でフレームレートが 60 FPS(mux_video_720p60
)です。この構成では、複数の音声ビットレートもサポートしています。詳しくは、推奨ビットレートをご覧ください。
{
"inputAttachments":[
{
"key":"input-primary",
"input": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID"
}
],
"output":{
"uri": "gs://BUCKET_NAME"
},
"elementaryStreams": [
{
"key": "es_video_720p60",
"videoStream": {
"h264": {
"profile": "high",
"heightPixels": 720,
"widthPixels": 1280,
"bitrateBps": 5500000,
"frameRate": 60
}
}
},
{
"key": "es_video_360p30",
"videoStream": {
"h264": {
"profile": "high",
"heightPixels": 360,
"widthPixels": 640,
"bitrateBps": 400000,
"frameRate": 30
}
}
},
{
"key": "es_audio_160k",
"audioStream": {
"codec": "aac",
"channelCount": 2,
"bitrateBps": 160000
}
},
{
"key": "es_audio_64k",
"audioStream": {
"codec": "aac",
"channelCount": 2,
"bitrateBps": 64000
}
}
],
"muxStreams": [
{
"key": "mux_video_720p60",
"elementaryStreams": [
"es_video_720p60"
],
"segmentSettings": {
"segmentDuration": "2s"
}
},
{
"key": "mux_video_360p30",
"elementaryStreams": [
"es_video_360p30"
],
"segmentSettings": {
"segmentDuration": "2s"
}
},
{
"key": "mux_audio_160k",
"elementaryStreams": [
"es_audio_160k"
],
"segmentSettings": {
"segmentDuration": "2s"
}
},
{
"key": "mux_audio_64k",
"elementaryStreams": [
"es_audio_64k"
],
"segmentSettings": {
"segmentDuration": "2s"
}
}
],
"manifests": [
{
"fileName": "main.mpd",
"type": "DASH",
"muxStreams": [
"mux_video_720p60",
"mux_video_360p30",
"mux_audio_160k",
"mux_audio_64k"
],
"maxSegmentCount": 5
},
{
"fileName": "main.m3u8",
"type": "HLS",
"muxStreams": [
"mux_video_720p60",
"mux_video_360p30",
"mux_audio_160k",
"mux_audio_64k"
],
"maxSegmentCount": 5
}
]
}
複数の音声トラック
入力ストリームに複数の音声トラックが含まれている場合は、AudioMapping
オブジェクトを使用して、各 AudioStream
のトラックを選択します。
{
"inputAttachments": [
{
"key": "MY-INPUT",
"input": "/projects/PROJECT-ID/locations/LOCATION/inputs/MY-INPUT",
}
],
"output": {
"uri": "gs://BUCKET_NAME/outputs/"
},
"elementaryStreams": [
{
"key": "es_video",
"videoStream": {
"h264": {
"heightPixels": 720,
"widthPixels": 1280,
"bitrateBps": 3000000,
"frameRate": 30
}
}
},
{
"key": "es_first_audio",
"audioStream": {
"codec": "aac",
"bitrateBps": 160000,
"mapping": [
{
"inputKey": "MY-INPUT",
"inputTrack": 1
}
]
}
},
{
"key": "es_second_audio",
"audioStream": {
"codec": "aac",
"bitrateBps": 160000,
"mapping": [
{
"inputKey": "MY-INPUT",
"inputTrack": 2
}
]
}
}
],
"muxStreams": [
{
"key": "mux_video",
"elementaryStreams": ["es_video"],
},
{
"key": "mux_first_audio",
"elementaryStreams": ["es_first_audio"],
},
{
"key": "mux_second_audio",
"elementaryStreams": ["es_second_audio"],
}
],
"manifests": [
{
"type": "DASH",
"muxStreams": [
"mux_video",
"mux_first_audio",
"mux_second_audio",
]
}
]
}
Shaka プレーヤーは、複数の音声トラックを含む HLS ストリームの次の機能をサポートしていません。
TS セグメントを使用した代替音声トラックの再生。
fMP4 セグメントによるセカンダリおよび代替音声トラックの選択。
パススルー CEA 608/708 字幕
入力ストリームに CEA 608/708 の字幕が含まれている場合、字幕を出力ストリームに転送できます。Channel
を作成するときに、次の textStream
を elementaryStreams
に追加します。この textStream
は、すべての出力動画ストリームとレンダーに CEA 608/708 キャプションを埋め込みます。
{
"key": "captions",
"textStream": {
"codec": "cea608"
}
}
スプライト シート
スプライト シートを生成するには、Channel
リソースの spriteSheets
フィールドを構成します。
{
"spriteSheets": [
{
"format": "jpeg",
"filePrefix": "sprite",
"interval": "2s",
"spriteWidthPixels": 320,
"spriteHeightPixels": 240,
"columnCount": 3,
"rowCount": 3,
"quality": 80
}
]
}