En esta página, se describe cómo configurar la configuración durante la creación de canales o extremos de entrada para las funciones de transmisión en vivo, como varias pistas de audio, subtítulos y hojas de sprites.
Configuración a través de la creación de extremos de entrada
Puedes especificar configuraciones para las siguientes funciones durante la creación del extremo de entrada:
Incluir en la lista de anunciantes permitidos de IP
Para restringir el acceso a los extremos de entrada, especifica los rangos de IP de los que debe provenir la transmisión de entrada, como la dirección IP del codificador. La canalización de video solo acepta tráfico de direcciones IP en estos rangos. Los rangos de IP deben estar en formato de bloque CIDR.
Configura el campo securityRules
en el recurso Input
:
{
"type": "RTMP_PUSH",
"securityRules": {
"ipRanges": ["1.2.3.4/32"]
}
}
Configura la función a través de la creación del canal
Puedes especificar configuraciones para las siguientes funciones durante la creación del canal:
Transmisiones de varias tasas de bits
Puedes crear configuraciones de canales avanzadas que admitan varias tasas de bits, resoluciones y velocidades de fotogramas. La siguiente configuración incluye dos muxStream
en la salida, una a 360p con una velocidad de fotogramas de 30 FPS (mux_video_360p30
) y otra a 720p con una velocidad de fotogramas de 60 FPS (mux_video_720p60
). Esta configuración también admite varias tasas de bits de audio.
Consulta Tasa de bits recomendada para obtener más información.
{
"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": [
{
"key": "manifest_dash",
"fileName": "main.mpd",
"type": "DASH",
"muxStreams": [
"mux_video_720p60",
"mux_video_360p30",
"mux_audio_160k",
"mux_audio_64k"
],
"maxSegmentCount": 5
},
{
"key": "manifest_hls",
"fileName": "main.m3u8",
"type": "HLS",
"muxStreams": [
"mux_video_720p60",
"mux_video_360p30",
"mux_audio_160k",
"mux_audio_64k"
],
"maxSegmentCount": 5
}
]
}
Varias pistas de audio
Si el flujo de entrada contiene más de una pista de audio, usa el objeto AudioMapping
para seleccionar la pista de cada 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": [
{
"key": "manifest_dash",
"type": "DASH",
"muxStreams": [
"mux_video",
"mux_first_audio",
"mux_second_audio",
]
}
]
}
Ten en cuenta que Shaka Player no admite las siguientes funciones para transmisiones HLS con varias pistas de audio:
Alterna la reproducción de pistas de audio con segmentos TS.
Selección de pistas de audio secundarias y alternas con segmentos fMP4
Cómo transferir subtítulos CEA 608/708
Si las transmisiones de entrada contienen subtítulos CEA 608/708, puedes reenviarlos a las transmisiones de salida. Agrega el siguiente textStream
a elementaryStreams
cuando crees un Channel
. Este textStream
incorpora los subtítulos CEA 608/708 en todas las transmisiones y representaciones de video de salida.
{
"key": "captions",
"textStream": {
"codec": "cea608"
}
}
Hojas de sprites
Para generar una hoja de sprites, configura el campo spriteSheets
en el recurso Channel
.
{
"spriteSheets": [
{
"format": "jpeg",
"filePrefix": "sprite",
"interval": "2s",
"spriteWidthPixels": 320,
"spriteHeightPixels": 240,
"columnCount": 3,
"rowCount": 3,
"quality": 80
}
]
}