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.
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, |
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]]… |
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
Lê
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.
