segunda-feira, 7 de maio de 2012

Duplicando o áudio de um vídeo

Na dica sobre nomalização de áudio de vídeos já embutimos recursos para duplicar o áudio de arquivos onde a trilha estéreo tem um dos lados mudos, só que agora retornamos ao assunto para tratar exclusivamente este problema e sem a utilização de programas externos.

ffmpeg -f lavfi -i "amovie=arquivo_original.flv,pan=stereo: c0=c1: c1=c1" -i arquivo_original.flv -map 0:0 -map 1:0 -vcodec copy -acodec libfaac arquivo_final.mp4

Para entender melhor a sintaxe:

A primeira parte do comando causa bastante estranheza, mas tem uma explicação. -f lavfi -i "amovie=arquivo_original.flv,pan=stereo: c0=c1: c1=c1" indica para o FFMPEG que o arquivo de entrada na verdade é um filtro do libav e logo em seguida passa as opções para o mesmo. Neste caso é a biblioteca que abre o arquivo e não o FFMPEG em si, por isso a sintaxe um pouco estranha. pan=stereo: c0=c1: c1=c1 indica como será o balanceamento do áudio, onde c0 é o canal esquerdo e c1 é o canal direito. Como queremos que o canal direito seja usado nos dois lados do áudio indicamos c0=c1 e c1=c1.

O resto é familiar. -i arquivo_original.flv abre o segundo arquivo que servirá como fonte de vídeo, -map 0:0 -map 1:0 aponta qual stream será o de vídeo e o de áudio, -vcodec copy -acodec libfaac os codecs utilizados e por fim o nome do arquivo final.

sábado, 5 de maio de 2012

De FLV para MP4 sem recompressão

Aprendemos no último post a diferença entre codec e wrapper. Agora vamos tirar proveito disso:

É uma situação bastante corriqueira querer salvar um vídeo do YouTube ou outro site de compartilhamento de vídeos para ver em outro dispositivo. Muitas vezes os aplicativos de download de vídeos não fazem a conversão de formatos ou o fazem piorando ainda mais a qualidade do arquivo que na maioria das vezes já não é bom.

O FFMPEG resolve esse problema. Se o arquivo FLV foi codificado em H264/AAC (você pode ver esta informação pelo VLC em "Informações da Mídia > Detalhes do codec") basta executar:

ffmpeg -i arquivo.flv -vcodec copy -acodec copy arquivo_final.mp4

Pronto, você já tem um arquivo MP4, compatível com uma grande variedade de dispositivos (iOS por exemplo) sem precisar recodificar o arquivo e sem perda nenhuma de qualidade nesse processo.