Esta página descreve como configurar as configurações durante a criação de um canal ou endpoint de entrada para recursos de transmissão ao vivo, como várias faixas de áudio, legendas e spritesheets.
Configurar com a criação de endpoints de entrada
É possível especificar configurações para os seguintes recursos durante a criação de um endpoint de entrada:
Lista de permissões de IP
É possível restringir o acesso a endpoints de entrada especificando os intervalos de IP de origem do fluxo de entrada, como o endereço IP do codificador. O pipeline de vídeo só aceita tráfego de endereços IP nesses intervalos. Os intervalos de IP precisam estar no formato de bloco CIDR.
Configure o campo securityRules
no recurso Input
:
{
"type": "RTMP_PUSH",
"securityRules": {
"ipRanges": ["1.2.3.4/32"]
}
}
Configurar na criação do canal
Você pode especificar configurações para os seguintes recursos durante o canal criação:
Vários streams de taxa de bits
É possível criar configurações avançadas de canais que oferecem suporte a vários bitrates,
resoluções e taxas de frames. A configuração a seguir inclui dois
muxStream
s na saída, um em 360p com uma taxa de quadros de 30 QPS
(mux_video_360p30
) e outro em 720p com uma taxa de quadros de 60 QPS
(mux_video_720p60
). Essa configuração também oferece suporte a vários bitrates de áudio.
Consulte
Taxas de bits recomendadas para
mais informações.
{
"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
}
]
}
Várias faixas de áudio
Se o fluxo de entrada tiver mais de uma faixa de áudio, use o
Objeto AudioMapping
para selecionar a faixa para 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",
]
}
]
}
O Shaka Player não é compatível com os seguintes recursos para HLS: transmissões com várias faixas de áudio:
Alternar a reprodução da faixa de áudio com segmentos de TS.
Seleção de faixa de áudio secundária e alternativa com segmentos fMP4.
Legendas de passagem CEA 608/708
Se os streams de entrada tiverem legendas CEA 608/708, elas podem ser encaminhadas
aos streams de saída. Adicione o seguinte textStream
ao
elementaryStreams
ao criar um Channel
. Essa textStream
incorpora as legendas CEA 608/708 em todas as transmissões e renderizações de vídeo de saída.
{
"key": "captions",
"textStream": {
"codec": "cea608"
}
}
Folhas de sprite
Para gerar uma spritesheet, configure o campo spriteSheets
no
recurso Channel
.
{
"spriteSheets": [
{
"format": "jpeg",
"filePrefix": "sprite",
"interval": "2s",
"spriteWidthPixels": 320,
"spriteHeightPixels": 240,
"columnCount": 3,
"rowCount": 3,
"quality": 80
}
]
}