A maneira mais rápida de converter vídeos (lote ou single)?

19

Eu sei que há muitas perguntas sobre codificadores de vídeo por aqui, mas minha pergunta é mais sobre fluxo de trabalho / eficiência.

Para meu trabalho diário, eu preciso converter vídeos, frequentemente, de vários formatos aleatórios (geralmente grandes AVI , < um href="https://en.wikipedia.org/wiki/M4V"> M4V , e quais não) e convertê-los e comprimir-los em arquivos eficientes, podemos usar em torno da internet para upload. Formatos que devo produzir são:

Eu preciso criar modelos comuns para alguns casos de uso (converter para o mesmo, como 1080p , ou 720p ) e ser capaz de processá-los rapidamente e na fila.

Alguma idéia de como abordar melhor esse processo no Ubuntu?

    
por Garrett 03.10.2013 / 00:19

2 respostas

43

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 o ffmpeg 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

Veja também

por LordNeckbeard 03.10.2013 / 20:04
4

Experimente o HandBrake .

O HandBrake é uma ferramenta para converter vídeo de praticamente qualquer formato para uma seleção de codecs modernos e amplamente suportados. Para instalar, basta pressionar Ctrl + Alt + T no seu teclado para abrir o Terminal. Quando se abre, execute o (s) comando (s) abaixo:

sudo add-apt-repository ppa:stebbins/handbrake-releases
sudo apt-get update
sudo apt-get install handbrake
    
por Mitch 03.10.2013 / 11:33