Utilice Automator para realizar un comando FFmpeg (dos .SRT en un .MP4)

Utilice Automator para realizar un comando FFmpeg (dos .SRT en un .MP4)

Tengo el siguiente script que estoy acostumbrado a ejecutar desde Terminal y funciona perfectamente. Solo necesito tener un solo .mp4archivo y dos .srtarchivos en mi directorio de usuario y automáticamente ingresará ambos subtítulos en un nuevo .mp4archivo, al mismo tiempo que cambiará el códec a HVC1.

Pero me gustaría simplemente seleccionar 3 archivos (dos .srty uno .mp4) del Finder, obtener sus nombres de archivo, ruta y extensión, y ejecutarlo como un servicio. ¿Cómo podría hacer eso? He mirado muchísimas opciones en internet pero no sé cómo hacerlo. Por favor, ¿alguien podría ayudarme?

ffmpeg -i movie-1.mp4 -i movie-2.srt -i movie-3.srt \
-map 0:v -map 0:a -map 1 -map 2 \
-c:v copy  -tag:v hvc1 -c:a copy -c:s mov_text \
-metadata:s:s:0 language=por -metadata:s:s:1 language=eng \
/Users/allanmentzingen/Desktop/output.mp4

Respuesta1

Coloque su comando en una acción "Ejecutar script de Shell", seleccione "Pasar entrada: como argumentos", luego use esos argumentos variables en lugar de sus argumentos fijos:

captura de pantalla del flujo de trabajo

Los bits " $1", etc. son los argumentos del script, primero, segundo y tercero.

De los tipos de "documentos" de Automator, le recomiendo que utilice una Acción rápida, una Acción de carpeta o una Aplicación, en ese orden:

  1. Una acción rápida requeriría que seleccione los tres archivos, haga clic derecho en el grupo y luego elija su flujo de trabajo de Automator en el menú desplegable de Acciones rápidas.

  2. Una acción de carpeta le permitiría vincular el flujo de trabajo a una carpeta particular en la que colocaría estos archivos.

  3. Una Aplicación actuaría como una gota, unasubprogramaque se ejecuta con los archivos que arrastra y suelta: arrastre los tres archivos al ícono de la aplicación para ejecutarlo con esos archivos como entrada.

No veo que este flujo de trabajo sea sensible al orden de los argumentos del archivo. El orden en que seleccione los archivos en Finder afectará el orden de las -iopciones ffmpeg, pero no creo que ffmpegle importe en este caso. Lo único de lo que no estoy seguro es si " .mp4" en el nombre del archivo de salida es suficiente para indicar ffmpegque se escriba la salida en formato MP4, en lugar de obtenerla desde el primer -iargumento. Si es así, entonces solo necesitarás agregarlo -f mp4al principio del comando.

información relacionada