Как заставить AppleScript открыть фильм с верной версией QuickTime Player? - PullRequest
0 голосов
/ 17 октября 2011

Я пытаюсь использовать следующий скрипт с QuickTime Player 7 v7.6.6 для пакетного преобразования файлов AVI-контейнера в файлы MOV-контейнера:

tell application "Finder"

    try
        set myFolder to (the folder of the front window) as alias
    on error
        beep
    end try

    -- get list of .avi files
    set aviFiles to files of myFolder whose name contains ".avi"
end tell

tell application "QuickTime Player 7" to activate

repeat with aviFile in aviFiles
    set aviName to name of aviFile as text
    set dispName to (text 1 thru ((length of aviName) - 4)) of aviName
    set movName to dispName & ".mov"
    set movPath to (POSIX path of myFolder & movName)

    tell application "QuickTime Player 7"
        open aviFile
        save front document in movPath
        close front document
    end tell

end repeat

Когда я выбираю папку в Finder и запускаю этот скрипт, я получаю следующую ошибку:

QuickTime Player 7 got an error: Can’t get document 1. Invalid index.

И QuickTime Player X, и QuickTime Player 7 активируются (открываются) при запуске сценария.

Похоже, файл фильма aviFile действительно открывается в QuickTime Player X, а не в QuickTime Player 7, что объясняет, почему в сообщении об ошибке указано, что QTP7 не может получить документ 1.

Есть ли способ исправить этот сценарий, чтобы он открывал фильм AVI в QuickTime Player 7, а не QuickTime Player X? Есть ли способ управления QuickTime Player 7 из командной строки?

Обратите внимание, что я не хочу использовать транскодер, такой как ffmpegX (или аналогичный), который снижает качество AVI (а также увеличивает размер файла). Я просто хочу автоматизировать восстановление AVI с помощью нового контейнера MOV, чтобы iTunes мог воспроизводить его с уже установленными кодеками. Спасибо за ваш совет.

1 Ответ

0 голосов
/ 17 октября 2011

Не для того, чтобы «ответить на неправильный вопрос» здесь, но ffmpeg может конвертировать контейнеры без транскодирования (и, следовательно, без значительного изменения размера файла или снижения качества):

ffmpeg -vcodec copy -acodec copy -i inputFile.avi outputFile.mov
...