domingo, agosto 26, 2007

Manual online do FFMPEG

    • Introdução

    • Nota sobre esta versão do manual

    • Começo rápido (para os apressados)

      • Captura de áudio e vídeo
      • Conversão de formatos para vídeo e áudio

    • Chamada

      • Sintaxe
      • Opções principais
      • Opções de vídeo
      • Opções avançadas de vídeo
      • Opções de áudio
      • Opções de captura para áudio e vídeo
      • Opções avançadas

    • Manual online do FFMPEG

      • Calculadora FFMPEG
      • Protocolos

    • Dicas

    • Formatos de arquivos suportados e Codecs

      • Formatos de arquivos
      • Formatos de imagens
      • Codecs de vídeo
      • Codecs de áudio








Introdução


O programa FFMPEG é um conversor de arquivos de vídeo e áudio muito rápido. Ele também consegue capturar de uma fonte ao vivo de áudio/vídeo. A interface de linha de comando foi pensada para ser intuitiva, no sentido de que o FFMPEG tenta 'entender' todos os parâmetros que possam ser derivados automaticamente. Normalmente, você só precisa especificar a taxa de bits ("bitrate") desejada. O FMPEG também pode converter de qualquer taxa de amostragem ("sample rate") para qualquer outra e redimensionar o vídeo em tempo real com um filtro polifásico de alta qualidade.



Nota sobre esta versão do manual


A tradução do manual foi focada na utilização do software para fins multimídia, buscando especialmente um público de usuários-finais do sistema operacional Linux. Desta forma, informações relacionadas à sua instalação/compilação em outros sistemas operacionais não foram traduzidas, assim como as notas relacionadas a desenvolvedores, política de desenvolvimento no CVS, etc. Todos estes ítens fazem parte das seções e subseções 6 e 7 do manual original, em inglês.

Você é livre para usar, copiar e distribuir esta versão do manual desde que para fins não-comerciais.



Começo rápido (para os apressados)



Captura de áudio e vídeo


FFMPEG pode usar uma fonte de vídeo compatível com o video4linux e qualquer fonte de áudio Open Sound System:

ffmpeg /tmp/out.mpg


Note que você deve ativar a fonte de vídeo correta e o canal antes de usar o FFMPEG com qualquer visor de televisão, como o xawtv de Gerd Knorr. Você também tem que ajustar corretamente o nível de gravação do áudio com um mixer padrão.


Conversão de formatos para vídeo e áudio


O FFMPEG consegue usar qualquer protocolo e formato de arquivo suportado como entrada:

Exemplos:

  • Você pode usar arquivos YUV como entrada:

    ffmpeg -i /tmp/teste%d.Y /tmp/saída.mpg




Ele usará os arquivos:
/tmp/teste0.Y, /tmp/teste0.U, /tmp/teste0.V,
/tmp/teste1.Y, /tmp/teste1.U, /tmp/teste1.V, etc...

Arquivos Y usam uma resolução duas vezes maior do que arquivos U e V. Eles são arquivos brutos, sem chamadas ("header"). Podem ser gerados por todos os decodificadores de vídeo decentes. Você deve especificar o tamanho da imagem com a opção '-s' caso o FFMPEG não consiga 'adivinhá-la'.

  • Você pode usar como entrada ("input") um arquivo bruto YUV420P:

    ffmpeg -i /tmp/teste.yuv /tmp/saída.avi




teste.yuv é um arquivo contendo informações brutas YUV planar. Cada frame é composto de um plano Y, seguido dos planos U e V a metade das resoluções verticais e horizontais.

  • Você pode dar saída ("output to") a um arquivo bruto YUV420P:

    ffmpeg -i meudivx.avi arquivobruto.yuv





  • Você pode marcar vários arquivos de entrada e de saída:

    ffmpeg -i /tmp/a.wav -s 640x480 -i /tmp/a.yuv /tmp/a.mpg




Converter o arquivo de áudio (a.wav) e o arquivo bruto de vídeo YUV (a.yuv) para um arquivo MPEG (a.mpg).

  • Você também pode fazer conversões de áudio e vídeo ao mesmo tempo:

    ffmpeg -i /tmp/a.wav -ar 22050 /tmp/a.mp2




