Auf dieser Seite wird beschrieben, wie Sie Einstellungen für die Erstellung von Eingabeendpunkten oder Kanälen für Livestreamfunktionen wie mehrere Audiotracks, Untertitel und Sprite Sheets konfigurieren.
Durch Eingabe eines Endpunkts konfigurieren
Sie können Konfigurationen für die folgenden Features während der Eingabe-Endpunkterstellung angeben:
IP-Zulassungsliste
Du kannst den Zugriff auf Eingabeendpunkte einschränken, indem du IP-Bereiche angibst, aus denen der Eingabestream stammen soll, z. B. die IP-Adresse des Encoders. Die Videopipeline akzeptiert nur Traffic von IP-Adressen in diesen Bereichen. Die IP-Bereiche müssen im CIDR-Blockformat vorliegen.
Konfigurieren Sie das Feld securityRules
in der Ressource Input
:
{
"type": "RTMP_PUSH",
"securityRules": {
"ipRanges": ["1.2.3.4/32"]
}
}
Konfiguration über die Kanalerstellung
Beim Erstellen eines Kanals können Sie Konfigurationen für die folgenden Funktionen festlegen:
Mehrere Bitratenstreams
Sie können erweiterte Kanalkonfigurationen erstellen, die mehrere Bitraten, Auflösungen und Framerates unterstützen. Die folgende Konfiguration enthält zwei muxStream
s in der Ausgabe: eine mit 360p mit einer Framerate von 30 fps (mux_video_360p30
) und eine mit 720p mit einer Framerate von 60 fps (mux_video_720p60
). Diese Konfiguration unterstützt auch mehrere Audiobitrates.
Weitere Informationen finden Sie unter Empfohlene Bitraten.
{
"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
}
]
}
Mehrere Audiotracks
Wenn der Eingabestream mehr als einen Audiotrack enthält, verwenden Sie das Objekt AudioMapping
, um den Track für jeden AudioStream
auszuwählen.
{
"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",
]
}
]
}
Beachten Sie, dass Shaka Player die folgenden Funktionen für HLS-Streams mit mehreren Audiotracks nicht unterstützt:
Alternative Audiowiedergabe mit TS-Segmenten.
Sekundäre und alternative Audiotrackauswahl mit fMP4-Segmenten.
Passthrough CEA 608/708 Untertitel
Wenn die Eingabestreams CEA 608/708-Untertitel enthalten, können Sie die Untertitel an die Ausgabestreams weiterleiten. Fügen Sie beim Erstellen einer Channel
den folgenden textStream
zu elementaryStreams
hinzu. Mit textStream
werden die CEA-608/708-Untertitel in alle Ausgabevideostreams und -wiedergaben eingebettet.
{
"key": "captions",
"textStream": {
"codec": "cea608"
}
}
Sprite-Blätter
Zum Generieren eines Sprite-Tabellenblatts konfigurieren Sie das Feld spriteSheets
in der Ressource Channel
.
{
"spriteSheets": [
{
"format": "jpeg",
"filePrefix": "sprite",
"interval": "2s",
"spriteWidthPixels": 320,
"spriteHeightPixels": 240,
"columnCount": 3,
"rowCount": 3,
"quality": 80
}
]
}