En esta página se describe cómo configurar los ajustes durante la creación de un punto final de entrada o de un canal para las funciones de emisión en directo, como varias pistas de audio, subtítulos y hojas de sprites.
Configurar mediante la creación de un punto final de entrada
Puede especificar configuraciones para las siguientes funciones durante la creación del endpoint de entrada:
Incluir IPs en lista de IP permitidas
Puede restringir el acceso a los endpoints de entrada especificando los intervalos de IP desde los que debe proceder el flujo de entrada, como la dirección IP del codificador. La canalización de vídeo solo acepta tráfico de direcciones IP de estos intervalos. Los intervalos de IP deben estar en formato de bloque CIDR.
Configure el campo securityRules
en el recurso Input
:
{
"type": "RTMP_PUSH",
"securityRules": {
"ipRanges": ["1.2.3.4/32"]
}
}
Configurar durante la creación del canal
Puedes especificar configuraciones para las siguientes funciones durante la creación de canales:
Streams con varias tasas de bits
Puedes crear configuraciones de canal avanzadas que admitan varias tasas de bits, resoluciones y frecuencias de fotogramas. La siguiente configuración incluye dos muxStream
s en la salida: uno a 360p con una velocidad de fotogramas de 30 FPS (mux_video_360p30
) y otro a 720p con una velocidad de fotogramas de 60 FPS (mux_video_720p60
). Esta configuración también admite varias frecuencias de bits de audio.
Consulta la sección Tasas de bits recomendadas 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 las secuencias HLS con varias pistas de audio:
Reproducción de pistas de audio alternativas con segmentos TS.
Selección de pistas de audio secundarias y alternativas con segmentos fMP4.
Subtítulos CEA 608/708
Si los flujos de entrada contienen subtítulos CEA 608/708, puedes reenviarlos a los flujos de salida. Añade lo siguiente textStream
a elementaryStreams
al crear un Channel
. De esta forma, textStream
se insertan los subtítulos CEA 608/708 en todos los flujos y las versiones de vídeo 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
}
]
}