Converter a.wav para áudio MPEG a uma taxa de amostragem ("sample rate") de 22050Hz.

  • Você pode codificar vários formatos ao mesmo tempo e definir um mapeamento da faixa de entrada ("input stream") para as faixas de saída ("output streams"):

    ffmpeg -i /tmp/a.wav -ab 64 /tmp/a.mp2 -ab 128 /tmp/b.mp2 -map 0:0 -map 0:0




Converter a.wav para a.mp2 a 64 kbits e para b.mp2 a 128 kbits. A função '-map file:index' especifica qual faixa de entrada ("input stream") é usada para qual faixa de saída ("output stream"), na ordem de definição das faixas de saída.

  • Você pode transcodificar VOBs desencriptados:

    ffmpeg -i afanado_1.vob -f avi -vcodec mpeg4 -b 800 -g 300 -bf 2 -acodec mp3 -ab 128 afanado.avi




Este é um exemplo típico de extração de conteúdos de DVD; o arquivo de entrada é um arquivo VOB, o de saída é um arquivo AVI com vídeo em MPEG-4 e áudio em MP3. Repare que neste comando estamos usando frames B ("B frames") para que a faixa em MPEG-4 seja compatível com DivX5, e o tamanho do Grupo de Imagens (GOP size) é 300, o que significa um frame intra ("intra frame") a cada 10 segundos para um vídeo com entrada a 29.97fps (FramesperSecond). Outra coisa: a faixa de áudio está codificada em MP3, então você precisa habilitar o suporte a LAME, dando o comando --enable-mp3lame para configurá-la. Este tipo de mapeamento é particularmente interessante para a transcodificação de DVDs para pegar o áudio na língua desejada.

OBSERVAÇÃO: Para ver os formatos de entrada suportados, use:

ffmpeg -formats





Chamada



Sintaxe


A sintaxe genérica é:

ffmpeg [[opções para arquivodeentrada]['-i' arquivodeentrada]]... {[opções para arquivodesaída] arquivodesaída}...


Se nenhum arquivo de entrada for informado, o programa faz captura de áudio/vídeo. Como regra geral, as opções são aplicadas ao arquivo seguinte especificado. Por exemplo, se você chamar a função -b 64, ela fixará a taxa de bits ("bitrate") para o próximo arquivo de vídeo. A opção de formato pode ser necessária para arquivos de entrada brutos. Como padrão, o FFMPEG tenta converter os arquivos com a menor perda de qualidade possível: ele usa os mesmos parâmetros de áudio e vídeo especificados nos arquivos de entrada como saída.



Opções principais


-L


Mostra a licença de uso.

-h


Mostra o arquivo de ajuda (em inglês).

-formats


Mostra os formatos, codecs, protocolos, etc, suportados.

-f formato


Força o uso de um formato.

-i nomedoarquivo


Nome do arquivo de entrada

-y


Sobrescreve os arquivos de saída (caso exista um arquivo de mesmo nome na pasta-destino).

-t duração


Fixa o tempo de gravação em segundos. hh:mm:ss.xxx sintaxe também é suportada.

-ss posição


Busca dada posição no tempo, em segundos. hh:mm:ss.xxx sintaxe também é suportada.

-title cadeiadecaracteres


Faz a marcação do título.

-author cadeiadecaracteres


Faz a marcação do autor.

-copyright cadeiadecaracteres


Faz a marcação dos direitos autorais ("copyright").

-comment cadeiadecaracteres


Faz a marcação de um comentário.

-target tipo


Especifica o tipo de arquivo a ser usado como saída ("vcd", "svcd", "dvd", "dv", "pal-vcd", "ntsc-svcd", ... ). Todas as opções do formato (taxa de bits ("bitrate"), codecs, tamanhos de buffer) são então fixados automaticamente. Você pode simplesmente digitar:


  • ffmpeg -i meuarquivo.avi -target vcd /tmp/vcd.mpg




