Entrega de streaming de vídeo ao vivo com o CloudFront e os AWS Media Services - Amazon CloudFront

Entrega de streaming de vídeo ao vivo com o CloudFront e os 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 Fornecer 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 Veiculação de vídeo usando AWS Elemental MediaStore como a 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.

Veiculação de vídeo usando AWS Elemental MediaStore como a 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 MediaStore, e retorne a estas etapas para criar a distribuição.

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

    Nome de 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. O formato de uma origem do MediaStore é Container-OriginEndpointURL. Por exemplo, mymediastore.data.mediastore.us-east-1.amazonaws.com. Para obter mais informações, consulte Nome de domínio de origem.

    Origin Path

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

    Cabeçalhos personalizados de origem

    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 Redirecionar HTTP para HTTPS. Para obter mais informações, consulte Política de protocolo do visualizador.

    Armazenamento de objetos em cache

    Se o codificador que você usa não puder definir controles de cache em todos os objetos, escolha Customize (Personalizar). Se o codificador puder definir controles de cache em todos os objetos, escolha Origin Cache Headers (Cabeçalhos de caches de origem).

    TTL mínimo, TTL máximo e TTL padrão

    Defina conforme apropriado para suas necessidades de armazenamento em cache e durações de segmentos.

    Error Caching Minimum TTL

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

    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 na.

  3. Depois que o CloudFront provisionar sua distribuição, edite o comportamento de cache para configurar o compartilhamento de recursos de origem cruzada (CORS) para a origem:

    1. Selecione a distribuição e escolha Distribution Settings (Configurações da distribuição).

    2. Escolha Behaviors (Comportamentos), selecione sua origem e, em seguida, escolha Edit (Editar).

    3. Em Cache Based on Selected Request Headers (Cache com base em cabeçalhos de solicitações selecionados), escolha Whitelist (Lista de permissões) e, em seguida, em Whitelist Headers (Cabeçalhos da lista de permissões), selecione Origin (Origem).

    Para saber mais sobre o CORS, consulte Configuração do CloudFront para respeitar as configurações do compartilhamento de recursos entre origens (CORS) em Armazenar conteúdo em cache com base nos cabeçalhos de solicitação.

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

Fornecer 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 Criar distribuição.

  3. Na página Selecione um método de distribuição do conteúdo, na seção Web, escolha Conceitos básicos.

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

    Nome de 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 Nome de domínio de origem no Valores especificados ao criar ou atualizar uma distribuição na.

    Origin Path

    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 para Origin Domain Name (Nome de domínio de origem), o campo Origin Path (Caminho de origem) não estará 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 Origin Path em Valores especificados ao criar ou atualizar uma distribuição na.

    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 na.

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

  5. Escolha a distribuição que acabou de criar e, depois, escolha a guia Behaviors (Comportamentos).

  6. Escolha o comportamento de cache padrão e especifique as configurações corretas de comportamento de cache para o canal que você escolheu para a origem. Mais tarde, você incluirá uma ou mais origens adicionais mais tarde e editará as configurações do comportamento de cache delas.

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

  8. Aguarde até que o valor da coluna Status da distribuição seja alterada de In Progress (Em andamento) para Deployed (Implantado), 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 a guia Origins and Origin Groups (Origens e grupos de origem) e escolha Create Origin (Criar origem).

  3. Em Origin Domain Name (Nome de 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 em Valores especificados ao criar ou atualizar uma distribuição na.

  5. Escolha Criar.

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 escolha Create Behavior (Criar comportamento).

  3. Na seção Cache Behavior Settings (Configurações de comportamento de cache), preencha Path Pattern (Padrão de caminho) com o primeiro padrão indicado na orientação a seguir para cada tipo de endpoint. Por exemplo, para um endpoint DASH, digite *.mpd para Path Pattern (Padrão de caminho).

    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 Redirecionar HTTP para HTTPS.

    Cache baseado em Cabeçalhos de solicitação selecionados

    Escolha None (Nenhum; melhora cache).

    Para obter mais informações sobre melhora de armazenamento em cache, consulte Aumentar a taxa de solicitações fornecidas diretamente de caches do CloudFront (taxa de acertos do cache).

    Armazenamento de objetos em cache

    O MediaPackage define cabeçalhos Cache-Control padrão que garantem o comportamento de reprodução correto. Se você quiser usar esses valores, escolha Use Origin Cache Headers (Usar cabeçalhos de cache de origem). No entanto, você pode aumentar o tempo de cache para segmentos de vídeo. Para obter mais informações sobre como personalizar o tempo de permanência dos objetos no cache do CloudFront, consulte Armazenamento de objetos em cache no Valores especificados ao criar ou atualizar uma distribuição na.

    Minimum TTL

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

    Encaminhamento e armazenamento em cache de query strings

    Escolha Forward all, cache based on whitelist (Encaminhar todos, com base em cache na lista de permissões).

    Lista de permissões de query strings

    Especifique m como o parâmetro da string de consulta que você deseja que o CloudFront use como a base para o armazenamento em cache. A resposta do MediaPackage sempre inclui a tag ?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 no 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 Criar.

  6. Se o endpoint não for um endpoint do Microsoft Smooth Streaming, escolha Create Behavior (Criar comportamento) e, depois, repita estas etapas para criar um segundo comportamento de cache.

Etapa 4: Usar o CloudFront para atender ao canal de streaming 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.