O blog da AWS

Gravando suas transmissões ao vivo com AWS Elemental MediaPackage.

Por Osmar Bento, Arquiteto de Soluções Especialista em Mídia e 
Gustavo Barbosa, Arquiteto de Soluções para SMB

 

Video streaming ao vivo, se tornou uma forma de comunicação para transmissão de shows de musica, live shopping, transmissão de aulas educacionais e transmissão de games.

E para os expectadores que perderam a transmissão ao vídeo, podemos oferecer a funcionalidade de Live-to-VoD, que permite exportar o evento completo ou parcial, garantido que a transmissão alcance todo seu publico alvo, na hora que ele desejar.

Neste blogpost, vamos explorar as funcionalidades de gravação com o AWS Elemental MediaPackage no console da AWS. O MediaPackage prepara e protege de forma confiável vídeos para entrega pela Internet. O AWS Elemental MediaPackage parte de uma única entrada de vídeo para criar streams formatados para reprodução em smart tvs, celulares, computadores, tablets e consoles de jogos. Além disso, oferece recursos avançados de vídeo populares para os espectadores, gravação, pausa, retroceder na programação e ver do inicio do evento.

 

Guia de Implementação:

1.Criar o canal no MediaPackage

Como primeiro passo, vamos criar o canal no MediaPackage ainda sem definir os detalhes da saída do conteúdo.

A. Na console da AWS, encontre o serviço MediaPackage

 

B. Em Channels, clique em Create

C. Coloque um ID para o seu canal, por exemplo meuIDdoCanalnoMP

D. No painel CloudFront distributions details selecione Create a CloudFront distribution for this channel

 

E. Clique em Create

2. Criando canal no MediaLive

O AWS Elemental MediaLive, é um serviço do pacote elemental disponível no console da AWS, ele é responsável por criar os canais de input e output para uma transmissão ao vivo, para que posteriormente, seja direcionada para o MediaPackage para conversões.

Abra o console da AWS, e busque pelo serviço MediaLive

 

Antes de criar um canal no Elemental MediaLive, você deve primeiro criar uma entrada à qual o canal possa se conectar

Criando a entrada para o envio dos vídeos

  1. No Painel de navegação esquerdo, clique em EntradasB. Em seguida, clique em Criar Entrada

    C. Coloque um nome para a entrada, por exemplo TesteCH01

    D. Selecione HLS para o tipo de entrada

    E. Em sources de entrada, use: http://d2qohgpffhaffh.cloudfront.net/HLS/vanlife/withad/sdr_uncage_vanlife_admarker_60sec.m3u8para a URL de source de entrada A do fluxo

    F. Coloque o mesmo valor no B

    G. Clique em Create

Criando um canal no Medialive

A. Clique em Create Channel

 

 

B. Coloque um nome para o seu canal
C. Em IAM Role: Se é a primeira vez que você cria um canal na conta da AWS, selecione Create role from template; Caso contrário, selecione o role existente
D. Em channel Template selecione Live Event MediaPackage
E. Em Class Channel mantenha standard
F. Agora na sessão Input Attachments, clique em Add. E selecione o input criado no passo 2. Clique em Confirm

 

Agora, precisamos configurar o comportamento do input:

– Em Network input Settings selecione Don’t include

– Em source End Behavior selecione Loop

G.Agora clique em Output Groups e coloquei o ID do canal que foi criado no modulo 2. (MeuIDdoCanalnoMP)

H. Clique em Create Channel

 

 

3. Criando o endpoint do seu canal

Para consultar mais detalhes dos requisitos para a criação de um canal com recurso de Live-to-VOD, viste a documentação do AWS Elemental MediaPackage.
A. Vá até o MediaPackage

 

 

B. Selecione o seu canal

Criando uma Saída de video HLS, standard Apple

A. Em endpoints clique em Add Endpoint

B. Coloque um ID para a sua saída, por exemplo, saidaHLS

C. Vamos fazer as configurações que permitem que as funcionalidades de timeshift e live-to-VOD funcionem

    1. Configurando a janela de exibição
    2. Marque a opção Startover window (sec)
    3. Configure com 24H: 86400. Nota: O valor deve ser menor de 14 dias, dependendo da janela necessária par os recursos que utilizam a janela de tempo de visualização (pausa, ver do inicio e retroceder).

 

b. Clique em Save

4. Vamos testar o canal básico!

Vá em endpoints e copie a URL do seu canal

Abra o player demo da sua preferência, algumas sugestões abaixo:

  • HLSlayer
  • VideoJS
  • JWPlayer

5. Live to VOD

Neste modulo aprenderemos como transformar Live-to-VOD utilizando o console da AWS. Antes de criar o canal, vamos criar as permissões IAM Role para permitir que o AWS Elemental MediaPackage possa exportar o output para a S3.

Criando um Bucket 