Ainda assim, você pode especificar opções adicionais desde que você certifique-se de que elas não entrem em conflito com a padrão, como em:


  • ffmpeg -i meuarquivo.avi -target vcd -bf 2 /tmp/vcd.mpg




-hq


Ativa as marcações para alta qualidade.

-itsoffset deslocamento


Marca o tempo de deslocamento do arquivo de entrada ("input time offset") em segundos. -hh:mm:ss[.xxx] sintaxe também é suportada. Esta opção afeta todos os arquivos de entrada que o seguirem. O deslocamento ("offset") é adicionado às marcações de tempo ("timestamps") dos arquivos de entrada. Especificar um deslocamento ("offset") positivo significa que as faixas correspondentes serão atrasadas pelos segundos especificados no parâmetro 'deslocamento'.



Opções de vídeo


-b taxadebits


Fixa a taxa de bits ("bitrate") do vídeo em kbit/s (padrão = 200 kb/s).

-r fps


Fixa a taxa de frames por segundo (fps) (padrão = 25).

-s tamanho


Fixa as dimensões do frame. O formato é 'LxA', isto é, Largura x Altura ("width x high") (padrão = 160x128). As abreviaturas a seguir são reconhecidas:


  • sqcif


    128x96


  • qcif


    176x144


  • cif


    352x288


  • 4cif


    704x576


-aspect aspecto


Fixa a proporção de aspecto (4:3, 16:9 ou 1.3333, 1.7777).

-croptop tamanho


Faz a marcação do tamanho da faixa de corte (em pixels) a ser feito na parte de cima.

-cropbottom tamanho


Faz a marcação do tamanho da faixa de corte (em pixels) a ser feito na parte de baixo.

-cropleft tamanho


Faz a marcação do tamanho da faixa de corte (em pixels) a ser feito na lateral esquerda.

-cropright tamanho


Faz a marcação do tamanho da faixa de corte (em pixels) a ser feito na lateral direita.

-padtop tamanho


Faz a marcação do tamanho da faixa de 'enchimento' ("pad size") (em pixels) a ser feito na parte de cima.

-padbottom tamanho


Faz a marcação do tamanho da faixa de 'enchimento' ("pad size") (em pixels) a ser feito na parte de baixo.

-padleft tamanho


Faz a marcação do tamanho da faixa de 'enchimento' ("pad size") (em pixels) a ser feito na lateral esquerda.

-padright tamanho


Faz a marcação do tamanho da faixa de 'enchimento' ("pad size") (em pixels) a ser feito na lateral direita.

-padcolor (cor hexadecimal)


Faz a marcação de cor das faixas de preenchimento ("padded bands"). O valor da função 'padcolor' é expresso por meio de um número hexadecimal de seis dígitos, no qual os dois primeiros dígitos representam a cor vermelha, os dois dígitos intermediários representam a cor verde e os dois últimos representam a tonalidade de azul (em um sistema de cores RGB) (padrão = 000000 (preto)).

-vn


Desabilita a gravação de vídeo.

-bt tolerância


Fixa a tolerância da taxa de bits ("bitrate") (em kbit/s).

-maxrate taxadebits


Fixa a tolerância máxima da taxa de bits ("bitrate") (em kbit/s).

-minrate taxadebits


Fixa a tolerância mínima da taxa de bits ("bitrate") (em kbit/s).

-bufsize tamanho


Controla o tamanho do buffer ("buffer size") (em kbit).

-vcodec codec


Força o codec de vídeo para o especificado no parâmetro codec. Use o parâmetro especial copy para informar que a informação bruta do codec deve ser copiada como está.

-sameq


Usa a mesma qualidade do arquivo-fonte (implica VBR).

-pass n


Para codificação em 'caminhos' ("pass"). Selecione o número de 'caminhos' (1 ou 2). Á aconselhável usar o método conhecido como "two pass encoding" (valor: 2). As estatísticas do vídeo são gravadas no primeiro 'caminho' ("first pass") e o vídeo é gerado na exata faixa de bits especificada no segundo 'caminho' ("second pass").

-passlogfile arquivo


Marca o nome do arquivo de log da codificação em 'dois caminhos' ("two pass") para arquivo.



