ffmpeg online

Manual
traduzido FFMPEG


versão
rev-14736, agosto de 2008.


versão
online, só para cair no google. o pdf mais bonito está
neste link.




1.
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
FFMPEG 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.




2.
Início rápido




2.1
Captura de áudio e vídeo


O
FFmpeg pode capturar vídeo e áudio a partir de
dispositivos desde que você informe o formato de entrada e o
dispositivo.














ffmpeg -f oss -i /dev/dsp -f video4linux2 -i /dev/video0 /tmp/saída.mpg


Note
que você deve ativar a fonte de vídeo correta e o canal
antes de iniciar o FFmpeg com qualquer visor de tv, como o xawtv
(
http://bytesex.org/xawtv/)
de Gerd Knorr. Você também pode configurar os níveis
de gravação corretamente com um mixer padrão.








2.2
Captura do X11


FFmpeg
pode capturar a reprodução do X11.














ffmpeg -f x11grab -s cif -i :0.0 /tmp/saída.mpg


0.0
é o número de reprodução.tela de seu
servidor X11, o mesmo da variável de ambiente DISPLAY.














ffmpeg -f x11grab -s cif -i :0.0+10,20 /tmp/saída.mpg


0.0
é o número de reprodução.tela de seu
servidor X11, o mesmo da variável de ambiente DISPLAY. 10 é
o deslocamento-x e 20 o deslocamento-y para a captura.








2.3
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 cabeçalhos
("headers"). 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 um arquivo bruto YUV420P:














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


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


*
Você pode dar saída 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 640×480 -i /tmp/a.yuv /tmp/a.mpg


Converte
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


Converte
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 para as faixas de saída:














ffmpeg -i /tmp/a.wav -ab 64k /tmp/a.mp2 -ab 128k /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 é usada
para qual faixa de saída, 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 800k -g 300 -bf 2 -acodec libmp3lame -ab 128k 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
quadros 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 quadro intra ("intra
frame") a cada 10 segundos para um vídeo com entrada a
29.97fps. Outra coisa: a faixa de áudio está codificada
em MP3, então você precisa habilitar o suporte a LAME,
dando o comando
–enable-libmp3lame
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
.






*
Você pode extrair imagens de um vídeo:






ffmpeg
-i teste.avi -r 1 -s LxA -f imagem2 teste-%03d.jpeg






Isso
extrairá um quadro do vídeo por segundo e os gravará
em arquivos chamados teste-001.jpeg, teste-002.jpeg, etc. As imagens
serão redimensionadas para se adequarem aos novos valores de
LxA.






A
sintaxe teste-%03d.jpeg especifica que um número decimal
composto de três dígitos ladeados por zeros será
usado para expressar a seqüência numérica. Esta é
a mesma sintaxe suportada pela função C printf, mas
apenas formatos que aceitem um integrador normal são
adequados.






Caso
você queira extrair apenas um número limitado de
quadros, você pode usar o comando acima em combinação
com as opções -vframes ou -t, ou em combinação
com -ss para iniciar a extração a partir de um
determinado ponto no tempo.








3.
Chamada


3.1
Sintaxe genérica


A
sintaxe genérica é:














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


Como
regra geral, as opções são aplicadas ao arquivo
seguinte especificado. Portanto, a ordem é importante, e você
pode ter a mesma opção na linha de comando várias
vezes. Cada ocorrência é então aplicada ao
próximo arquivo de entrada ou saída.


*
Para configurar a taxa de bits do arquivo de saída para
64kbit/s:














ffmpeg -i entrada.avi -b 64k saída.avi


*
Para forçar a taxa de quadros do arquivo de saída para
24 fps:














ffmpeg -i entrada.avi -r 24 saída.avi


*
Para forçar a taxa de quadros do arquivo de entrada (válido
apenas para formatos brutos) para 1 fps e a taxa de quadros do
arquivo de saída para 24 fps:














ffmpeg -r 1 -i entrada.m2v -r 24 saída.avi


A
opção de formato pode ser necessária para
arquivos de entrada brutos.


Por
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.




3.2
Opções principais








-L


Mostra
a licença de uso.





-h


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





-version


Mostra
a versão do programa.





-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


Restringe
a sequência de transcodificação/captura de vídeo
para a duração especificada, em segundos. A sintaxe
[hh:mm:ss.xxx] também é suportada.





-fs
tamanho_limite


Define
o tamanho limite do arquivo.





-ss
posição


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





-itsoffset
deslocamento


Define
o deslocamento de tempo de entrada, em segundos. A sintaxe
[hh:mm:ss.xxx] também é suportada. Esta opção
afeta todos os arquivos de entrada que a seguirem. O deslocamento é
adicionado aos códigos de marcação de tempo dos
arquivos de entrada. Especificar um deslocamento positivo significa
que as faixas correspondentes serão atrasadas por
‘deslocamento’ segundos.





-title
cadeiadecaracteres


Define
o título.





-timestamp
tempo


Define
a marcação de tempo.





-author
cadeiadecaracteres


Define
o autor.





-copyright
cadeiadecaracteres


Define
os direitos autorais (‘copyright’).





-comment
cadeiadecaracteres


Define
o comentário.





-album
cadeiadecaracteres


Define
o álbum.





-track
número


Define
a trilha





-year
número


Define
o ano.





-v
número


Configura
o nível de verbosidade do registro (log).





-target
tipo


Especifica
o tipo de arquivo a ser usado como saída ("vcd",
"svcd", "dvd", "dv", "dv50",
"pal-vcd", "ntsc-svcd", … ). Todas as opções
do formato (taxa de bits, codecs, tamanhos de buffer) são
então configurados 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







-dframes
número


Define
o número de quadros de informações a serem
gravados.





-scodec
codec


Força
o codec de legendas (use ‘copy’ para copiar a faixa).





-newsubtitle


Adiciona
uma nova faixa de legendas à faixa de saída atual.





-slang
código


Define
o código de língua ISO 639 (3 letras) da faixa de
legendas atual.




3.3
Opções de vídeo








-b
taxadebits


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


-vframes
número


Define
o número de quadros de vídeo a serem gravados.


-r
fps


Fixa
a taxa de quadros por segundo (valor em Hz, fração ou
abreviação) (padrão = 25).


-s
tamanho


Fixa
o tamanho de quadro. O formato é ‘LxA’, isto é, Largura
x Altura (padrão do ffserver = 160×128, padrão do
ffmpeg = mesmo que arquivo de origem). As abreviaturas a seguir são
reconhecidas:


sqcif


128×96





qcif


176×144





cif


352×288





4cif


704×576





qqvga


160×120





qvga


320×240





vga


640×480





svga


800×600





xga


1024×768





uxga


1600×1200





qxga


2048×1536





sxga


1280×1024





qsxga


2560×2048





hsxga


5120×4096





wvga


852×480





wxga


1366×768





wsxga


1600×1024





wuxga


1920×1200





woxga


2560×1600





wqsxga


3200×2048





wquxga


3840×2400





whsxga


6400×4096





whuxga


7680×4800





cga


320×200





ega


640×350





hd480


852×480





hd720


1280×720





hd1080


1920×1080





-aspect
aspecto


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





-croptop
tamanho


Define
o tamanho do corte (em pixels) a ser feito na parte de cima.





-cropbottom
tamanho


Define
o tamanho do corte (em pixels) a ser feito na parte de baixo.





-cropleft
tamanho


Define
o tamanho do corte (em pixels) a ser feito na parte da esquerda.





-cropright
tamanho


Define
o tamanho do corte (em pixels) a ser feito na parte da direita.





-padtop
tamanho


Define
o tamanho do enchimento (em pixels) a ser feito na parte de cima.





-padbottom
tamanho


Define
o tamanho do enchimento (em pixels) a ser feito na parte de baixo.





-padleft
tamanho


Define
o tamanho do enchimento (em pixels) a ser feito na parte da esquerda.





-padright
tamanho


Define
o tamanho do enchimento (em pixels) a ser feito na parte da direita.





-padcolor
cor_hexadecimal


Define
a cor das faixas de preenchimento. 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 (padrão = 000000 (preto)).





-vn


Desabilita
a gravação de vídeo.





-bt
tolerância


Define
a tolerância da taxa de bits (em bits, padrão 4000k).
Possui um valor mínimo de:
(taxa_de_bits_alvo/taxa_de_quadros_alvo). No modo 1-passagem
(1-pass), a tolerância da taxa de bits especifica o quão
longe o controle da taxa permitirá que ela se afaste do valor
médio da taxa-alvo. Isto não está relacionado à
taxa de bits mín/máx. Baixar a tolerância demais
possui um efeito adverso na qualidade.





-maxrate
taxadebits


Define
a taxa de bits máxima (em bit/s). Requere que a opção
-bufsize seja configurada.





-minrate
taxadebits


Define
a taxa de bits mínima (em bit/s). Mais útil quando se
faz uma codificação a uma taxa de bits constante (CBR):

















ffmpeg -i
meuarquivo.avi -b 4000k -minrate 4000k -maxrate 4000k



-bufsize 1835k
saída.m2v




Esta
opção é de pouco uso em outros modos.





-bufsize
tamanho


Define
o tamanho do buffer do verificador de buffer de vídeo (em
bits).





-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 codificação
a uma taxa variável de bits, VBR).





-pass
n


Seleciona
o número da passagem (1 ou 2). É útil para fazer
codificação em duas passagens (two pass encoding). As
estatísticas do vídeo são gravadas primeiro, na
primeira passagem, e o vídeo é gerado na taxa de bits
exata informada para a segunda passagem. Na passagem 1, você
pode simplesmente desativar o áudio e marcar a saída
para null; exemplos para Unix e Windows:





ffmpeg
-i teste.mov -vcodec libxvid -pass 1 -an -f rawvideo -y NUL


ffmpeg
-i teste.mov -vcodec libxvid -pass 1 -an -f rawvideo -y /dev/null








-passlogfile
arquivo


Define
o nome do arquivo de registro da codificação em duas
passagens para arquivo.





-newvideo


Adiciona
uma nova faixa de vídeo à faixa de saída atual.




3.4
Opções avançadas de vídeo








-pix_fmt
formato


Define
o formato do pixel. Use ‘list’ como parâmetro para mostrar
todos os formatos de pixel suportados.





-sws_flags
marcadores


Define
os marcadores SwScaler (disponível apenas quando compilado com
suporte a swscale).





-g
tamanho_do_GOP


Define
o tamanho do Grupo de Imagens (GOP).





-intra


Usa
apenas quadros ‘intra’.





-vdt
n


Descarta
a entrada.





-qscale
q


Usa
uma escala de quantizador de vídeo fixa (VBR).





-qmin
q


Mínimo
da escala de quantizador de vídeo (VBR)





-qmax
q


Máximo
da escala de quantizador de vídeo (VBR)





-qdiff
q


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





-qblur
desfoque


Desfoque
da escala de quantizador de vídeo (VBR) (abrangência 0.0
– 1.0)





-qcomp
compressão


Compressão
da escala de quantizador de vídeo (VBR) (padrão 0.5).
Constante da equação da taxa de controle. Abrangência
recomendada por padrão rc_eq: 0.0-1.0





-lmin
lambda


Fator
mínimo de abrangência lag (lagrange) de vídeo
(VBR)





-lmax
lambda


Fator
máximo de abrangência lag (lagrange) de vídeo
(VBR)





-mblmin
lambda


Escala
mínima do quantizador do macrobloco (VBR)





-mblmax
lambda


Escala
máxima do quantizador do macrobloco (VBR)





Essas
quatro opções (lmin, lmax, mblmin, mblmax) usam
unidades ‘lambda’, mas você pode usar a constante QP2LAMBDA
para converter facilmente a partir de unidades ‘q’:












 




ffmpeg -i fonte.ext
-lmax 21*QP2LAMBDA dst.ext







-rc_init_cplx
complexidade


Complexidade
inicial para codificação em passagem única





-b_qfactor
fator


Fator
qp entre quadros P- e B-





-i_qfactor
fator


Fator
qp entre quadros P- e I-





-b_qoffset
deslocamento


Deslocamento
qp entre quadros P- e B-





-i_qoffset
deslocamento


Deslocamento
qp entre quadros P- e I-





-rc_eq
equação


Define
a equação da taxa de controle (see section Avaliador de
fórmula do FFMPEG) (padrão = tex^qComp).





-rc_override
sobrescrição


Taxa
de controle de sobrescrição para intervalos específicos





-me_method
método


Define
o método de estimativa de movimentação para
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


hex


umh


epzs


(método
padrão)


full


busca
exaustiva (lenta, levemente melhor do que epzs)





-dct_algo
algoritmo


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


0


FF_DCT_AUTO
(padrão)


1


FF_DCT_FASTINT


2


FF_DCT_INT


3


FF_DCT_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
(padrão)


1


FF_IDCT_INT


2


FF_IDCT_SIMPLE


3


FF_IDCT_SIMPLEMMX


4


FF_IDCT_LIBMPEG2MMX


5


FF_IDCT_PS2


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 para o valor especificado em n.





1


FF_ER_CAREFUL
(padrão)


2


FF_ER_COMPLIANT


3


FF_ER_AGGRESSIVE


4


FF_ER_VERY_AGGRESSIVE





-ec
máscara_em_bits


Marca
o quanto de erro será ‘escondido’ para o valor definido em
bit_mask. bit_mask é uma máscara de bits com os
seguintes valores:





1


FF_EC_GUESS_MVS
(padrão = habilitado)


2


FF_EC_DEBLOCK
(padrão = habilitado)





-bf
quadros


Usa
‘quadros’ B-frames (suportado para MPEG-1, MPEG-2 e MPEG-4).





-mbd
modo


Decisão
de macroblocos





0


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


1


FF_MB_DECISION_BITS:
Escolhe qual precisa de menos bits.


2


FF_MB_DECISION_RD:
Distorção de razão.





-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
estritamente o programa seguirá os padrões.





-aic


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





-umv


Habilita
vetor de movimentação ilimitado (h263+).





-deinterlace


Desentrelaça
as imagens.





-ilme


Força
o suporte a entrelaçamento no codificador (MPEG-2 e MPEG-4
somente). Use esta opção se seu arquivo de entrada for
entrelaçado e você quer mantê-lo entrelaçado
para que haja perdas mínimas. A alternativa seria desentrlaçar
a faixa de entrada com ‘-deinterlace’, mas o desentrelaçamento
introduz perdas.





-psnr


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





-vstats


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





-vstats_file
arquivo


Escreve
as estatísticas da codificação do vídeo
em arquivo.





-vhook
módulo


Insere
o módulo de processamento do vídeo. O módulo
contém o nome do módulo e seus parâmetros,
separados por espaços.





-top
n


Campo
topo=1/base=0/auto=-1 primeiro.





-dc
precisão


Precisão
intra_dc_precision.





-vtag
fourcc/tag


Força
o tag/fourcc no vídeo.





-qphist


Mostra
o histograma QP.





-vbsf
filtro_de_faixa_de_bit


Filtros
de faixas de bits disponíveis são "dump_extra",
"remove_extra", "noise", "h264_mp4toannexb",
"imxdump", "mjpegadump".












 




ffmpeg -i h264.mp4
-vcodec copy -vbsf h264_mp4toannexb -an saída.h264









3.5
Opções de áudio








-aframes
número


Define
o número de quadros de áudio a serem gravados.





-ar
freqüência


Define
a freqüência da amostragem de áudio (padrão
= 44100 Hz).





-ab
taxa_de_bits


Define
a taxa de bits de áudio em bit/s (padrão = 64k).





-ac
canais


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





-an


Desabilita
a gravação de áudio.





-acodec
codec


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





-newaudio


Adiciona
uma nova trilha de áudio no arquivo de saída. Se você
quiser especificar os parâmetros, informe-os antes do -newaudio
(-acodec, -ab, etc..).


O
mapeamento será feito automaticamente, caso o número de
faixas de saída for igual ao número de faixas de
entrada. De outro modo, o programa pegará a primeira que
estiver de acordo. Você pode sobrescrever o mapeamento usando a
opção -map.


Exemplo:












 




ffmpeg -i arquivo.mpg
-vcodec copy -acodec ac3 -ab 384k teste.mpg



-acodec mp2 -ab 192k
-newaudio







-alang
código


Define
o código de língua ISO 639 (3 letras) da faixa de áudio
atual.




3.6
Opções avançadas de áudio:





-atag
fourcc/tag


Força
o tag/fourcc no áudio.





-absf
filtro_de_faixa_de_bit


Filtros
de faixas de bits disponíveis são "dump_extra",
"remove_extra", "noise", "mp3comp",
"mp3decomp".




3.7
Opções de legendas:








-scodec
codec


Força
o codec de legenda (use o parâmetro ‘copy’ para copiar a
faixa).





-newsubtitle


Adiciona
uma nova faixa de legendas para a faixa de saída atual.





-slang
código


Define
o código de língua ISO 639 (3 letras) da faixa de
legenda atual.





-sbsf
filtro_de_faixa_de_bit


Filtros
de faixas de bits disponíveis são "mov2textsub",
"text2movsub".












 




ffmpeg -i arquivo.mov
-an -vn -sbsf mov2textsub -scodec copy



-f rawvideo
legenda.txt









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








-vc
canal


Define
o canal de captura de áudio (DV1394 apenas).





-tvstd
padrão


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





-isync


Sincroniza
a leitura na entrada.







3.9
Opções avançadas








-map
id_da_faixa_de_entrada
[:id_da_faixa_de_sincronia]


Define
o mapeamento de faixas das faixas de entrada para as de saída.
Apenas enumere as faixas de entrada na ordem que você as quer
como saída. [id da faixa de entrada] define a faixa (de
entrada) a ser sincronizada.





-map_meta_data
arquivo_de_saída:arquivo_de_entrada


Define
a meta informação do arquivo_de_saída a partir
do arquivo_de_entrada.





-debug


Imprime
informação específica de de depuração.





-benchmark


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





-dump


Esvazia
("dump") cada pacote de entrada.





-hex


Quando
esvaziando ("dumping") os pacotes, também esvazia o
payload.





-bitexact


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





-ps
tamanho


Define
o tamanho do pacote em bits.





-re



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





-loop_input


Faz
um ‘loop’ da faixa de entrada. Atualmente, funciona apenas para
faixas de imagens. Esta opção é usada para teste
automático do servidor FFserver.





-loop_output
número_de_vezes


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





-threads
contagem


Contagem
de threads.





-vsync
parâmetro


Método
de sincronia do vídeo. O vídeo será
esticado/diminuído para ficar de acordo com os códigos
de marcação de tempo. Isto é feito duplicando ou
descartando quadros. Com -map, você pode selecionar a partir de
qual faixa as marcações de tempo serão
consideradas. Você pode deixar tanto o vídeo quanto o
áudio sem modificações e sincronizar a(s)
faixa(s) restante(s).





-async
amostras_por_segundo


Método
de sincronia do áudio. "Estica/diminui" a faixa de
áudio para ficar de acordo com os códigos de marcação
de tempo. O parâmetro é o máximo de amostras por
segundo pela qual o áudio é transformado. -async 1 é
um caso especial onde apenas o início do áudio é
corrigido sem qualquer correção posterior.





-copyts


Copia
as marcações de tempo da entrada para a saída.





-shortest


Termina
a codificação quando a faixa de entrada menor acabar.





-dts_delta_threshold


Delta
de entrada de descontinuidade da marcação de tempo.





-muxdelay
segundos


Define
o atraso máximo de decodificação-demux.





-muxpreload
segundos


Define
o atraso inicial da decodificação-demux.





3.10
Avaliador de fórmula do FFMPEG


Quando
calcula uma cadeia de controle de taxa, o FFMPEG usa um avaliador
interno de fórmulas.


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







3.11
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
FFserver (veja a documentação do FFserver). Quando o
FFMPEG for um reprodutor de vídeo, ele também será
usado para fazer transmissão ("streaming")🙂




4.
Dicas



  • Para
    transmitir ("streaming") em programas com taxas de bits
    muito baixas, use uma taxa de quadros baixa e um tamanho pequeno
    para o Grupo de Imagens (GOP). Isso é especialmente verdade
    para o RealVideo, com o qual o tocador de Linux parece não
    ser muito rápido, então pode haver perda de quadros.
    Um exemplo é:










     



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


  • O
    parâmetro ‘q’ que é exibido enquanto acontece a
    codificação é o quantizador 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, isso significa que o codificador não
    consegue comprimir o suficiente para chegar à taxa de bits
    que você fixou. Você deve ou aumentar a taxa de bits,
    baixar a taxa de quadros ou diminuir o tamanho do quadro.


  • 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 quadros-I, o que significa que é uma compressão
    tão boa quanto uma compressão JPEG).


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


  • Para
    obter uma qualidade constante (mas não uma taxa de bits
    variável), 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. Esta opção permite uma
    codificação quase sem perdas.





Written by qazav_szaszak

27 de agosto de 2008 às 22:47

%d blogueiros gostam disto: