Configuração de transmissão ao vivo AWS e OBS
Crie um fluxo de trabalho ao vivo AWS, configure OBS, teste a reprodução DRM e interrompa os recursos após o evento.
Trial e contas pagas podem criar canais DRM ao vivo. Uma conexão de armazenamento S3 não é necessária para este fluxo de trabalho. AWS cobra separadamente pela codificação de mídia, embalagem, entrega e recursos retidos.
O caminho de entrega é OBS → AWS Elemental MediaLive → MediaPackage v2 → CloudFront → o player DRM-X. DRM-X fornece chaves de criptografia através de SPEKE e autoriza cada visualizador com um DRM License Token.
Crie um evento ao vivo em DRM-X#
- Faça login no console do cliente e selecione a organização e o ambiente que será o proprietário do evento.
- Abra Live events → New Live Channel. Insira um título. Para uma nova conta, escolha Create new live content e insira um Content ID exclusivo. Alternativamente, selecione conteúdo ao vivo existente.
- Escolha a região AWS, intervalo de rotação e janela DVR. Use a mesma região AWS para MediaLive, MediaPackage e ponte SPEKE. Os valores iniciais são 600 segundos para rotação e 7.200 segundos para mídia retida DVR.
- Crie o canal. Salve seu segredo de origem único com segurança, junto com a integração ID e IDs de recursos separados DASH e HLS. Nunca coloque o segredo em um player, captura de tela, ticket de suporte ou repositório público.
O canal DRM-X configura conteúdo e autorização. Iniciar o DRM-X Live Run e iniciar o codificador AWS são operações separadas.
Configure sua conta AWS#
- Use uma conta AWS com cobrança habilitada e um operador autorizado que possa gerenciar funções de serviço CloudFormation, MediaLive, MediaPackage v2, API Gateway, IAM e CloudFront. Verifique as cotas regionais e os preços atuais antes do ensaio.
- Baixe o modelo DRM-X AWS CloudFormation modelo do console. Crie a pilha com
CreateMediaResources=false, os IDs de integração/recurso DRM-X e o segredo de origem. O modelo cria funções de serviço com escopo definido e uma ponte SPEKE autorizada por IAM. - Em DRM-X Configure AWS, insira sua conta AWS ID e o
SpekeRoleArnexato da pilha. Inicie o DRM-X Live Run para que as solicitações de chave autenticadas possam ser bem-sucedidas. - Atualize a mesma pilha com
CreateMediaResources=true. Mantenha o segredo existente e outros parâmetros. Aguarde a conclusão da pilha. - Copie as saídas da pilha
DashOriginUrl,HlsOriginUrl,DashCloudFrontUrleHlsCloudFrontUrlnos campos DRM-X correspondentes. Os visualizadores usam os URLs CloudFront. A origem fica restrita a CloudFront. - Crie uma entrada RTMP push no MediaLive. Permita somente o IP público atual do transmissor com uma regra de segurança de entrada
/32. Atualize a regra se o provedor de Internet alterar esse IP. - Crie o canal MediaLive com o
MediaLiveRoleArnda pilha, anexe a entrada e adicione um grupo de saída MediaPackage v2 CMAF usando o grupo de canais da pilha e o nome do canal. Um único pipeline é adequado para um teste limitado; um evento de produção precisa de um design de redundância apropriado.
O modelo gera DASH-CENC para Widevine e PlayReady, e HLS-CBCS para FairPlay. Os contratos PRESET_AUDIO_1 e PRESET_VIDEO_3 usam chaves separadas para áudio, SD, HD e UHD. Instalações que usam PRESET_VIDEO_2 devem revisar a atualização do contrato de criptografia antes de adicionar UHD com uma política distinta. Consulte as predefinições de criptografia da AWS.
Configurar OBS Studio para 4K#
- Duplique seu perfil OBS e sua coleção de cenas. Dê a eles um nome reconhecível para o evento ao vivo.
- Adicione o vídeo pretendido ou a fonte de captura. Confirme se é realmente 3840×2160, encaixe-o na tela e verifique o áudio. Para um arquivo de ensaio, habilite Loop. Oculte janelas não utilizadas ou capturas de área de trabalho.
- Em Settings → Video, defina a tela e a resolução de saída para
3840x2160e escolha30fps para este exemplo. - Em Output → Advanced → Streaming, escolha um codificador de hardware H.264 compatível, como NVIDIA NVENC H.264. Use CBR
18000 Kbps, um intervalo de quadro-chave2 s, high profile e desative o redimensionamento de saída. Com NVENC, P5 e Alta Qualidade são um ponto de partida; verifique a carga de codificação durante o ensaio. - Use áudio AAC e estéreo de 48 kHz. Desative microfones indesejados e fontes de áudio de desktop.
- Em Stream, selecione Custom. Divida a entrada MediaLive RTMP URL no servidor/aplicativo URL e seu componente de nome de fluxo final. Coloque o componente final em Stream Key. Mantenha-o mascarado.
Use uma conexão de upload estável com espaço acima da taxa de bits combinada de vídeo e áudio. Se OBS relatar quedas sustentadas na rede ou na codificação, corrija-as antes de abrir o evento aos espectadores. Consulte OBS orientação de codificação de hardware.
Configurar saídas adaptativas#
Para as configurações OBS acima, use uma especificação de entrada AVC/UHD MediaLive com um máximo de 20 Mbps. Crie as seguintes saídas H.264 a 30 fps, com GOPs fechados de 2 segundos e segmentos CMAF alinhados de 6 segundos. Mantenha o áudio AAC em sua própria versão.
| Resolução | Exemplo de taxa de bits de vídeo | Grupo chave |
|---|---|---|
| 3840×2160 | 16 Mbps | UHD |
| 1920×1080 | 5 Mbps | HD |
| 1280×720 | 2.5 Mbps | HD |
| 854×480 | 1.2 Mbps | SD |
| 640×360 | 0.7 Mbps | SD |
Estas são configurações de ensaio, não uma garantia de qualidade. Um canal 4K ainda precisa de representações mais baixas para telas menores, redes restritas e dispositivos cujo nível de segurança DRM limita a qualidade. Verifique o codec MediaLive atual e o suporte à resolução ao escolher um codificador diferente.
Reutilizando um canal após um evento anterior#
Um codificador em execução não é prova de que os espectadores recebem mídia nova. Verifique o cabeçalho MediaPackage manifest-last-updated e as resoluções anunciadas. Se um canal reutilizado ainda servir segmentos antigos após uma alteração no codificador ou na representação, siga o AWS procedimento de redefinição do histórico do canal.
- Confirme se o conteúdo DVR anterior pode ser removido permanentemente; uma redefinição não é uma operação de reversão.
- Pare OBS e o canal MediaLive. Aguarde o estado Idle no MediaLive.
- Em MediaPackage, redefine o histórico do canal de teste específico. Aguarde pelo menos 30 segundos após a conclusão da redefinição.
- Inicie MediaLive, aguarde o estado Running e inicie OBS. Verifique novamente a atualização da mídia DASH/HLS, a troca SPEKE e a reprodução nos dispositivos.
Adicione o evento a PHP, Android e iOS#
Use o mesmo Content ID ativo e ambiente em todos os exemplos. Mantenha Site Key e Access Key em seu servidor PHP. O evento de amostra hospedado é aws-live-test-20260902, intitulado 4K Live DRM Test; ele está disponível apenas durante um ensaio.
Em PHP, adicione uma entrada de lista de reprodução confiável com id, title e type: live. Faça login novamente para atualizar os direitos de sessão da amostra. O back-end resolve o manifesto ativo registrado e rejeita um tipo fornecido pelo cliente que não corresponde ao catálogo.
'playlist' => [
['id' => 'your-live-content-id', 'title' => 'My live event', 'type' => 'live'],
],Em Android, adicione DrmXPlaylistItem("your-live-content-id", "My live event", "live") e passe seu tipo de conteúdo ao preparar a reprodução. No exemplo da Apple, use DrmXPlaylistItem(contentId: "your-live-content-id", title: "My live event", contentType: .live). As entradas ao vivo são para streaming e não devem entrar na fila de download offline.
Iniciar, verificar e parar#
- Inicie o DRM-X Live Run e depois o canal AWS MediaLive. Aguarde o estado Running no MediaLive.
- Inicie a transmissão em OBS. Verifique sua taxa de bits, quadros perdidos, áudio e carga do codificador.
- Confirme que os manifestos DASH/HLS continuam sendo atualizados e contêm as representações e a sinalização DRM esperadas. Verifique imagem e áudio decodificados no navegador, no Android com Widevine e no iPhone com FairPlay. Mantenha um player conectado durante pelo menos uma rotação de chaves e depois teste a entrada de um novo espectador.
- Ao terminar o teste, pare a transmissão OBS, o canal MediaLive e o DRM-X Live Run. Confirme que MediaLive voltou ao estado Idle.
Parar somente OBS não interrompe a cobrança do codificador AWS. Verifique separadamente os custos de entradas mantidas, empacotamento/armazenamento, solicitações e distribuição. Consulte os preços de MediaLive e o console de cobrança da AWS.
Use Android SDK 1.0.0-preview.13 ou posterior para manifestos ao vivo sem cache. Atualize o aplicativo de avaliação Android existente para preservar os vídeos baixados. A amostra atualizada da Apple preserva as chaves ID e IV enquanto compacta os metadados MediaPackage para caber no limite do identificador SPC de 200 bytes de FairPlay. Sua preferência de resolução fornece largura e altura para que a reprodução adaptativa possa atingir 4K.
Safari reprodução ao vivo
Use Web SDK 1.2.0-preview.13 ou posterior para Safari. Ele seleciona Apple Media Keys nativo quando disponível em macOS, iOS e iPadOS, e mantém esse API nas alterações da lista de reprodução ao vivo e VOD. A reprodução ao vivo não volta para MSE/SINF, que pode solicitar chaves de segmento de inicialização obsoletas após MediaPackage girar suas chaves. Mantenha a chave atual exata ID e IV na sinalização HLS.
DRM-X SPEKE emite um identificador de ativo KeyId/IV compacto para que Safari possa solicitar licenças FairPlay dentro do limite de tamanho do identificador. O DRM License Token ainda autoriza o conteúdo e a chave exatos. Após atualizar o Key Service, verifique se seu gateway SPEKE dependente está em execução; um codificador que recebe vídeo não pode publicar uma nova saída protegida enquanto a entrega da chave estiver indisponível.
Antes de reiniciar um ensaio
- Verifique se o endpoint SPEKE está acessível e o console mostra uma troca recente. Um codificador que recebe entrada ainda pode servir mídia obsoleta quando a entrega da chave falha.
- Mantenha os caches de mídia VOD/offline separados da fonte do manifesto ao vivo.
- Verifique as dimensões reais decodificadas; selecionar um canal 4K por si só não prova a reprodução de 4K.
DRM-X 6.0