Fornecer vídeo de transmissão ao vivo com o CloudFront e o AWS Media Services - Amazon CloudFront

Fornecer vídeo de transmissão ao vivo com o CloudFront e o AWS Media Services

Para usar os AWS Media Services com o CloudFront para entregar conteúdo ao vivo para uma audiência global, siga as orientações incluídas nesta seção.

Use o AWS Elemental MediaLive para codificar streamings de vídeo ao vivo em tempo real. Para codificar um streaming de vídeo grande, o MediaLive o compacta em versões menores (codifica) que podem ser distribuídas aos visualizadores.

Depois de comprimir um fluxo de vídeo ao vivo, você pode usar uma das duas opções principais a seguir para preparar e veicular o conteúdo:

  • Converta o conteúdo nos formatos necessários e forneça-o: se você precisar de conteúdo em vários formatos, use o AWS Elemental MediaPackage para empacotar o conteúdo para diferentes tipos de dispositivo. Ao empacotar o conteúdo, você também pode implementar recursos extras e adicionar gerenciamento de direitos digitais (DRM) para evitar o uso não autorizado de seu conteúdo. Para obter instruções passo a passo sobre como usar o CloudFront para fornecer conteúdo formatado pelo MediaPackage, consulte Veicular vídeo ao vivo formatado com o AWS Elemental MediaPackage.

  • Armazene e forneça o conteúdo usando uma origem escalável: se o conteúdo for codificado pelo MediaLive nos formatos exigidos por todos os dispositivos que seus visualizadores usam, use uma origem altamente escalável, como oAWS Elemental MediaStore para fornecer o conteúdo. Para obter instruções passo a passo sobre o uso do CloudFront para fornecer conteúdo armazenado em um contêiner do MediaStore, consulte Veicular vídeo usando o AWS Elemental MediaStore como origem.

Depois de configurar a origem usando uma dessas opções, você pode distribuir o streaming de vídeo ao vivo para os visualizadores usando o CloudFront.

dica

Você pode saber mais sobre uma solução da AWS que implanta automaticamente serviços para a criação de uma experiência de visualização em tempo real altamente disponível. Para ver as etapas para implantar essa solução automaticamente, consulte Implantação automatizada de streaming ao vivo.

Veicular vídeo usando o AWS Elemental MediaStore como origem

Se você tiver vídeo armazenado em um contêiner do AWS Elemental MediaStore poderá criar uma distribuição do CloudFront para fornecer o conteúdo.

Para começar, conceda ao CloudFront acesso ao contêiner do MediaStore. Crie uma distribuição do CloudFront e configure-a para trabalhar com o MediaStore.

Para fornecer conteúdo de um contêiner do AWS Elemental MediaStore

  1. Siga o procedimento em Permitir que o Amazon CloudFront acesse o contêiner do AWS Elemental MediaStore e retorne a estas etapas para criar a distribuição.

  2. Crie uma distribuição com as seguintes configurações:

    Domínio de origem

    O endpoint de dados atribuído ao contêiner do MediaStore. Na lista suspensa, escolha o contêiner do MediaStore para o vídeo ao vivo.

    Caminho de origem

    A estrutura de pastas no contêiner do MediaStore onde os objetos são armazenados. Para obter mais informações, consulte Caminho de origem.

    Adicionar cabeçalho personalizado

    Adicione nomes e valores de cabeçalhos se desejar que o CloudFront inclua cabeçalhos personalizados ao encaminhar solicitações para a origem.

    Política de protocolo do visualizador

    Escolha Redirect HTTP to HTTPS (Redirecionar HTTP para HTTPS). Para obter mais informações, consulte Política de protocolo do visualizador.

    Política de cache e política de solicitação de origem

    Em Cache policy (Política de cache), escolha Create policity (Criar política) e, em seguida, crie uma política de cache apropriada para suas necessidades de armazenamento em cache e duração de segmento. Depois de criar a política, atualize a lista de políticas de cache e escolha a que você acabou de criar.

    Em Origin request policy (Política de solicitação de origem), escolha CORS-CustomOrigin na lista suspensa.

    Para as outras configurações, você pode definir valores específicos com base em outros requisitos técnicos ou nas necessidades de sua empresa. Para obter uma lista de todas as opções para distribuições e informações sobre como configurá-las, consulte Valores especificados ao criar ou atualizar uma distribuição.

  3. Para links em sua aplicação (por exemplo, um leitor multimídia), especifique o nome do arquivo de mídia no mesmo formato usado para outros objetos distribuídos usando o CloudFront.

Veicular vídeo ao vivo formatado com o AWS Elemental MediaPackage