A. Crie um novo bucket S3 e copie a ARN do seu bucket e anote no seu bloco de notas.
B. Selecione Create bucket (Criar bucket).
C. O assistente Create bucket (Criar bucket) é aberto.
Em Bucket name (Nome do bucket), insira um nome compatível com o DNS para seu bucket.

    • O nome do bucket deve:
    • Ser exclusivo em todo o Amazon S3.
    • Ter entre 3 e 63 caracteres.
    • Não contém caracteres maiúsculos.
    • Começar com uma letra minúscula ou um número.

 

Criando a politica do IAM

Criando a politica de acesso. Alguns recursos exigem que você permita que o MediaPackage acesse outros serviços da AWS, como Amazon Simple Storage Service (Amazon S3) e Secrets Manager. Para permitir esse acesso, crie uma função e política do IAM com as permissões apropriadas. As etapas a seguir descrevem como criar funções e políticas para recursos do MediaPackage.
A. Coluna de navegação à esquerda, escolha Policies.
B. Na parte superior da página, escolha Criar política.
C. Escolha a guia JSON.
D. Insira o seguinte documento de política JSON:
Se você não clicar em confirm o canal dará erro ao criar, é necessário fazer esse passo para relacionar o canal ao input de source.

 

"Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "s3:PutObject",
                "s3:ListBucket",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::{bucket_name}/*",
                "arn:aws:s3:::{bucket_name}"
            ],
            "Effect": "Allow"
        }
    ]
}

 

E. SelecioneReview policy

F. Na páginaReview policy, insira um Nome e uma Descrição opcional para a política que você está criando. Revise o Resumo da Policy para ver as permissões concedidas por sua política. Em seguida, escolha Criar Policy para salvar.

Criando o Role do IAM

A. No painel de navegação do console IAM, escolha Roles e, em seguida, escolha Criar Roles.
B. Escolha o tipo de Roles de serviço AWS e, em seguida, escolha EC2 trusted entity.
C. Escolha o caso de uso EC2. Em seguida, escolha Próximo: Policies.
D. Na página Attach permissions policies, pesquise e escolha a Policy que você criou no passo 2. E em seguida, escolha Next: Tags e Next: Review.
E. Se possível, insira um nome de Role ou sufixo de nome de função para ajudá-lo a identificar o propósito desta Role. Os nomes das Roles devem ser exclusivos em sua conta da AWS. Eles não são diferenciados por caso. Por exemplo, você não pode criar funções chamadas PRODROLE e prodrole. Como várias entidades podem fazer referência à função, você não pode editar o nome da função após sua criação.
F. (Opcional) Para a descrição da Role, insira uma descrição para a nova Role.
G. Revise a Role e escolha Criar Role

Mude o serviço usado na policy

A. Acesse a Role que você criou no passo 3
B. Se você ainda não estiver exibindo a Role , no painel de navegação do console IAM, escolha Roles. Pesquise e escolha a Role que você criou.
C. Na página Resumo da Role, escolha trust relationship.
D. Escolha Editar trust relationship.
E. Na página Editar trust relationship, no Documento de Policy, altere “ec2.amazonaws.com” para “mediapackage.amazonaws.com”.

O documento da Policy deve ter a seguinte aparência:

 

 "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": "mediapackage.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

 

6. Criando um Harvest Job

 

 

A. Vote novamente no MediaPackage
B. Selecione Harvest jobs
C. Clique em Create job

 

Basic details

A. Coloque um ID
B.Selecione o Origin endpoint, o mesmo que criamos no passo anterior, no exemplo foi saidaHLS

 

 

Start/End date and time

Agora selecione a data de inicio e fim para exportar para S3 Lembre que acabamos de criar o endpoint, coloque pouco tempo para trás do momento atual.

A. Em Start date and time clique em now
B. Em End date and time clique em now

 

Destination

A. Em IAM role cole a IAM que você anotou na etapa anterior, aquele que anotamos.

![l2vodes](/images/destl2vod.png

 

Create JOB

E então clique em Criar Job / Create Job

Agora em Harvest jobs deve ter um Job em Processing, aguarde até que apareça Succeeded.

 

Agora podemos já testar o conteúdo. Clique no conteúdo e pegue o Manifest key e teste no seu player favorito.

Conclusão:

Nesse blog vimos como criar uma estrutura simples para streaming de vídeo ao vídeo e adicionar recursos avançados de gravação, transformado o evento ao vídeo em Vídeo-On-Demand, utilizando os recursos de harvest jobs do AWS Elemental MediaPackage.

Links Adicionais:

Pagina principal do AWS Elemental MediaPackage 

Workshop criando um canal live 

Documentação do AWS Elemental MediaPackage 

 

 


Sobre os autores

Osmar Bento é um Arquiteto de Soluções especialista em Mídia e entretenimento. ele ajuda os clientes da AWS a construir soluções inovadoras usando a plataforma AWS.

 

 

 

 

Gustavo Barbosa é Arquiteto de Soluções da AWS para SMB. Ajuda seus clientes a construirem aplicações resilientes e altamente disponíveis com os serviços que a plataforma da AWS oferece.