Opções avançadas de vídeo


-g tamanhodoGOP


Fixa o tamanho do Grupo de Imagens (GOP, do inglês, "group of pictures").

-intra


Usa apenas frames 'intra'.

-qscale q


Usa uma escala fixa de 'video quantiser' (VBR).

-qmin q


Valor mínimo da escala de 'video quantiser' (VBR)

-qmax q


Valor máximo da escala de 'video quantiser' (VBR)

-qdiff q


Diferença máxima entre as escalas de 'quantiser' (VBR)

-qblur obscurecência


Escala de obscurecência ("blur") do 'video quantiser' (VBR)

-qcomp compressão


Escala de compressão do 'video quantiser' (VBR)

-pix_fmt formato


Formato do pixel a ser utilizado no vídeo

-rc_init_cplx complexidade


Grau de complexidade inicial para codificação em 'caminho único' ("single pass encoding")

-b_qfactor fator


Fator qp entre frames P e B

-i_qfactor fator


Fator qp entre frames P e I

-b_qoffset deslocamento


Deslocamento qp entre frames P e B

-i_qoffset deslocamento


Deslocamento qp entre frames P e I

-rc_eq equação


Marca a equação de controle de razão (ver seção Calculadora FFMPEG) (padrão = tex^qComp).

-rc_override sobreposição


Controle de razão de sobreposição ("override") para intervalos específicos

-me método


Marca o método de estimativa de movimentação ("motion estimation method") para o valor especificado em método. Métodos disponíveis são (da qualidade mais baixa para a melhor qualidade):


  • zero


    Tenta apenas o vetor (0, 0).


  • phods




  • log




  • x1




  • epzs


    (método padrão)


  • full


    busca exaustiva (lenta e levemente melhor do que epzs)


-dct_algo algoritmo


Marca o algoritmo DCT para o valor especificado em algoritmo. Valores disponíveis são:


  • 0


    FF_DCT_AUTO (automático) (padrão)


  • 1


    FF_DCT_FASTINT (intermediário rápido?)


  • 2


    FF_DCT_INT (intermediário?)


  • 3


    FF_DCT_MMX (MMX)


  • 4


    FF_DCT_MLIB


  • 5


    FF_DCT_ALTIVEC


-idct_algo algoritmo


Marca o algoritmo IDCT para o valor especificado em algoritmo. Valores disponíveis são:


  • 0


    FF_IDCT_AUTO (automático) (padrão)


  • 1


    FF_IDCT_INT (intermediário?)


  • 2


    FF_IDCT_SIMPLE (simples)


  • 3


    FF_IDCT_SIMPLEMMX (MMX simples)


  • 4


    FF_IDCT_LIBMPEG2MMX (MMX com libmpeg2)


  • 5


    FF_IDCT_PS2 (playstation 2?)


  • 6


    FF_IDCT_MLIB


  • 7


    FF_IDCT_ARM


  • 8


    FF_IDCT_ALTIVEC


  • 9


    FF_IDCT_SH4


  • 10


    FF_IDCT_SIMPLEARM


-er n


Marca a margem de erro ("error resilience") para o valor especificado em n.


  • 1


    FF_ER_CAREFUL (cuidadoso) (padrão)


  • 2


    FF_ER_COMPLIANT (condescendente)


  • 3


    FF_ER_AGGRESSIVE (agressivo)


  • 4


    FF_ER_VERY_AGGRESSIVE (muito agressivo)


-ec máscaraembits


Marca o quanto de erro será 'escondido' ("error concealment") para o valor definido em máscaraembits. máscaraembits é uma máscara de bits nos seguintes valores:


  • 1


    FF_EC_GUESS_MVS (adivinha_MVS) (padrão = habilitado)


  • 2


    FF_EC_DEBLOCK (desbloqueia) (padrão = habilitado)


-bf frames


Usa os frames de frame B ("'frames' B-frames") (suportado para MPEG-1, MPEG-2 e MPEG-4).

-mbd modo