Se você formatou um stream ao vivo usando o AWS Elemental MediaPackage, poderá criar uma distribuição do CloudFront e configurar comportamentos de cache para fornecer o stream ao vivo. O processo a seguir pressupõe que você já tenha criado um canal e adicionado endpoints para o vídeo ao vivo usando o MediaPackage.

nota

Em vez de usar o processo a seguir, você pode optar por criar automaticamente uma distribuição do CloudFront ao salvar um canal no MediaPackage. Para obter mais informações, consulte Criar uma distribuição no AWS Elemental MediaPackage no Guia do usuário do AWS Elemental MediaPackage.

Para criar uma distribuição do CloudFront para o MediaPackage manualmente, siga estas etapas:

Etapa 1: Criar e configurar uma distribuição do CloudFront

Execute o procedimento a seguir para configurar uma distribuição do CloudFront para o canal de vídeo ao vivo que você criou com o MediaPackage.

Como criar uma distribuição para seu canal de vídeo ao vivo

  1. Faça login no AWS Management Console e abra o console do CloudFront em https://console.aws.amazon.com/cloudfront/v3/home.

  2. Escolha Create distribution (Criar distribuição).

  3. Escolha as configurações para a distribuição, incluindo o seguinte:

    Domínio de origem

    A origem em que o canal de vídeo ao vivo e os endpoints do MediaPackage estão. Escolha o campo de texto e, na lista suspensa, escolha o canal do MediaPackage para o vídeo ao vivo. Você pode mapear um canal para vários endpoints de origem.

    Se você criou o canal usando outra conta da AWS, digite o valor da URL de origem no campo. A origem deve ser um URL de HTTPS.

    Para obter mais informações, consulte Domínio de origem.

    Caminho de origem

    O caminho para o endpoint do MediaPackage de onde o conteúdo é fornecido. Quando você escolhe um nome de domínio de origem, o CloudFront preenche o caminho de origem.

    Se você usou um canal de outra conta da AWS em Origin domain (Domínio de origem), o campo Origin path (Caminho de origem) não será preenchido para você. É necessário obter o caminho de origem correto da outra conta para que você possa inseri-lo manualmente.

    Para obter mais informações sobre como um caminho de origem funciona, consulte Caminho de origem.

    Para as outras configurações de distribuição, defina valores específicos com base em outros requisitos técnicos ou nas necessidades de sua empresa. Para obter uma lista de todas as opções para distribuições e informações sobre como configurá-las, consulte Valores especificados ao criar ou atualizar uma distribuição.

    Quando terminar de escolher as outras configurações de distribuição, escolha Create distribution (Criar distribuição).

  4. Escolha a distribuição que acabou de criar e, em seguida, Behaviors (Comportamentos).

  5. Selecione o comportamento de cache padrão e escolha Edit (Editar). Especifique as configurações do comportamento de cache correto para o canal que você escolheu para a origem. Posteriormente, você incluirá uma ou mais origens adicionais e editará as configurações do comportamento de cache delas.

  6. Acesse a página Distribuições do CloudFront.

  7. Aguarde até que o valor da coluna Last modified (Última modificação) da distribuição seja alterada de Deploing (Em implantação) para uma data e hora, indicando que o CloudFront criou a distribuição.

Etapa 2: Adicionar os outros endpoints como origens

Repita as etapas aqui para adicionar cada um dos endpoints do canal do MediaPackage à distribuição.

Para adicionar outros endpoints como origens

  1. No console do CloudFront, escolha a distribuição que você criou para o canal.

  2. Escolha Origins (Origens) e Create origin (Criar origem).

  3. Em Origin domain (Domínio de origem), na lista suspensa, escolha um endpoint do MediaPackage para o canal. O CloudFront preenche automaticamente o campo Origin path (Caminho de origem).

  4. Para as outras configurações, defina valores com base em outros requisitos técnicos ou nas necessidades de sua empresa. Para obter mais informações, consulte Configurações de origem.

  5. Escolha Create origin (Criar origem).

Etapa 3: Configurar comportamentos de cache para todos os endpoints

Para cada parâmetro, você deve configurar comportamentos de cache para adicionar padrões de caminho que roteiam solicitações corretamente. Os padrões de caminho especificados dependem do formato de vídeo que você está veiculando. O procedimento a seguir inclui as informações de padrão de caminho a serem usadas para os formatos Apple HLS, CMAF, DASH e Microsoft Smooth Streaming.

Geralmente, você configura dois comportamentos de cache para cada endpoint:

  • O manifesto pai, que é o índice para seus arquivos.

  • Os segmentos, que são os arquivos do conteúdo de vídeo.

