Comando FFmpeg para converter em DivX

1

Estou tentando usar o ffmpeg para converter vídeo em DivX. Aqui está a minha linha de comando atual:

-vtag DIVX -f avi -vcodec msmpeg4 -s 640x480 -b 345k -acodec libmp3lame -ab 256 -ac 2 -ar 48000

O problema é que estou recebendo um arquivo DivX de baixa qualidade quando quero um arquivo de alta qualidade. Alguém pode me apontar para um melhor comando de maior qualidade que seria útil e é msmpeg4 o mais recente codec DivX?

    
por 3498DB 12.07.2011 / 20:17

3 respostas

2

Você pode tentar especificar um valor maior para a opção -b 345k . Isso determina a taxa de bits do vídeo de saída. Talvez você possa tentar alterar -r fps , se necessário.

Você precisa ter cuidado ao alterar esses valores. Nem todos os valores são aceitos para todos os codecs. Veja a ajuda / manual do ffmpeg para mais informações.

    
por 12.07.2011 / 20:34
2

Use uma taxa de bits mais alta e / ou use codificação de duas passagens ou use -qscale para atingir um nível de qualidade em um modo de taxa de bits variável, em vez de uma taxa de bits específica. Veja esta postagem do blog para informações um pouco mais detalhadas.

Qscale

O intervalo de qscale para mpeg4 é de 1 a 31, sendo menor = melhor qualidade / maior tamanho de arquivo e 3-6 normalmente pode ser considerado um intervalo útil. Isso terá como alvo uma determinada qualidade, com uma taxa de bits variável. Você também pode usar qscale com libmp3lame, em que o intervalo é de 0 a 9, com números menores dando melhor qualidade. Veja aqui para mais informações; qualquer coisa até 6 lhe dará boa qualidade.

Sintaxe atualizada:

ffmpeg -i input.file -c:v mpeg4 -q:v 5 -tag:v DIVX -s 640x480 -c:a libmp3lame -q:a 5 -ac 2 -ar 44100 output.avi

Sintaxe antiga:

ffmpeg -i input.file -vcodec mpeg4 -qscale 5 -vtag DIVX -s 640x480 -acodec libmp3lame -aq 5 -ac 2 -ar 44100 output.avi

Codificação de duas passagens

Observe que os usuários do Windows precisam usar NUL em vez de /dev/null . Use isso se você quiser segmentar um tamanho específico. Caso contrário, use a opção -qscale de segmentação por qualidade VBR. Esses exemplos vão caber um filme de 90 minutos em um CD-ROM de 700 MB.

Sintaxe atualizada:

ffmpeg -y -i input.file -c:v mpeg4 -b:v 868k -tag:v DIVX -s 640x480 -an -pass 1 -f rawvideo /dev/null
ffmpeg -i input.file -c:v mpeg4 -b:v 868k -tag:v DIVX -s 640x480 -c:a libmp3lame -b:a 192k -ac 2 -ar 44100 -pass 2 output.avi

Sintaxe antiga:

ffmpeg -y -i input.file -vcodec mpeg4 -b 868k -vtag DIVX -s 640x480 -an -pass 1 -f rawvideo /dev/null
ffmpeg -i input.file -vcodec mpeg4 -b 868k -vtag DIVX -s 640x480 -acodec libmp3lame -ab 192k -ac 2 -ar 44100 -pass 2 output.avi

Note que você não precisa estritamente de -ac 2 , já que o MP3 suporta apenas dois canais, portanto, qualquer áudio de som surround será mixado automaticamente.

Você deve considerar o uso de vídeo H.264 / áudio AAC em um contêiner MP4; a única razão para usar DivX / MP3 em um AVI é se você precisar de suporte em players de hardware herdados. A utilização de DivX resulta em pior qualidade em comparação com vídeos codificados em H.264 com a mesma taxa de bits.

    
por 20.02.2013 / 13:37
0

Tente isto:

-vtag DIVX -f avi -vcodec mpeg4 -mbd 1 -bf 2 -s 640x480 -b 900k -acodec libmp3lame -ab 192 -ac 2 -ar 44100
    
por 20.02.2013 / 11:07

Tags