Decisão de macroblocos ("macroblock")


  • 0


    FF_MB_DECISION_SIMPLE (decisão simples): Usa mb_cmp (ainda não consegue mudar no FFMPEG).


  • 1


    FF_MB_DECISION_BITS (decisão_bits): Escolhe qual precisa de menos bits.


  • 2


    FF_MB_DECISION_RD (decisão: distorção de razão): Distorção de razão ("rate distortion")


-4mv


Usa quatro vetores de movimentos por macrobloco (apenas MPEG-4).

-part


Usa particionamento de informações (apenas MPEG-4).

-bug parâmetro


Trabalha erros de codificação que não são auto-detectados.

-strict rigidez


Quão estrito/rígido o programa seguirá os padrões.

-aic


Habilita codificação 'intra' avançada (h263+).

-umv


Habilita vetor de movimentação ilimitado ("Unlimited Motion Vector") (h263+)

-deinterlace


Desentrelaça as imagens.

-interlace


Força suporte a entrelaçamento durante a codificação (MPEG-2 e MPEG-4 apenas). Use esta opção caso seu arquivo de entrada é entrelaçado e você quer deixá-lo entrelaçado para haver perdas mínimas. A alternativa é desentrelaçar o arquivo de entrada usando '-deinterlace', mas o desentrelaçamento gera perdas.

-psnr


Calcula o valor PSNR ("Peak signal-to-noise ratio", razão máxima entre sinal-e-ruído) de frames comprimidos.

-vstats


Escreve as estatísticas da codificação do vídeo no arquivo 'vstats_HHMMSS.log'.

-vhook módulo


Insere o módulo de processamento do vídeo, de acordo com o especificado na função módulo. Módulo contém o nome do módulo e seus parâmetros, separados por espaços.



Opções de áudio


-ar freqüência


Marca a freqüência da amostragem de áudio ("audio sampling frequency") (padrão = 44100 Hz).

-ab taxadebits


Marca a taxa de bits ("bitrate") de áudio em kbit/s (padrão = 64).

-ac canais


Marca o número de canais de áudio (padrão = 1).

-an


Desabilita a gravação de áudio.

-acodec codec


Força determinado codec de áudio de acordo com o especificado na função codec. Use o parâmetro especial copy para especificar que a informação bruta do codec deve ser copiada como está.



Opções de captura para áudio e vídeo


-vd dispositivo


Marca o dispositivo ("device") de captura de vídeo (exemplo: '/dev/video0').

-vc canal


Marca o canal ("channel") de captura de áudio (DV1394 apenas).

-tvstd padrão


Escolhe o padrão de televisão (NTSC, PAL (SECAM)).

-dv1394


Captura pelo dispositivo DV1394.

-ad dispositivo


Escolhe o dispositivo ("device") de áudio (exemplo: '/dev/dsp').



Opções avançadas


-map arquivo:faixa


Marca mapeamento da faixa de entrada ("input stream mapping").

-debug


Imprime informação específica de de depuração ("debug").

-benchmark


Adiciona tempos para o teste de performance ("benchmarking").

-hex


Esvazia ("dump") cada pacote de entrada.

-bitexact


Usar apenas algoritmos de bit exato (para teste de codec).

-ps tamanho


Marca o tamanho do pacote em bits.

-re


Lê arquivo de entrada com a razão de frames nativa. Usado principalmente para simular um dispositivo de captura.

-loop


Faz um 'loop' da faixa de entrada. Atualmente, funciona apenas para faixas de imagens (não de áudio). Esta opção é usada para teste automático do servidor FF ("FFserver").

-loop_output númerodevezes


Faz um 'loop' repetido do arquivo de saída para formatos que suportam 'loops', como o GIF animado (o valor 0 fará um 'loop' infinito do arquivo de saída).

Calculadora FFMPEG


Quando calculando uma cadeia de controle de proporção ("rate control string"), o FFMPEG usa uma calculadora de fórmulas interna.
As seguintes operações binárias estão disponíveis:

+, -, *, /, ^


As seguintes operações unárias estão disponíveis:

+, -, (...)


As seguintes funções estão disponíveis:

