Codificación por lotes a X265 en la Mac

Necesito codificar miles de archivos MP4 H264 (en su mayoría) en una jerarquía de carpetas a H265. Desafortunadamente, Handbrake que normalmente usaría tiene un soporte pésimo para el procesamiento por lotes de jerarquías.

El proyecto separado HB Batch Encoder no parece ser compatible con X265.

Preferiblemente me gustaría un método que pueda

  • Aceptar todos los archivos de película de origen en una jerarquía seleccionada
  • Codifique a X265 tan bien como Handbrake
  • Pase automáticamente a través de AAC, vuelva a codificar cualquier otro audio
  • Salida al mismo directorio que la fuente
  • Mover la fuente a la Papelera
  • Funciona en OS X 10.11

¿Puede sugerir una herramienta y un método para esto que logre este conjunto de características?

Tenga en cuenta que comenzar con archivos codificados en H264 para codificarlos en H265 puede provocar una pérdida de calidad, ya que está encadenando dos codificadores con pérdida. ¿No tienes acceso a maestros codificados sin pérdidas?
No. Estas son solo copias de seguridad de referencia, por lo que no es crítica para la calidad. Más espacio crítico que calidad.

Respuestas (1)

FFMPEG por supuesto. Al ser una aplicación de línea de comandos, se puede integrar fácilmente en cualquier proceso por lotes sin importar cuán complicado sea, con el beneficio de que puede aprender sobre el poder de la línea de comandos mientras lo hace (funcionó para mí).

Todavía no he explorado mucho la codificación h.265, pero usando la configuración que robé de la wiki de ffmpeg , así es como codificarías una carpeta llena de .movs:

cd "/the/path to/your/folder/"
mkdir "for the trash"
for i in *.mov; do;
  ffmpeg -i "$i" -c:v libx265 -preset slow -crf 25 -c:a copy "${i/\.mov/.mp4}"
  mv $i "./for the trash/"
done

Tenga en cuenta que esto no eliminará los archivos, los moverá a una nueva carpeta llamada papelera . Esto se debe a que si elimina archivos con la línea de comando, desaparecerán instantáneamente, no tendrá una segunda oportunidad si cambia de opinión o comete un error tipográfico. Hay utilidades de línea de comando de basura , pero eso está más allá del alcance de esta respuesta.

aquí está la entrada de wiki en la que basé mi comando ffmpeg, hace un buen trabajo al explicar las opciones utilizadas (soy un poco cosita acerca de la compresión con pérdida, así que terminé un poco la configuración de calidad. También usé el preajuste lento que da un archivo más pequeño tamaños. Dependiendo de cuánto tiempo tenga, puede usar cualquier cosa desde ultrafasthasta placebopara lograr resultados que varían en tamaño de archivo pero con la misma calidad. placeboSe llama así porque la pequeña diferencia que hace a expensas de un tiempo de procesamiento mucho mayor es principalmente en tu cabeza):

En este ejemplo, utilizaremos la siguiente configuración:

  • CRF predeterminado de 28. El CRF de 28 debería corresponder visualmente al video libx264 en CRF 23, pero resulta en aproximadamente la mitad del tamaño del archivo.
  • preajuste medio. El preajuste determina qué tan rápido será el proceso de codificación, a expensas de la eficiencia de compresión. Dicho de otra manera, si elige ultrarrápido, el proceso de codificación se ejecutará rápidamente, pero el tamaño del archivo será mayor en comparación con el medio. La calidad visual será la misma. Los preajustes válidos son ultrarrápido, superrápido, muy rápido, más rápido, rápido, medio, lento, más lento, muy lento y placebo.
  • Audio AAC a 128 kBit/s. Esto usa el codificador interno ffmpeg, pero en AAC encontrará información sobre más opciones.

ffmpeg -i entrada -c:v libx265 -medio preestablecido -crf 28 -c:a aac -b:a 128k salida.mp4

Handbrake también funciona en la línea de comandos .

Y, por último, si eres alérgico al poder colosal que acecha en terminal.app, hay interfaces gráficas de usuario para ffmpeg, como esta o esta . No estoy seguro de qué tan bien manejan la codificación por lotes, y esta no es una recomendación, porque no uso ninguno de ellos. ¡Es hora de endurecerse y usar la línea de comando!

Gracias por la sugerencia. Probaré ffmpeg en la línea de comandos. Iré informando cómo funciona. Sin embargo, parece que se ha perdido mi queja sobre el procesamiento por lotes de Handbrake que no respeta las jerarquías, es decir, pierde archivos en una jerarquía de carpetas.
@MiB si está buscando una GUI para ffmpeg, pruebe con iffmpeg. Lo usé durante unos días hasta que conseguí un buen manejo de la herramienta de línea de comandos. Maneja la codificación por lotes, pero debe jugar para asegurarse de obtener la configuración correcta para todo en el lote. Si te consideras experto en tecnología, pero no te sientes cómodo con la línea de comandos, te lo recomiendo.