Ubuntu e seu pacote FFmpeg
Bem, você se deparou com o problema que o FFmpeg não envia mais com o Ubuntu, mas você tentou instalá-lo através de apt-get
.
This program is not developed anymore and is only provided for compatibility
Isto é simplesmente uma mentira. O FFmpeg é desenvolvido ativamente, mas os pacotes do Ubuntu estão desatualizados e eles mudaram para libav . Veja aqui o relatório de erros que discute o texto da mensagem.
Instalando a partir do código-fonte ou usando uma compilação estática
Se você não estiver compilando a si mesmo, pode simplesmente pegar uma versão estática da página de download .
Se você quiser se manter atualizado e configurar a ferramenta por conta própria, precisará compilá-la a partir do código-fonte . Verifique o guia de compilação do Ubuntu para um tutorial detalhado sobre a instalação. Seguindo estas etapas, você terminará com a versão mais recente do FFmpeg (a ferramenta de codificação) e do x264 (um determinado codificador de vídeo).
O que preciso para reduzir o tamanho?
Você pergunta ...
which file formats and compression methods are recommended these days
Na verdade, existe apenas um método de compactação ("codec") que todos recomendariam. É o padrão H.264 ou MPEG-4 Part 10 / AVC, que especifica um método de compactação para vídeo de baixa largura de banda. O H.264 também alcança ótimos resultados para larguras de banda mais altas. Um codificador muito comum é chamado "x264", o que instalamos acima.
Ele substitui o MPEG-4 Part 2, o padrão de codec de vídeo que tornou os codificadores "DivX" e "XviD" famosos. Eles também são bons, mas precisam de mais largura de banda para preservar a mesma qualidade.
O formato de arquivo real não importa. O vídeo H.264 pode residir em praticamente qualquer contêiner, de AVI a MP4, MOV e MKV. É importante saber a diferença entre um codec de vídeo per se e o container que simplesmente o encapsula. Veja aqui para mais: O que é um codec (por exemplo, DivX?) e como ele difere de um formato de arquivo (por exemplo, MPG)? Eu escolheria MP4 ou MKV como contêiner de saída hoje em dia. O AVI é muito antigo e não permite que você faça muito com o vídeo, e para os contêineres acima mencionados há melhores ferramentas para a remultiplexação disponível.
Quando você deseja reduzir o tamanho, deseja reduzir a taxa de bits média do vídeo. No caso mais simples, isso significaria forçar o codificador a, digamos, uma taxa de bits constante de 1,5 MBit / s. Isso funciona, mas tem algumas desvantagens. Em vez de codificar com uma taxa de bits fixa, deixe o codificador escolher quanto deseja gastar. Isso resulta em uma taxa de bits média, adaptada ao conteúdo do vídeo. Faça isso usando a opção Fator de taxa constante .
Para x264, isso significa definir um valor entre 18 e 26 para este CRF. O padrão é 23 e valores mais altos dão pior qualidade e vice-versa. Você não precisa saber exatamente o que faz, mas se estiver interessado, consulte este Guia do CRF .
Como você realiza a conversão?
Depois de ter o FFmpeg em funcionamento, você pode simplesmente converter um vídeo para x264 / MP4 com áudio AAC a uma taxa de bits fixa de 192 kBit / s:
ffmpeg -i input.avi -c:v libx264 -crf 23 -c:a aac -strict experimental -b:a 192k output.mp4
É isso. Você pode variar o tamanho e a qualidade da saída ajustando o valor do CRF. Lower significa melhor qualidade e tamanho maior. Maior significa pior qualidade e menor tamanho. Como eu disse, valores sãos estão entre 18 e 26, talvez mais. Se você realmente quiser reduzir o tamanho do vídeo de entrada, escolha o valor de CRF que ainda oferece qualidade de vídeo aceitável com uma redução do tamanho do arquivo.
Para testar a aparência do seu vídeo, você pode pressionar Q a qualquer momento durante a conversão. Ele deixará um arquivo truncado que ainda deve ser jogável. Você também pode fornecer a opção -t <seconds>
, em que <seconds>
especifica por quanto tempo você deseja codificar (por exemplo, apenas os primeiros 30 segundos).
Para mais configurações, consulte o Guia de codificação H.264 .
Processamento em lote
Se você tiver um lote de arquivos AVI que deseja converter, poderá fazer algo assim, que recursivamente transcodifica todos os arquivos, por exemplo, no Bash:
while IFS= read -d '' -r file; do
ffmpeg -i "$file" -c:v libx264 -crf 23 -c:a aac -strict experimental -b:a 192k ${file%%.avi}-converted.mp4
done < <(find . -iname "*.avi" -print0)
Você pode alterar o sufixo .avi
neste comando e permitir que ele seja executado novamente para outros arquivos.
Observe que a codificação de vídeo é uma tarefa demorada e demora um pouco para encontrar as configurações perfeitas para seus arquivos de origem.