1. Obter código%
É sempre uma boa ideia usar uma compilação recente ao codificar com ffmpeg
. O desenvolvimento é muito ativo e o uso de uma compilação recente permitirá que você evite bugs corrigidos, além de fornecer acesso aos recursos mais recentes.
Existem dois métodos principais para obter ffmpeg
e nenhum deles interferirá nos pacotes do repositório, incluindo o pacote "ffmpeg":
Usando uma compilação estática
Isto é simplesmente um binário que alguém compilou. Tudo que você faz é baixar, extrair e executá-lo (observe o ffmpeg
antes de ./
):
wget http://ffmpeg.gusari.org/static/32bit/ffmpeg.static.32bit.$(date +"%F").tar.gz
tar xzvf ffmpeg.static.32bit.$(date +"%F").tar.gz
./ffmpeg -i input.mp4 <your options> output.mkv
Compilando ffmpeg
Ao compilar, você controla exatamente como o ffmpeg
está configurado e também permite que você use determinados codificadores, como ffmpeg
, que não estão disponíveis nas compilações estáticas.
Basta seguir um guia passo-a-passo: Como compilar o FFmpeg no Ubuntu . Se você pode copiar e colar, você pode compilar libfdk_aac
.
2. Codificar
ffmpeg -i in.avi -vf scale=-1:720 -c:v libx264 -crf 18 -preset fast -c:a copy out.mkv
Neste exemplo:
-
O
ffmpeg
filter para redimensionar o vídeo. Comscale
você pode simplesmente declarar uma dimensão, altura neste caso, e usarscale
na outra.-1
calculará automaticamente o valor correto enquanto mantém a proporção. -
O codificador
ffmpeg
produzirá vídeo H.264. A qualidade é controlada comlibx264
. O intervalo é uma escala de log de 0 a 51. 0 é sem perdas (os arquivos provavelmente serão enormes), 18 é geralmente considerado "sem perda visual", 23 é padrão e 51 é de pior qualidade. Geralmente você usa o valor mais alto que ainda lhe dá uma qualidade aceitável. -
A velocidade de codificação em vídeo / eficiência de compressão para este codificador é controlada com o
-crf
. Estes são: ultra-rápidos, super rápidos, muito rápidos, rápidos, médios, lentos, lentos, veryslow. O padrão é "médio". Geralmente você usa a predefinição mais lenta para a qual tem paciência. -
Para um conjunto de vídeos, use o mesmo
-preset
e-crf
para todos eles. -
O áudio será fluxo copiado da entrada para a saída. Pense nisso como copiar e colar.
-
O contêiner de saída Matroska será usado. Ele suporta mais formatos, não é tão amplamente suportado por players e dispositivos como o MP4, por exemplo.
Codificando todos os vídeos
Você pode usar um bash "for loop" para codificar todos os vídeos em um diretório:
mkdir encoded
for f in *.avi; do ./ffmpeg -i "$f" -vf scale=-1:720 -c:v libx264 -crf 18 -preset fast -c:a copy encoded/"${f%.avi}.mkv"; done
Veja também
- Guia de codificação do FFmpeg e x264
- Guia de codificação do FFmpeg e AAC