Você tem vários métodos para reduzir o tamanho do arquivo de saída:
Codifique o áudio
Como você mencionou, você pode codificar o áudio em vez de copiar o formato PCM robusto, sem perdas e sem compressão.
Usando o libfdk_aac
Seu ffmpeg
suporta o codificador AAC libfdk_aac, que é o melhor codificador AAC suportado por ffmpeg
agora. Para usá-lo, substitua -c:a copy
por -c:a libfdk_aac -vbr 5
.
Usando o codificador FFmpeg AAC nativo
Como alternativa, você pode usar o codificador FFmpeg AAC nativo. Para usá-lo, substitua -c:a copy
por -c:a aac -b:a 128k
. Não é tão bom quanto libfdk_aac, mas dá mais bits e será aceitável.
Agora você pode usar o formato de contêiner de saída MP4 se preferir em Matroska (MKV).
Para mais informações sobre esses dois codificadores, veja Wiki do FFmpeg: AAC .
Use um valor -crf
mais alto
Ao usar libx264 para codificar vídeo H.264, a opção -crf
é um método de controle de taxa para controlar a qualidade. Um valor de ~ 18 ou mais resultará mais ou menos em uma saída visualmente sem perdas, mas dependendo do conteúdo, também pode resultar em um arquivo um pouco grande. Aumentar o valor +6 normalmente diminuirá o tamanho do arquivo de saída em 50%. A recomendação geral é usar o maior valor -crf
que ainda forneça uma qualidade aceitável.
Se você está direcionando um tamanho de arquivo de saída específico, como devido a restrições de mídia de armazenamento, você deve codificar usando o modo de duas passagens . No entanto, a menos que um tamanho de arquivo de destino específico seja de extrema importância, é mais fácil e rápido usar apenas -crf
(não usei duas passagens em anos).
Para mais informações, consulte Wiki do FFmpeg: H.264 .
Use um codificador diferente
Se usado corretamente codificando para H.265 / HEVC com libx26 5 pode resultar em um tamanho de arquivo menor com a mesma qualidade percebida. A desvantagem é a lentidão da codificação, e o suporte ao player / dispositivo ainda não é tão prevalente quanto o H.264.
Eu não usei muito esse codificador, então não sei o que -crf
valores sugerem, mas vale a pena tentar. Talvez você tenha que usar -preset veryslow
para realmente superar x264 se já estiver usando uma das predefinições mais lentas em x264.
Veja Wiki do FFmpeg: H.265 .
Escalonamento
Se você quiser reduzir a escala, pode ser mais rápido dimensionar primeiro em ambos os comandos, em vez de redimensionar por último no segundo comando. Você terá que experimentar porque eu não estou familiarizado com o vidstab * ou se é um gargalo ou não.
-vf scale=-2:720,vidstab*...