Come combinare i file mkv e srt in mp4 con ffmpeg

0

Sto cercando di ottenere un applescript per combinare .mkv con .srt dopo averli aggiunti a una cartella.

Sono riuscito a eseguire la conversione automatica da mkv a mp4 e aggiungerli a itunes. L'unica cosa che non riesco a fare è ottenere automaticamente lo srt.

Anch'io posso farlo nella finestra del terminale, un "mkv" alla volta. Il comando che funziona correttamente per me, è:

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

Ho il file mkv con lo stesso nome del file srt.

Lo script Apple che sto usando per eseguire la conversione batch è:

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

Sono un novizio nel applescript, e il motivo per cui non riesco a farlo funzionare è che lo script restituisce alla fine un file chiamato movie.1.mkv.mp4 creato da movie.1.mkv . Ciò significa che non sono in grado di inserire nella variabile "item_path" solo il nome file senza estensione. Forse è molto facile, ma non sono riuscito a farlo.

Qualcuno può aiutarmi? Grazie

    
posta ShadowLord75 01.04.2014 - 00:09
fonte

1 risposta

0

Uso e adattamento del codice da

link

Aggiungi all'inizio del tuo codice:

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

quindi estrarre in seguito il nome e le porzioni di estensione ...

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

Questo dovrebbe farlo ...:)

    
risposta data 04.04.2014 - 20:02
fonte

Leggi altre domande sui tag