Codificação em tempo real: mais de 150x mais rápida
Nota histórica sobre o recurso: a codificação em tempo real foi descontinuada em maio de 2012. O recurso e a configuração abaixo descrevem o lançamento original de 2010, não uma opção atual.
Hoje temos o prazer de anunciar um grande recurso novo: a codificação em tempo real.
A codificação em tempo real permite que seus vídeos sejam codificados enquanto ainda estão sendo enviados. Como nossos servidores conseguem codificar arquivos de vídeo muito mais rápido do que a maioria dos seus usuários consegue enviá-los, eles não precisarão mais esperar o processo de codificação terminar depois de enviar um vídeo. Como você pode ver no screencast acima, na prática isso equivale a um aumento de 150 vezes na velocidade de codificação.
Clientes atuais podem ativar este recurso simplesmente adicionando "realtime": true ao
seu Step de codificação de vídeo. Também atualizamos a
documentação deste recurso.
Se você é novo na Transloadit, pode experimentar isso criando uma conta.
Detalhes técnicos
Do ponto de vista técnico, a codificação em tempo real funciona direcionando o stream de upload do vídeo para o FFmpeg pela entrada padrão.
Embora pareça fácil na teoria, é bem difícil de conseguir na maioria dos stacks. Felizmente, nosso sistema é construído sobre Node.js, que é muito bem equipado para esse tipo de redirecionamento de stream.
Para que isso aconteça, usamos o nosso parser de upload de arquivos feito sob medida, que grava o arquivo enviado em disco e nos fornece eventos de progresso ao longo do caminho. Cada evento de progresso alimenta o FFmpeg com um novo trecho do vídeo. Porém, se o FFmpeg não conseguir acompanhar, esperamos o stream de entrada padrão ser drenado. Dessa forma, nunca pode haver qualquer tipo de acúmulo de memória.
Lidar com erros também é importante. Se o FFmpeg nos retornar um erro durante a codificação em tempo real, simplesmente a abandonamos e recorremos à codificação normal.
Em resumo, é assim que funciona. Se você tiver interesse em mais detalhes, é só deixar um comentário. Caso você já tenha investido pesado no seu próprio stack de vídeo, também estamos disponíveis para consultoria para levar essa tecnologia à sua plataforma. É só entrar em contato.
Próximos passos
Este é apenas um dos passos para levar a funcionalidade de streaming a todas as partes do nosso serviço. A próxima coisa que precisamos resolver é o streaming de vídeos codificados em tempo real para o Amazon S3.
Outro desafio está em certos arquivos "mov" que têm seus metadados no final
do arquivo. Felizmente, conseguimos empolgar o Daniel G. Taylor com
isso, o que o levou a portar sua versão em Python do
qtfaststart para JavaScript. Por isso, estamos
confiantes de que tudo isso será resolvido com a próxima atualização do nosso SDK para jQuery.
Também gostaríamos de avisar que o Daniel está procurando um trabalho remoto no momento, então entre em contato com ele se você quiser adicionar um hacker realmente inteligente à sua equipe.
Considerações finais
Nossa missão é melhorar o upload de arquivos na web, então nos diga quais outros aspectos disso estão arruinando o seu dia. Teremos o maior prazer em construir a solução!
Créditos
O vídeo de exemplo enviado no screencast foi produzido pelos nossos amigos da némata.