sinh(x)
cosh(x)
tanh(x)
sin(x)
cos(x)
tan(x)
exp(x)
log(x)
squish(x)
gauss(x)
abs(x)
max(x, y)
min(x, y)
gt(x, y)
lt(x, y)
eq(x, y)
bits2qp(bits)
qp2bits(qp)

As seguintes constantes estão disponíveis:

PI
E
iTex
pTex
tex
mv
fCode
iCount
mcVar
var
isI
isP
isB
avgQP
qComp
avgIITex
avgPITex
avgPPTex
avgBPTex
avgTex



Protocolos


O nome do arquivo pode ser '-' para ser lido na entrada padrão ou para ser escrito para saída padrão. O FFMPEG também comporta vários protocolos especificados com uma sintaxe URL. Use 'ffmpeg -formats' para ver uma lista dos protocolos suportados.

O protocolo http: atualmente é usado somente para se comunicar com o servidor FF ("FFserver") (veja a documentação do FFserver). Quando o FFMPEG for um tocador de vídeo, ele também será usado para fazer transmissão ("streaming") :-)



Dicas



  • Para transmissão ("streaming") a aplicações com taxas de bits ("bitrate") muito baixas, use uma proporção de frames baixa e um tamanho pequeno para o Grupo de Imagens ("GOP size"). Isso é especialmente verdade para RealVideo, com o qual o tocador de Linux parece não ser muito rápido, então pode haver perda de frames. Um exemplo é:

    ffmpeg -g 3 -r 3 -t 10 -b 50 -s qcif -f rv10 /tmp/b.rm





  • O parâmetro 'q' que é exibido enquanto acontece a codificação é o 'quantizer' atual. O valor 1 indica que uma qualidade muito boa pode ser alcançada. O valor 31 indica a pior qualidade. Se q=31 aparecer com muita freqüência, significa que o codificador não consegue comprimir o suficiente para chegar à taxa de bits ("bitrate") que você fixou. Você deve ou aumentar a taxa de bits, abaixar a proporção de frames ("frame rate") ou diminuir o tamanho do frame.



  • Se seu computador não é rápido o suficiente, você pode acelerar a compressão perdendo um pouco da proporção de compressão. Você pode usar '-me zero' para acelerar a estimativa de movimentação, e '-intra' para desabilitar completamente a estimativa de movimento (você terá apenas frames-I, o que significa que é uma compressão tão boa quanto uma compressão JPEG).



  • Para ter taxas de bits ("bitrates") muito baixas, reduza a freqüência de amostragem ("sampling frequency") (para até 22050 kHz para áudio em MPEG, 22050 ou 11025 para áudio em AC3).



  • Para ter uma qualidade constante (mas não uma taxa de bits variável ("variable bitrate")), use a opção '-qscale n', na qual o valor 'n' deve estar entre 1 (qualidade excelente) e 31 (pior qualidade).



  • Ao converter arquivos de vídeo, você pode usar a função '-sameq', que usa o mesmo fator de qualidade tanto no codificador quanto no decodificador. Ele também permite codificação sem perdas ("lossless encoding").




Formatos de arquivos suportados e Codecs


Você pode usar a função -formats para ver uma extensa lista.


Formatos de arquivos


O FFMPEG suporta os seguintes formatos de arquivo por meio da biblioteca libavformat:































































































































































































