Para criar um comportamento de cachê de um endpoint

  1. No console do CloudFront, escolha a distribuição que você criou para o canal.

  2. Escolha a guia Behaviors (Comportamentos) e Create behavior (Criar comportamento).

  3. Em Path pattern (Padrão de caminho), digite o primeiro padrão indicado na orientação a seguir para cada tipo de endpoint. Por exemplo, para um endpoint DASH, digite *.mpd.

    Padrões de caminho

    Para um endpoint HLS, crie os seguintes dois comportamentos de cache:

    • Para manifestos pai e filho, use *.m3u8.

    • Para os segmentos de conteúdo, use *.ts.

    Para um endpoint CMAF, crie os seguintes dois comportamentos de cache:

    • Para manifestos pai e filho, use *.m3u8.

    • Para os segmentos de conteúdo, use *.mp4.

    Para um endpoint DASH, crie os seguintes dois comportamentos de cache:

    • Para o manifesto pai, use *.mpd.

    • Para os segmentos de conteúdo, use *.mp4.

    Para um endpoint Microsoft Smooth Streaming, apenas um manifesto é veiculado e, portanto, você cria apenas um comportamento de cache: index.ism/*.

  4. Para cada comportamento de cache, especifique os valores das seguintes configurações:

    Política de protocolo do visualizador

    Escolha Redirect HTTP to HTTPS (Redirecionar HTTP para HTTPS).

    Política de cache e política de solicitação de origem

    Em Cache policy (Política de cache), escolha Create policy (Criar política). Para sua nova política de cache, especifique as seguintes configurações:

    Minimum TTL (TTL mínimo)

    Defina como cinco segundos ou menos, para ajudar a evitar o fornecimento de conteúdo obsoleto.

    Query strings (Strings de consulta)

    Em Query strings (Strings de consulta) (em Cache key settings (Configurações da chave de cache)), escolha Include specified query strings (Incluir strings de consulta especificadas). Em Allow (Permitir), digite os valores a seguir e, em seguida, escolha Add item (Adicionar item):

    • Adicione m como o parâmetro da string de consulta que você deseja que o CloudFront use como base para o armazenamento em cache. A resposta do MediaPackage sempre inclui a etiqueta ?m=### para capturar o tempo modificado do endpoint. Se o conteúdo já estiver armazenado em cache com um valor diferente para essa tag, o CloudFront solicitará um novo manifesto em vez de fornecer a versão em cache.

    • Se você estiver usando a funcionalidade de visualização em horário deslocado no MediaPackage, especifique start e end como parâmetros de string de consulta adicionais no comportamento de cache para solicitações de manifesto (*.m3u8, *.mpd e index.ism/*). Dessa forma, o conteúdo é fornecido especificamente para o período solicitado no manifesto pedido. Para obter mais informações sobre visualização com deslocamento de horário e formatação dos parâmetros de solicitação de início e fim de conteúdo, consulte Visualização com deslocamento de horário no Guia do usuário do AWS Elemental MediaPackage.

    • Se estiver usando o recurso de filtragem de manifestos no MediaPackage, especifique aws.manifestfilter como um parâmetro adicional de string de consulta para a política de consulta que você usa com o comportamento de cache para solicitações de manifesto (*.m3u8, *.mpd e index.ism/*). Isso configura a distribuição para encaminhar a string de consulta aws.manifestfilter para a origem do MediaPackage, que é necessário para que o recurso de filtragem de manifestos funcione. Para obter mais informações, consulte Filtragem de manifestos no Guia do usuário do AWS Elemental MediaPackage.

  5. Escolha Create (Criar).

  6. Depois de criar a política de cache, volte para o fluxo de trabalho de criação do comportamento do cache. Atualize a lista de políticas de cache e escolha a política que você acabou de criar.

  7. Escolha Create behavior (Criar comportamento).

  8. Se o endpoint não for um endpoint do Microsoft Smooth Streaming, repita essas etapas para criar um segundo comportamento de cache.

Etapa 4: Usar o CloudFront para atender ao canal de transmissão ao vivo

Depois de criar a distribuição, adicionar as origens e criar os comportamentos de cache, você pode fornecer o canal de streaming ao vivo usando o CloudFront. O CloudFront roteia solicitações dos visualizadores para os endpoints MediaPackage corretos com base nas configurações que você definiu para os comportamentos de cache.

Para links em sua aplicação (por exemplo, um media player), especifique o URL do arquivo de mídia no formato padrão para URLs do CloudFront. Para obter mais informações, consulte Personalizar o formato do URL para arquivos no CloudFront.