FFMPEG é uma pequena maravilha. FFMPEG oferece a solução para gravar, converter e fazer "stream" de áudio e vídeo. FFMPEG é multi-plataforma (Linux, Windows e Mac).
E é também mais de que tudo isto. Este projecto está dividido em vários componentes, dos quais estão: ffmpeg, ffserver, ffplay, libavutil, libavcodec, libavformat, libavdevice e libswscale.
São vários os programas que usam FFMPEG como "motor" para fazer conversões de formatos: MediaCoder, WinFF, MobileMediaConverter e outros tantos.
Vou dividir este artigo em várias partes, para melhor leitura e organização:
- Parâmetros usados
- Sintaxe da linha de comandos (terminal)
- Exemplos de Conversão de Vídeo e Áudio
Parâmetros usados:
Parâmetros mais comuns
-i ‘nome-do-ficheiro’ --- nome-do-ficheiro será o caminho ou 'Path' do ficheiro fontes (ou de entrada)
-y --- Sobrescrever o ficheiro existente de saída sem pedir confirmação
-an --- desactivar o áudio
Parâmetros relacionados com Audio:
-acodec mp3 --- usar o codec de áudio mp3 (por exemplo, mas também você pode indicar para usar outro. P.ex: ogg, aac, wma2, etc.)
-ar 44100 --- ajustar a taxa mostra de áudio (audio sampling rate) em Hz. Por defeito este valor é 44100.
-vol 256 --- mudar o volume do som (256=normal)
-ab 128 --- ajustar a taxa de bits de áudio (em bits/s). Por defeito este valor é 64
-ac 2 --- ajustar o numero de canais de som. Por defeito este valor é 1 (mono)
Parâmetros relacionados com Video:
-f asf --- escolher um formato para o ficheiro de saída, por vezes também conhecido como "contentor" ( do inglês 'container'). Neste caso será asf.
-vcodec h264 --- especifica o codec de vídeo a ser usado. Neste caso será o codec h264, assim como poderia ser wmv3, theora, mpeg4 e um largo etecetera.
-sameq --- usar a mesma qualidade que o ficheiro de entrada (ou ficheiro a converter)
-b 200 --- ajustar a taxa de bits de vídeo em bits/s. Por defeito este valor é 200
-r 15 --- ajustar as imagens por segundo do vídeo (frame rate). Por defeito este valor é 25
Sintaxe da linha de comandos (terminal)
ffmpeg –i ‘ficheiro-a-converter’ ‘ficheiro-convertido’
Exemplo:
ffmpeg -i demo.mpg demo.flv
Neste exemplo FFMPEG converterá o vídeo demo.mpg para o formato de vídeo demo.flv
Exemplos de conversão de vídeos:
Converter vídeos MOV para FLV usando FFMPEG:
ffmpeg -i video1.mov video1.flvIsto converterá o ficheiro video1.mov para video1.flv
Converter vídeos Mpeg para FLV usando FFMPEG:
ffmpeg -i video1.mpeg video1.flvIsto converterá o ficheiro video1.mpeg para video1.flv
Converter vídeos AVI para FLV usando FFMPEG:
ffmpeg -i video1.avi -s 500×500 video1.flv
Isto converterá o ficheiro video1.avi para video1.flv e será feito um redimensionamento da resolução do vídeo para 500×500
Converter vídeos 3GP para FLV usando FFMPEG:
ffmpeg -i video1.3gp -sameq -an video1.flv
Isto converterá o ficheiro video1.3gp para video1.flv e serão conservados os ajustes originais de vídeo, sendo desactivada a pista de áudio do mesmo.
Converter vídeos MPEG para 3GP usando FFMPEG:
ffmpeg -i video1.mpeg -ab 8.85k -acodec libamr_wb -ac 1 -ar 16000 -vcodec h263 -s qcif video2.3gpIsto converterá o ficheiro video1.mpg para video2.3gp. Serão aplicados ajustes específicos para o formato 3gp, já que sendo um formato de dispositivos móveis requer uma adaptação tanto do áudio como do vídeo. Os valores podem variar conforme o dispositivo os requeira.
Converter videos FLV para MP4 usando FFMPEG:
ffmpeg -i video1.flv -vcodec h264 -r 25 -b 200 -ab 128 -acodec mp3 -ac 2 -ar 44100 video1.mp4
Isto converterá o ficheiro video1.flv para video1.mp4
O vídeo gerado video1.mp4 terá o codec de vídeo h264, com 25 imagens por segundo ( -r 25), taxa de bits =200 bits/s ( -b 200), taxa de bits de audio =128 ( -ab 128), codec de áudio mp3 ( -acodec mp3), 2 canais de áudio ( -ac 2 ), com frequência de mostra de áudio de 44100 Hz ( -ar 44100 )
Converter um vídeo em imagens usando FFMPEG:
ffmpeg -i video.mpg imagem%d.jpg
Com este comando serão criadas várias imagens: imagem1.jpg, imagem2.jpg, … Para las imagens resultantes podem ser utilizados os formatos PGM, PPM, PAM, PGMYUV, JPEG, GIF, PNG, TIFF ou SGI.
Converter um vídeo para ver no seu iPod/iPhone usando FFMPEG:
ffmpeg -i entrada.avi input -acodec aac -ab 128kb -vcodec mpeg4 -b 1200kb -mbd 2 -flags +4mv+trell -aic 2 -cmp 2 -subcmp 2 -s 320×180 -title X saida.mp4
* Vídeo original: entrada.avi
* Codec de áudio: aac
* Bitrate de áudio: 128kb/s
*Codec de vídeo: mpeg4
* Bitrate do vídeo: 1200kb/s
* Tamanho de vídeo: 320×180 (resolução)
* Vídeo gerado: saida.mp4
Converter um vídeo para ver na sua SONY PSP usando FFMPEG:
ffmpeg -i entrada.avi -b 300 -s 320×240 -vcodec xvid -ab 32 -ar 24000 -acodec aac saida.mp4
* Vídeo original: entrada.avi
* Codec de áudio: aac
* Bitrate de áudio: 32kb/s
* Codec de vídeo: xvid
* Bitrate de vídeo: 1200kb/s
* Tamanho de vídeo: 320×180 (resolução)
* Vídeo gerado: saida.mp4
Converter um ficheiro de vídeo .avi a um ficheiro de imagem .gif usando FFMPEG:
ffmpeg -i entrada.avi saida.gif
Tenha cuidado com o vídeo que escolhe para converter a gif, já que se o vídeo for muito grande, a conversão será demorada e o gif resultante será também um ficheiro bastante grande.
Converter um vídeo .avi a formato .dv usando FFMPEG:
ffmpeg -i entrada.avi -s pal -r pal -aspect 4:3 -ar 48000 -ac 2 saida.dv
Ou então:
ffmpeg -i entrada.avi -target pal-dv saida.dv
Converter um vídeo .avi para .mpeg para reprodutores de DVD usando FFMPEG:
ffmpeg -i entrada.avi -target pal-dvd -ps 2000000000 -aspect 16:9 saida.mpeg
* -target pal-dvd: Formato de saída
* -ps 2000000000: Tamanho máximo do ficheiro em bits (no exemplo, 2Gb)
* -aspect 16:9: Panorâmico
Converter um vídeo .avi para formato divx usando FFMPEG:
ffmpeg -i entrada.avi -s 320×240 -vcodec msmpeg4v2 saida.avi
* -vcodec msmpeg4v2: Formato divx (msmpeg4v2)
* -s 320x240: resolução do vídeo a criar. Pode alterar a resolução conforme aquela que deseje.
Converter um vídeo Ogg Theora a Mpeg DVD usando FFMPEG:
ffmpeg -i entrada.ogm -s 720×576 -vcodec mpeg2video -acodec mp3 saida.mpg
Converter um vídeo .avi para SVCD mpeg2 usando FFMPEG:
Para PAL:
ffmpeg -i entrada.avi -target pal-svcd saida.mpg
Para NTSC:
ffmpeg -i entrada.avi -target ntsc-svcd saida.mpg
Converter um vídeo .avi para VCD mpeg2 usando FFMPEG:
Para PAL:
ffmpeg -i entrada.avi -target pal-vcd saida.mpg
Para NTSC:
ffmpeg -i entrada.avi -target ntsc-vcd saida.mpg
Codificação de um vídeo com várias "passadas" usando FFMPEG:
ffmpeg -i entrada -pass 2 -passlogfile ffmpeg2pass saida
Fazer um vídeo com um conjunto de imagens usando FFMPEG:
(Neste exemplo pode usar como máximo 9 imagens)
ffmpeg -f image2 -r 1 -i imagem%d.jpg -r 25 video.aviIsto gera um video com um segundo por cada imagem, aproximadamente. Se deseja que seja mais lento, digamos, uns 5 segundos por imagem, use:
ffmpeg -f image2 -r 0.2 -i imagem%d.jpg -r 25 video.avi
Fazer um vídeo com um conjunto de imagens usando FFMPEG:
(Neste exemplo pode usar mais de 10 imagens (até 99 imagens))
ffmpeg -f image2 -r 0.2 -i imagem%02d.jpg -r 25 video.avi
Se deseja usar até como máximo 999 imagens, simplesmente substitua no comando imagen%02d.jpg por imagem%03d.jpg
NOTA 1: As suas imagens a utilizar devem estar todas dentro da mesma pasta, e o comando executado de FFMPEG deve ser desde essa mesma pasta onde tem as imagens !
NOTA 2: As imagens devem ter nomes consecutivos. Por exemplo se usa a expressão “imagem%02d.jpg” esta servirá para todas as imagens com nomes do tipo: imagem00.jpg, imagem01.jpg, imagem02.jpg, imagem03.jpg... até 99 imagens... ou use "nome-do-ficheiro" (aquele que quiser) em vez de "imagem", mas desde que sejam nomes consecutivos iguais.
NOTA 3: Para usar com a expressão “imagem%02d.jpg”, esta servirá para os seguintes nomes: imagem000.jpg, imagem001.jpg, imagem002.jpg, imagem003.jpg, ... imagem999.jpg, etc… até 999 imagens.
Unir dois videos usando FFMPEG:
Quando queremos unir 2 vídeos desde o terminal, devemos usar o comando cat para concatenar (juntar) os vídeos. O problema é que existem poucos formatos de video que podem ser unidos com este comando (MPEG-1, MPEG-2 PS, DV).
Portanto, deve primeiro converter os vídeos a mpeg, juntá-los e depois voltar a converter ao formato que esteja a trabalhar.
Por exemplo, se queremos unir video1.avi e video2.avi, o processo seria o seguinte:
1. Converter os videos a mpeg:
ffmpeg -i video1.avi -sameq video1.mpeg
ffmpeg -i video2.avi -sameq video2.mpeg
2. Unir os vídeos usando cat:
cat video1.mpeg video2.mpeg > video_temporario.mpeg
3. Reconverter o video resultante ao formato desejado:
ffmpeg -i video_temporario.mpeg -sameq video_final.aviO uso da opção -sameq indica a FFMPEG que use a mesma qualidade (resolução, bitrate) no video de saída.
Obter informação de um video usando FFMPEG:
Simplesmente escreva:
ffmpeg -i nome-do-video.avi
Pode usar este comando para qualquer tipo de ficheiro (.avi, .mpg, wmv, asf, etc...) que FFMPEG tenha suporte.
Exemplos de conversão de áudio:
Conversão de áudio aac para mp3 usando FFMPEG com Meta-data:
ffmpeg -i audio1.aac -ar 22050 -ab 32 -map_meta_data audio1.mp3:audio1.aac audio1.mp3
Isto converterá o ficheiro audio1.aac para audio1.mp3 ficando o áudio com uma frequência de 22.05 Khz e uma taxa de bits de áudio de 32Khz. Será também copiada a meta-data do ficheiro .aac para o ficheiro .mp3
Conversão de áudio WMV para MP3 usando FFMPEG:
ffmpeg -i audio1.wmv audio1.mp3
Isto converterá o ficheiro audio1.wmv para audio1.mp3
Conversão de áudio WMV para FLV usando FFMPEG:
ffmpeg -i audio1.wmv audio1.flv
Isto converterá o ficheiro audio1.wmv para audio1.flv, no entanto será gerado apenas conteúdo de áudio.
Conversão de áudio AMR para MP3 usando FFMPEG:
ffmpeg -i audio1.amr -ar 22050 audio1.mp3
Isto converterá o ficheiro audio1.amr para audio1.mp3 ficando com a taxa de áudio a 22.05 Khz
Conversão de áudio aac para mp3 usando FFMPEG:
ffmpeg -i audio1.aac -ar 22050 -ab 32 audio1.mp3
Isto converterá o ficheiro audio1.aac para audio1.mp3
ficando com a taxa de áudio a 22.05 Khz e a taxa de bits a 32 Khz
Extrair o som de um vídeo e guardá-lo como um ficheiro MP3 usando FFMPEG:
ffmpeg -i video.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 audio.mp3
* Vídeo original: video.avi
* Codec de áudio: mp3
* Bitrate de áudio: 192kb/s
* Ficheiro gerado: audio.mp3
Adicionar o som de um ficheiro de áudio a um vídeo usando FFMPEG:
ffmpeg -i audio.wav -i video_entrada.avi video_saida.mpg
Extrair o áudio de um DVD a MP3 com FFMPEG:
Navegue pela estrutura das pastas do seu DVD e procure o ficheiro com a extensão .VOB que contém o áudio que deseja extrair. Executar o seguinte comando situando o seu terminal no caminho do ficheiro .VOB a trabalhar:
ffmpeg -i FICHEIRO.VOB -ab 192 ~/resultado.mp3
-i : indicamos um ficheiro de entrada
FICHEIRO.VOB: nome do ficheiro de vídeo do qual queremos extrair o áudio.
-ab 192 : bitrate de áudio a 192 (boa qualidade de áudio)
~/resultado.mp3 : destino e nome do ficheiro MP3 resultante (neste caso o destino é a nossa pasta /home).
Se o ficheiro de áudio resultante contém partes que não nos interessam, sempre podemos cortar essas partes com um editor de áudio.
Existem, no entanto muitas mais opções, e combinações das mesmas para fazer conversões de todo o tipo. O uso de FFMPEG e de todas as opções é muito extenso, podendo obter mais informação desde a página oficial do projecto.
Nesta mensagem apenas tento recompilar alguns exemplos mais comuns da utilização desta aplicação, através de fontes várias, experiência própria, e informação da página oficial... tentando assim ter os exemplos mais comuns para o meu uso e para quem precisar.
Se acha que falta algo nesta mensagem, seja algum exemplo que ache útil para outros utilizadores, ou alguma opção de codificação/descodificação que ache importante, sinta-se á vontade em deixá-lo no seu comentário e terei todo o gosto de adicionar á lista aqui apresentada.
Página oficial de FFMPEG: http://ffmpeg.org/
Cumprimentos e boas (des)codificaçoes !



![Validate my RSS feed [Valid RSS]](http://imgcash3.imageshack.us/img208/4849/validrss.png)
0 comentários:
Enviar um comentário
É favor manter a boa educação nos comentários. Qualquer comentário ofensivo, racista, desprestigioso, apenas com objectivo de inundar o blogue ou comentários de publicidade não solicitada serão eliminados. Serão aceites comentários em Português, Espanhol e Inglês. Comentarios en Portugues, Español y Ingles seran aceptados. Comments in Portuguese, Spanish and English will be accepted.