0 votos

Cómo combinar por lotes archivos mkv y srt a mp4 con ffmpeg

Estoy tratando de conseguir un applescript para combinar .mkv's con .srt's después de añadir esos archivos a una carpeta.

He conseguido hacer la conversión automática de mkv a mp4 y añadirlos a itunes. Lo único que no puedo lograr es obtener el srt automáticamente.

También puedo hacerlo en la ventana del Terminal, un "mkv" a la vez. El comando que me funciona bien para hacer esto, es:

ffmpeg -i movie.1.mkv -sub_charenc WINDOWS-1252 -i movie.1.srt -vcodec copy -acodec copy -scodec mov_text -metadata:s:s:0 language=por movie.1.mp4

Tengo el archivo mkv con el mismo nombre que el archivo srt.

El apple script que estoy usando para hacer la conversión por lotes es:

on adding folder items to this_folder after receiving added_items
tell application "Finder"
    set fold_name to the name of this_folder
    try

        repeat with i from 1 to number of items in added_items
            set new_item to item i of added_items
            set the item_path to the quoted form of the POSIX path of new_item

            if name extension of new_item is "mkv" then
                do shell script " /usr/local/bin/ffmpeg -i " & item_path & " -vcodec copy -acodec libfaac " & item_path & ".mp4"

            else if name extension of new_item is "mp4" then
                tell application "iDentify"
                    activate
                    open new_item
                end tell

            end if
        end repeat
    end try
end tell end adding folder items to

Soy un novato en el applescript, y la cosa por la que no consigo que funcione es, que el script devuelve al final un archivo llamado película.1.mkv.mp4 creado a partir del película.1.mkv . Eso significa que no puedo obtener en la variable "item_path" sólo el nombre del archivo sin la extensión. Quizás sea muy fácil, pero no lo he conseguido.

¿Alguien puede ayudar? Gracias

0voto

SPRBRN Puntos 1008

Utilizar y adaptar el código de

https://stackoverflow.com/questions/12907517/extracting-file-extensions-from-applescript-paths

Añade a la parte superior de tu código:

-- overcome finder limitation...
set text item delimiters to "."

para luego extraer las partes de nombre y extensión...

if new_item contains "." then set item_ext to (text item 2 of new_item) as text
if new_item contains "." then set item_name to (text items 1 thru -2 of new_item) as text

Con eso debería bastar... :)

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X