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

0

Estoy tratando de obtener un applecript para combinar .mkv's con .srt después de haber agregado esos archivos a una carpeta.

He logrado hacer la conversión automática de mkv a mp4 y agregarlos a iTunes. Lo único que no puedo lograr es obtener el srt automáticamente.

También puedo hacer esto en la ventana de la Terminal, un "mkv" a la vez. El comando que funciona bien para que yo haga 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 script de Apple 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 Applecript, y el motivo por el que no lo hago funcionar es que el script devuelve al final un archivo llamado movie.1.mkv.mp4 creado a partir del movie.1.mkv . Eso significa que no puedo obtener en la variable "item_path" solo el nombre de archivo sin la extensión. Tal vez sea muy fácil, pero no logré hacerlo.

¿Alguien puede ayudar por favor? Gracias

    
pregunta ShadowLord75 01.04.2014 - 00:09

1 respuesta

0

Uso y adaptación de código desde

enlace

Agrega a la parte superior de tu código:

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

luego extraiga 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

Eso debería hacerlo ... :)

    
respondido por el Vic 04.04.2014 - 20:02

Lea otras preguntas en las etiquetas