- Introdução
Converter arquivos de vídeos e som no Linux, abrangendo os mais variados formatos e codecs, pode ser uma tarefa razoavelmente simples, bastando conhecer o programa certo. Nesta dica vamos apresentar o programa "ffmpeg". Este conversor de áudio e vídeo é extremamente flexível e poderoso, em linha de comando, permitindo que você faça as suas conversões remotamente, em seu servidor, ou mesmo escreva programas de conversão que fiquem rodando no servidor, esperando a próxima tarefa para ser disparada. O ffmpeg não só converte mídias, como também muda o bitrate, redimensiona o vídeo, dentre muitas outras opções avançadas.
Para baixar o ffmpeg, vá até a página oficial do projeto:
http://ffmpeg.mplayerhq.hu/
Ou use o seu gerenciador de pacotes favorito. Pode ser instalado via apt-get com o comando:
apt-get install ffmpeg
Observe que o ffmpeg necessita de algumas bibliotecas de áudio e vídeo, como a libavcodec e a libavformat. Para instalá-lo "na mão", procure antes as versões requeridas destas bibliotecas e as instale. Para conhecer a sintaxe e escrever a linha de comando correta, veja a página do manual "man ffmpeg" ou o FAQ oficial:
http://ffmpeg.mplayerhq.hu/faq.html
Existem versões do ffmpeg para várias plataformas, o que facilita o seu uso ou a implementação em um laboratório de convesão profissional. Abaixo, um breve tutorial de alguns parâmetros:
- Conversão simples
Um arquivo pode ser convertido de maneira simples apenas com o comando:
ffmpeg -i arquivo.wmv arquivo.avi
O parâmetro "-i" indica o arquivo fonte. O formato do arquivo de saída é automaticamente reconhecido pelo ffmpeg, a partir da sua extensão.
ffmpeg -i arquivo.wmv arquivo.avi
O parâmetro "-i" indica o arquivo fonte. O formato do arquivo de saída é automaticamente reconhecido pelo ffmpeg, a partir da sua extensão.
- Sugerindo um Codec de Vídeo
Se você quiser um codec específico, como Xvid ou DivX (versão 4+), use a opção -vcodec, passando o codec desejado (mpeg4, para o caso citado).
ffmpeg -i arquivo.wmv -vcodec mpeg4 arquivo.avi
- Sugerindo um Codec de Áudio
Assim como o vídeo do seu arquivo pode ser comprimido, igualmente o áudio também o pode, reduzindo drasticamente o tamanho do arquivo final. Em alguns casos, como mídias para celulares, é necessário que o áudio esteja em AAC+ (AAC Plus), sob pena de não ser executado. Assim, utilize a opção -acodec, passando o codec desejado (libfaac, para o caso citado).
ffmpeg -i arquivo.wmv -vcodec mpeg4 -acodec libfaac arquivo.avi
- Como converter vídeos para iPod?
ffmpeg -i arquivo.wmv -acodec libfaac -ab 128kb -vcodec mpeg4 -b 1200kb -mbd 2 -flags +4mv -trellis 2 -aic 2 -cmp 2 -subcmp 2 -s 320x180 -title X output.mp4
Este comando acima contém diversas configurações do áudio e do vídeo necessárias para que seu vídeo seja convertido no formato suportado pelo iPod. Veja mais destas opções adiante...
- Definindo o bitrate do áudio e do vídeo
O bitrate do áudio e do vídeo são definidos separadamente, com os parâmetros:
-ab: é uma opção apenas do áudio, que define o bitrate em bits/s.
-b: é uma opção apenas do vídeo, que define o bitrate em bits/s.
-ab: é uma opção apenas do áudio, que define o bitrate em bits/s.
-b: é uma opção apenas do vídeo, que define o bitrate em bits/s.
- Definindo o Frame Rate (quadros por segundo)
Basta usar a opção "-r" seguida do número desejado. Por exemplo, para forçar 25 quadros por segundo, use:
ffmpeg -i arquivo.wmv -r 25 arquivo.avi
Mas, cuidado: alguns codecs só suportam pequeno número de framerates padronizados. Se este for seu caso, a informação de framerate será ignorada.
ffmpeg -i arquivo.wmv -r 25 arquivo.avi
Mas, cuidado: alguns codecs só suportam pequeno número de framerates padronizados. Se este for seu caso, a informação de framerate será ignorada.
- Como ripar DVD com o ffmpeg??
Para este também tem uma "fórmula", com toda a configuração necessária!! Segue:
ffmpeg -i cap_1.vob -f avi -vcodec mpeg4 -b 800k -g 300 -bf 2 -acodec libmp3lame -ab 128k cap.avi
ffmpeg -f image2-i img%d.jpg saida.mpg
ffmpeg -i arquivo.mp4
As streams estão no fim da mensagem, normalmente numeradas no padrão "0.0", "0.1", etc. Exemplo:
Duration: 00:01:48.48, start: 0.000000, bitrate: 550 kb/s
Stream #0.0(und): Audio: libfaad, 44100 Hz, stereo
Stream #0.1(und): Video: h264, yuv420p, 480x200, 23.97 tb(r)
Indica que a primeira stream é de áudio e a segunda de vídeo. O codec da primeira é libfaad, com 44100 Hz de freqüência e bitrate de 550 kb/s. Não tem stream de legenda neste arquivo.
-scodec codec: define o codec da legenda (subtitle codec). O padrão de arquivos VOB, por exemplo, é o codec dvdsub. Se você não sabe qual é o codec e simplesmente quer copiar o existente no arquivo original, use a opção copy em lugar do nome do codec.
-newsubtitle: adiciona uma legenda inteiramente nova para seu arquivo de saída!! Pode ser esta sua opção!!
Como vou saber onde está a minha legenda?? Bom, é preciso primeiro inspecionar um arquivo, conforme demonstrado no item acima, e escolher a stream correta. Para montar seu arquivo final com streams de diversos arquivos, inclusive de legenda, siga a orientação abaixo...
ffmpeg -i filme.vob -i audio.wav -map 0:0 -map 1:0 etc...
Este trecho de comando indica 2 arquivos de entrada, o arquivo "0" e o "1", e indica, pela opção map, que deve compor o arquivo de saída com a primeira stream do primeiro arquivo "0" e a primeira stream do arquivo "1".
Diversas outras opções e exemplos presentes na página de manual e no FAQ bem documentado do projeto!! Um tutorial avançado e detalhado encontra-se aqui.
O ffmpeg é livre e gratuito, seguro e poderoso!! Boa sorte!!
(Gostou?? Detestou?? COMENTE!!!)
ffmpeg -i cap_1.vob -f avi -vcodec mpeg4 -b 800k -g 300 -bf 2 -acodec libmp3lame -ab 128k cap.avi
- Como ler a entrada padrão, ou escrever para a saída padrão?
- Como fazer um vídeo a partir de figuras?
ffmpeg -f image2-i img%d.jpg saida.mpg
- Como inspecionar as streams presentes em um arquivo?
ffmpeg -i arquivo.mp4
As streams estão no fim da mensagem, normalmente numeradas no padrão "0.0", "0.1", etc. Exemplo:
Duration: 00:01:48.48, start: 0.000000, bitrate: 550 kb/s
Stream #0.0(und): Audio: libfaad, 44100 Hz, stereo
Stream #0.1(und): Video: h264, yuv420p, 480x200, 23.97 tb(r)
Indica que a primeira stream é de áudio e a segunda de vídeo. O codec da primeira é libfaad, com 44100 Hz de freqüência e bitrate de 550 kb/s. Não tem stream de legenda neste arquivo.
- Como trabalhar com legendas?
-scodec codec: define o codec da legenda (subtitle codec). O padrão de arquivos VOB, por exemplo, é o codec dvdsub. Se você não sabe qual é o codec e simplesmente quer copiar o existente no arquivo original, use a opção copy em lugar do nome do codec.
-newsubtitle: adiciona uma legenda inteiramente nova para seu arquivo de saída!! Pode ser esta sua opção!!
Como vou saber onde está a minha legenda?? Bom, é preciso primeiro inspecionar um arquivo, conforme demonstrado no item acima, e escolher a stream correta. Para montar seu arquivo final com streams de diversos arquivos, inclusive de legenda, siga a orientação abaixo...
- Como montar um arquivo de partes de outros?
ffmpeg -i filme.vob -i audio.wav -map 0:0 -map 1:0 etc...
Este trecho de comando indica 2 arquivos de entrada, o arquivo "0" e o "1", e indica, pela opção map, que deve compor o arquivo de saída com a primeira stream do primeiro arquivo "0" e a primeira stream do arquivo "1".
Diversas outras opções e exemplos presentes na página de manual e no FAQ bem documentado do projeto!! Um tutorial avançado e detalhado encontra-se aqui.
O ffmpeg é livre e gratuito, seguro e poderoso!! Boa sorte!!
(Gostou?? Detestou?? COMENTE!!!)
16 comentários:
Parabéns. Grande tutorial.
Bom tutorial. Uma dúvida, vc sabe como inserir legendas em um video com o ffmpeg?
Muito útil este tutorial. Eu gostaria de ver mais opções, principalmente na conversão de vídeos grandes vindos de filmadoras para postar em sites de vídeos, como youtube e blip.tv.
No meu caso, são palestras, então o importante é que o áudio fique muito bom. Já a imagem não é a prioridade. Normalmente os vídeos originais são em formato mpeg.
Um grande abraço
Muito bom tutorial. Uma questão: qual o melhor conversor? O ffmpeg ou o mecncoder?
muito bom.
muito mesmo.
Obrigado, pessoal, pela força!!!
Respondendo às perguntas, uma a uma...
Primeiramente a pergunta de Fitti:
O Mencoder é um outro conversor acessado por linha de comando, GNU, que vem com o famosos player MPlayer. Com a experiência que eu tenho, de anos no mundo da informática, posso dizer com muita propriedade: a melhor ferramenta é aquela que te serve melhor. Ou seja, se você sempre usou o MEncoder e ele te serve bem, continue com ele!!
Desvantagens do MEncoder:
Suporta apenas os codecs que o MPlayer entende, ou seja, pode ser um pouco mais limitado que o ffmpeg.
Vantagem principal do MEncoder:
Existem vários frontends gráficos para ele, inclusive Konverter, do KDE.
Ambos são muito poderosos e podem facilmente executar grande número de tarefas.
Olá pessoal!!
Atualizei o tutorial para compreender mais detalhes, inclusive como se inserir legendas. Confiram!!
Olá Marcos!!
Os vídeos do Youtube (e demais portais compartilhadores de vídeo, em geral) suportam áudio a 44100Hz e stereo. O formato do vídeo normalmente é 480x200 de resolução, com 23.97 fps.
A opção de 44100Hz já é a freqüência padrão do ffmpeg, mas, se quiser alterar, utilize a opção "-ar freq".
Para converter seus arquivos, basta usar as opções descritas neste tutorial, ajustando principalmente o tamanho do vídeo, em pixels (opção -pix_fmt). Tente inspecionar um arquivo mpg de sua filmadora (conforme descrito no fim deste tutorial) e ver qual a configuração da stream de áudio. Possivelmente você nem precisará mexer em nenhum detalhe... mas, se precisar, lembre-se de que a qualidade de seu áudio precisa ser boa no momento da filmagem, para garantir uma boa manipulação.
Outra opção é, caso seu som não esteja legal, usar uma mesa de som e um amplificador para capturar melhor sua voz, e um bom microfone, claro.
Espero ter ajudado!!
Fala pagé! blz?!
Só hoje vi teu comentário la no meu blog (o blogspot não me avisa) e ja re-fiz o upload do pacote:
http://batterypoweredgames.blogspot.com/2009/05/angstron-2-droid-hunter-beta-test-2.html
Legal ver o interesse de alguem que também é do Rio!
[]s
Oi Pajé. Foi mal o spam ai,mas agora é a definitiva (ja no sourceforge):
http://batterypoweredgames.blogspot.com/2009/07/angstron-2-droid-hunter-release.html
Beleza, rapaz!! Muito obrigado!! Já estou baixando!!
Obrigado pelo post. Animal. Consegui realmente utilizar o ffmpeg, consegui converter o arquivo de wmv p avi com codec mpeg4 mas num passou no DVD player. Apenas o micro.
Mto grato, de qqr forma :)
abs
simba
Olá Marcelo!!
Obrigado pelos elogios!!
Para um vídeo passar no DVD Player, ele precisa estar dentro das especificações de codecs e configurações suportados pelo aparelho. Faça o seguinte para tentar resolver o problema: inspecione com o ffmpeg um arquivo que funciona em seu DVD (ffmpeg -i arquivo.avi) e compare os detalhes da saída deste comando com o arquivo que você gerou. Veja se os bitrates correspondem, se há algo diferente nos codecs de vídeo e áudio, etc.
Grande abraço,
Gabriel
Grande Pagé!
Bem explicadinho
Cara, pela primeira vez na minha vida me animei pra usar o ffmpeg.Já tinha desistido há muito tempo. Nesses dias meu filho precisou fazer um video pra escola feito no celular em 3gp e tinha que passar pra wmv. Passei uma madruga tentando convertê-lo. Apesar de ter feito a conversão pelo Zamzar online (depois de uma longa batalha perdida pelo ffmpeg), achei teu blog altamente incentivador.
brigadão brother
vamo pra cima dele de novo!
Grande tutorial
Brigado cara
Valeus
Grande Wilson!! Muito obrigado pelo elogio ao artigo!! Não sabe como eu fico feliz de ver as pessoas lendo estes artigos e simplificando suas vidas!! Espero poder ajudar sempre!!
minha duvida é a seguinte... quero converter qualquer video upado no meu servidor de streaming para o formato .mp4
Qual codigo devo inserir no script, visto que ja ta tudo instalado!
Não sei o comando!
Postar um comentário