¿La forma más rápida de convertir videos (por lotes o por separado)?

19

Sé que hay muchas preguntas sobre los codificadores de video por aquí, pero mi pregunta es más sobre flujo de trabajo / eficiencia.

Para mi trabajo diario, necesito convertir videos, con frecuencia, de muchos formatos aleatorios (generalmente grandes AVI , < a href="https://en.wikipedia.org/wiki/M4V"> M4V , y qué no) y convertirlos y comprimirlos en archivos eficientes que podemos usar en Internet para subirlos. Los formatos que debo producir son:

Necesito crear plantillas comunes para un par de casos de uso (convertir a same-as-source, 1080p , o 720p ) y podrá procesarlos rápidamente y en cola.

¿Alguna idea sobre cómo llevar a cabo mejor este proceso en Ubuntu?

    
pregunta Garrett 02.10.2013 - 22:19

2 respuestas

45

Si prefiere la línea de comandos, puede usar ffmpeg (o handbrake-cli ).

MP4

Suponiendo que está utilizando una versión reciente 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 : Calidad. El rango es de 0 logarítmico (sin pérdidas) a 51 (peor calidad). El valor predeterminado es 23. El rango de la razón subjetiva es ~ 18-28 o más. Use el valor más alto que aún le da una calidad aceptable. Si está recodificando entradas que son imprácticamente grandes para subir a YouTube o similares, intente con un valor de 17 o 18 ya que estos servicios de video volverán a codificar de todos modos.

  • -preset : Velocidad de codificación. Un preajuste más lento proporciona una mejor compresión (calidad por tamaño de archivo) pero es más lento. Utilice la velocidad más lenta para la que tenga paciencia: ultrarrápida, súper rápida, muy rápida, más rápida, más rápida, media (la predeterminada), lenta, más lenta, muy lenta.

  • -movflags +faststart : permite que el video se reproduzca antes de que se descargue por completo en el caso de una descarga progresiva. Es útil si aloja el video, de lo contrario sería superfluo si lo carga en un servicio de video como YouTube.

  • -vf scale=-2:720,format=yuv420p : A filtergraph usando scale y formato filtros de video. Escala hasta 720 píxeles de alto y elige automáticamente el ancho que conservará el aspecto, y luego asegúrate de que el formato de píxel sea compatible con los jugadores tontos.

  • -b:a 128k : Tasa de bits de audio. Si su ffmpeg está desactualizado, deberá agregar -strict experimental para usar -c:a aac .

MOV

Dado que sus archivos MOV y MP4 probablemente contengan los mismos formatos de video y audio, puede codificar el MP4 y hacer el MOV volviendo a muxar (con copia en tiempo real modo) en lugar de volver a codificar:

ffmpeg -i input.mp4 -codec copy output.mov

WMV

FFmpeg solo es compatible con WMV 7 y 8. No conozco un codificador de código abierto para la versión 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 no estoy familiarizado con estos codificadores, solo puedo dar un ejemplo no probado:

ffmpeg -i input -c:v wmv2 -b:v 1024k -c:a wmav2 -b:a 192k output.wmv

Obteniendo ffmpeg

Puede descargar una versión Linux de ffmpeg o seguir paso a paso ffmpeg para personalizar su compilación.

Usar un bash "for loop" para realizar una codificación por lotes

Para codificar todos los videos en un directorio:

$ 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

Ver también

respondido por el LordNeckbeard 03.10.2013 - 18:04
4

Pruebe HandBrake .

HandBrake es una herramienta para convertir video de casi cualquier formato a una selección de códecs modernos y ampliamente compatibles. Para instalar, simplemente presione Ctrl + Alt + T en su teclado para abrir Terminal. Cuando se abra, ejecute los comandos a continuación:

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

Lea otras preguntas en las etiquetas