Se você preferir a linha de comando, você pode usar ffmpeg
(ou handbrake-cli
).
MP4
Supondo que você esteja usando uma versão recente de ffmpeg
:
ffmpeg -i input -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k \
-movflags +faststart -vf scale=-2:720,format=yuv420p output.mp4
-
-crf
: qualidade. O intervalo é logarítmico 0 (sem perdas) a 51 (pior qualidade). O padrão é 23. O intervalo sane subjetivo é ~ 18-28 ou mais. Use o valor mais alto que ainda lhe dá uma qualidade aceitável. Se você estiver recodificando entradas insatisfatórias para fazer o upload para o YouTube ou algo semelhante, tente um valor de 17 ou 18, já que esses serviços de vídeo serão recodificados de qualquer maneira. -
-preset
: velocidade de codificação. Uma predefinição mais lenta fornece melhor compactação (qualidade por tamanho de arquivo), mas é mais lenta. Use o mais lento para o qual você tem paciência: ultra-rápido, super-rápido, muito rápido, rápido, médio (o padrão), lento, mais lento, mais baixo. -
-movflags +faststart
: permite que o vídeo seja reproduzido antes de ser completamente baixado no caso de visualização de download progressivo. Útil se você estiver hospedando o vídeo, caso contrário, é superfluente se você fizer o upload para um serviço de vídeo como o YouTube. -
-vf scale=-2:720,format=yuv420p
: Um filtro de gráficos usando scale e formatam . Escale até 720 pixels de altura e escolha automaticamente a largura que preservará o aspecto e, em seguida, verifique se o formato de pixel é compatível com os jogadores ignorantes. -
-b:a 128k
: taxa de bits de áudio. Se offmpeg
estiver desatualizado, será necessário adicionar-strict experimental
para usar-c:a aac
.
MOV
Como seus arquivos MOV e MP4 provavelmente contêm os mesmos formatos de vídeo e áudio, você pode codificar o MP4 e fazer o MOV re-muxando (com copiar cópia modo) em vez de recodificar:
ffmpeg -i input.mp4 -codec copy output.mov
WMV
O FFmpeg suporta apenas WMV 7 e 8. Eu não tenho conhecimento de um codificador de código aberto para a versão 9.
$ ffmpeg -encoders | grep -i windows
[...]
V..... = Video
A..... = Audio
------
V..... wmv1 Windows Media Video 7
V..... wmv2 Windows Media Video 8
A..... wmav1 Windows Media Audio 1
A..... wmav2 Windows Media Audio 2
Como não estou familiarizado com esses codificadores, só posso dar um exemplo não testado:
ffmpeg -i input -c:v wmv2 -b:v 1024k -c:a wmav2 -b:a 192k output.wmv
Obtendo o ffmpeg
Você pode fazer o download de uma compilação do Linux do ffmpeg ou seguir um passo a passo ffmpeg guia de compilação para personalizar sua compilação.
Usando um bash "para loop" para executar uma codificação em lote
Para codificar todos os vídeos em um diretório:
$ mkdir encoded
$ for f in *.avi; do ffmpeg -i "$f" -c:v libx264 -crf 23 -preset medium \
-c:a aac -b:a 128k -movflags +faststart -vf scale=-2:720,format=yuv420p \
"encoded/${f%.avi}.mp4"; done