Apresentamos o suporte a MPEG-DASH para streaming adaptativo
Temos o prazer de anunciar o lançamento de uma versão beta do nosso novo Robot /video/adaptive, que traz o tão aguardado suporte ao padrão de streaming MPEG-Dash!
Usar o Robot /video/adaptive é muito fácil. Basta
encaminhar os Steps /video/encode e
/audio/encode para este Robot, e ele vai gerar
segmentos MP4 fragmentados junto com o arquivo de manifesto MPD para você. Se você então enviar a saída
do Robot para um Robot de armazenamento de
sua escolha (e usar a Assembly Variable ${file.meta.relative_path} no parâmetro
path desse Robot de armazenamento), todos os arquivos
serão armazenados no local correto em relação uns aos outros, garantindo que o arquivo de manifesto
funcione.
Para a reprodução no navegador a partir de outra origem, configure também o seu provedor de armazenamento com as configurações de CORS necessárias.
Vamos direto ao ponto e conferir um Template de exemplo:
O exemplo usa o stack do FFmpeg recomendado atualmente. Crie uma
Credencial de Template do S3 chamada s3_cred para o seu bucket de destino.
{
"steps": {
"1080p-video": {
"robot": "/video/encode",
"use": ":original",
"ffmpeg_stack": "v7",
"preset": "dash-1080p-video"
},
"720p-video": {
"robot": "/video/encode",
"use": ":original",
"ffmpeg_stack": "v7",
"preset": "dash-720p-video"
},
"32k_audio": {
"robot": "/video/encode",
"use": ":original",
"ffmpeg_stack": "v7",
"preset": "dash-32k_audio"
},
"64k_audio": {
"robot": "/video/encode",
"use": ":original",
"ffmpeg_stack": "v7",
"preset": "dash-64k_audio"
},
"adaptive": {
"robot": "/video/adaptive",
"use": {
"steps": [
"1080p-video",
"720p-video",
"32k_audio",
"64k_audio"
],
"bundle_steps": true
},
"technique": "dash",
"playlist_name": "my_playlist.mpd"
},
"store": {
"robot": "/s3/store",
"use": "adaptive",
"path": "dashtest/${file.meta.relative_path}/${file.name}",
"credentials": "s3_cred"
}
}
}
Como você pode ver neste Template, criamos duas versões de vídeo com bitrate alto a partir do vídeo de entrada, além de duas versões somente de áudio. Para ajudar você com as configurações de codificação, adicionamos novas predefinições especiais aos Robots /video/encode e /audio/encode, específicas para MPEG-Dash. Como de costume, porém, você pode sobrescrever essas configurações com as suas próprias configurações personalizadas do FFmpeg.
Estes são os formatos e codecs que você pode encaminhar atualmente ao Robot /video/adaptive para uso com MPEG-Dash:
- Formatos:
mp4ewebm - Codecs de vídeo:
h264,hevc,vp8,vp9 - Codecs de áudio:
aac,ac3,vorbis - No momento, DRM não é suportado, mas provavelmente vamos adicioná-lo mais adiante
O Robot permite alterar não apenas a duração dos segmentos (padrão: 10 segundos), mas também o nome dos arquivos de manifesto, porque ter mais controle sobre o nome desse arquivo pode ser relevante para o seu site devido a restrições do player ou à compatibilidade com soluções existentes. Já os nomes dos arquivos de segmento são definidos pelo próprio Robot e, por enquanto, não podem ser controlados diretamente.
Você pode ver o Template de exemplo acima em ação nesta demonstração (English). Lá você também encontra instruções sobre como reproduzir o arquivo de manifesto.
Quando quiser começar para valer, convidamos você a conhecer todas as predefinições e parâmetros do Robot /video/adaptive na documentação dele.
Embora ainda esteja em beta, estamos muito animados com o lançamento deste Robot! Esperamos que você o receba bem e nos conte suas descobertas pelo balão de conversa no nosso site! O Robot /video/adaptive é flexível e, além de DASH, também oferece suporte ao HTTP Live Streaming (HLS) da Apple. Falaremos mais sobre isso em outro post do blog. 😄