Formato de Arquivo SuportadoCodificaçãoDecodificaçãoComentários
MPEG ÁudioXX
MPEG-1 systems (sistemas)XXáudio e vídeo comprimidos juntos ("muxed")
MPEG-2 PSXXtambém conhecido como arquivo VOB
MPEG-2 TS
Xtambém conhecido como DVB Transport Stream
ASFXX
AVIXX
WAVXX
Macromedia FlashXXSomente áudio embutido ("embedded") é decodificado.
FLVXXarquivos de vídeo Macromedia Flash
Real Áudio e VídeoXX
Raw AC3 (AC3 bruto)XX
Raw MJPEG (MJPEG bruto)XX
Raw MPEG vídeo (MPEG bruto " vídeo)XX
Raw PCM8/16 bits, mulaw/Alaw (PCM bruto)XX
Raw CRI ADX áudio (CRI ADX bruto)XX
Raw Shorten áudio (Shorten bruto)
X
SUN AU formatXX
NUTXXFormato de Container Aberto NUT
Quick TimeXX
MPEG-4XXMPEG-4 é uma variante do Quick Time.
Raw MPEG4 vídeo (MPEG4 bruto)XX
DVXX
4xm
XFormato da 4X Technologies, usado em alguns jogos.
Playstation STR
X
Id RoQ
XUsado no Quake III, Jedi Knight 2, outros jogos de computador.
Formato de Arquivo Suportado Interplay MVE
XFormato usado em vários jogos de computador da Interplay.
WC3 Movie (WC3 filme)
XFormato multimídia usado no jogo de computador Origin's Wing Commander III.
Sega FILM/CPK
XUsado em vários jogos do console Sega Saturn.
Westwood Studios VQA/AUD
XFormatos multimídia usados nos jogos da Westwood Studios.
Id Cinematic (.cin)
XUsado no Quake II.
FLIC format
Xarquivos .fli/.flc
Sierra VMD
XUsado nos jogos de CD-ROM da Sierra.
Sierra Online
Xarquivos .sol usados nos jogos online da Sierra.
Matroska
X
Electronic Arts Multimedia
XUsado em vários jogos da EA; os arquivos têm extensões tipo WVE e UV2.
Nullsoft Video (NSV) format
X

X significa que a codificação (e respectiva decodificação) é suportada.


Formatos de imagens


O FFMPEG pode ler e escrever imagens para cada frame de uma seqüência de vídeo. Os seguintes formatos de imagem são suportados:























































Formato de Imagem SuportadoCodificaçãoDecodificaçãoComentários
PGM, PPMXX
PAMXXPAM é uma extensão PNM com suporte a camada alfa.
PGMYUVXXPGM com componentes U e V em YUV 4:2:0
JPEGXXJPEG progressivo não é suportado.
.Y.U.VXXum arquivo bruto por componente
GIF animadoXXSomente GIFs não comprimidos são gerados.
PNGXX2 bits e 4 bits/pixel ainda não são suportados.
SGIXXformato de imagem SGI RGB

X significa que a codificação (e respectiva decodificação) é suportada.


Codecs de vídeo





























































































































































































































































































































































































Codec suportadoCodificaçãoDecodificaçãoComentários
MPEG-1 videoXX
MPEG-2 videoXX
MPEG-4XXtambém conhecido como DivX4/5
MSMPEG4 V1XX
MSMPEG4 V2XX
MSMPEG4 V3XXtambém conhecido como DivX3
WMV7XX
WMV8XXnão está funcionando completamente
H.261XX
H.263(+)XXtambém conhecido como RealVideo 1.0
H.264
X
RealVideo 1.0XX
RealVideo 2.0XX
MJPEGXX
lossless MJPEG (MJPEG sem perdas)XX
Apple MJPEG-B
X
Sunplus MJPEG
Xfourcc: SP5X
DVXX
HuffYUVXX
FFMPEG Video 1XXcodec sem perdas experimental (fourcc: FFV1)
FFMPEG SnowXXcodec wavelet experimental (fourcc: SNOW)
Asus v1XXfourcc: ASV1
Asus v2XXfourcc: ASV2
Creative YUV
Xfourcc: CYUV
Sorenson Video 1XXfourcc: SVQ1
Sorenson Video 3
Xfourcc: SVQ3
On2 VP3
Xainda experimental
Theora
Xainda experimental
Intel Indeo 3
X
FLVXXSorenson H.263 usado em Flash
ATI VCR1
Xfourcc: VCR1
ATI VCR2
Xfourcc: VCR2
Cirrus Logic AccuPak
Xfourcc: CLJR
4X Video
XUsado em certos jogos de computador
Sony Playstation MDEC
X
Id RoQ
XUsado no Quake III, Jedi Knight 2, outros jogos de computador.
Xan/WC3
XUsado nos arquivos .MVE do Wing Commander III.
Interplay Video
XUsado nos arquivos .MVE da Interplay.
Apple Animation (Animação Apple)
Xfourcc: 'rle '
Apple Graphics (Gráficos Apple)
Xfourcc: 'smc '
Apple Video
Xfourcc: rpza
Apple QuickDraw
Xfourcc: qdrw
Cinepak
X
Microsoft RLE
X
Microsoft Video-1
X
Westwood VQA
X
Id Cinematic Video
XUsado no Quake II.
Planar RGB
Xfourcc: 8BPS
FLIC video
X
Duck TrueMotion v1
Xfourcc: DUCK
Duck TrueMotion v2
Xfourcc: TM20
VMD Video
XUsado nos arquivos VMD da Sierra.
MSZH
XParte do LCL
ZLIBXXParte do LCL, codificador experimental
TechSmith Camtasia
Xfourcc: TSCC
IBM Ultimotion
Xfourcc: ULTI
Miro VideoXL
Xfourcc: VIXL
QPEG
Xfourccs: QPEG, Q1.0, Q1.1
LOCO
X
Winnov WNV1
X
Autodesk Animator Studio Codec
Xfourcc: AASC
Fraps FPS1
X

X significa que a codificação (e respectiva decodificação) é suportada.

Veja http://www.mplayerhq.hu/~michael/codec-features.html para ter uma comparação precisa do codec FFMPEG MPEG-4 comparado a outras implementações.


Codecs de áudio













































































































































































































































Codec SuportadoCodificaçãoDecodificaçãoComentários
MPEG audio layer 2 (MPEG áudio, camada 2)IXIX
MPEG audio layer 1/3 (MPEG áudio, camadas 1/3)IXIXCodificação no formato MP3 é suportada por meio da biblioteca externa LAME.
AC3IXIXliba52 é usada internamente para decodificação.
VorbisXXSuportado por meio da biblioteca externa libvorbis.
WMA V1/V2
X
AACXXSuportado por meio da biblioteca externa libfaac/libfaad.
Microsoft ADPCMXX
MS IMA ADPCMXX
QT IMA ADPCM
X
4X IMA ADPCM
X
G.726 ADPCMXX
Duck DK3 IMA ADPCM
XUsado em alguns jogos de console Sega Saturn.
Duck DK4 IMA ADPCM
XUsado em alguns jogos de console Sega Saturn.
Westwood Studios IMA ADPCM
XUsado em jogos da Westwood Studios como Command and Conquer.
SMJPEG IMA ADPCM
XUsado em alguns ports de jogos da Loki.
CD-ROM XA ADPCM
X
CRI ADX ADPCMXXUsado em jogos da Sega Dreamcast.
Electronic Arts ADPCM
XUsado em vários títulos da EA.
Creative ADPCM
X
RA144
XCodec Real 14400 bit/s
RA288
XCodec Real 28800 bit/s
RADnetXIXCodec AC3 com taxa de bits muito baixa, liba52 é usada para decodificação.
AMR-NBXXSuportado por uma biblioteca externa.
AMR-WBXXSuportado por uma biblioteca externa.
DV audio
X
Id RoQ DPCM
XUsado no Quake III, Jedi Knight 2, outros jogos de computador.
Interplay MVE DPCM
XUsado em vários jogos de computador da Interplay.
Xan DPCM
XUsado nos arquivos AVI do Origin's Wing Commander IV.
Sierra Online DPCM
XUsado nos arquivos de áudio dos jogos online da Sierra.
Apple MACE 3
X
Apple MACE 6
X
FLAC lossless audio
X
Shorten lossless audio
X
Apple lossless audio
XQuick Time fourcc 'alac'
FFMPEG SonicXXcodec experimental para compressão com ou sem perdas ("lossy/lossless")
Qdesign QDM2
Xainda há algumas distorções
Real COOK
XTodas as versões, exceto 5.1 são suportadas
DSP Group TrueSpeech
X

X significa que a codificação (e respectiva decodificação) é suportada. I significa que uma versão "integer-only" está disponível, também (garante alta performance em sistemas sem suporte a 'hardware floating point').

Texto original: http://estudiolivre.org/tiki-index.php?page=manual+do+FFMPEG