Команда сохранения Applescript для QuickTime Player

Команда сохранения Applescript для QuickTime Player

Я установилПерианский аддондля Quicktime, чтобы он мог открывать файлы .flv, а затем сохранять их как .m4v или .mov. Я пытаюсь сделать Applescript для автоматического преобразования из .flv в .m4v с помощьюэтот уроки разделывание ихпример файла applescript, который обычно преобразует файлы ChemDraw (.cdx, .cml, .mol) в .tiff, так что вместо этого он использует Quicktime для сохранения файлов .flv как .m4v. Однако когда я пытаюсь использовать его, я получаю сообщение об ошибке "QuickTime Player получил ошибку: документ 1 не понимает сообщение о сохранении". Мое сообщение о сохранении в настоящее время выглядит так:

сохранить первый документ в target_path как ".m4v"

что выглядит как инструкция словаря QuickTime:

сохранятьспецификатор: Документ(ы) или окно(а), которые необходимо сохранить.

[как[формат сохраняемого файла]: формат файла, который будет использоваться.

Я также пробовал "m4v" без точки и все равно получаю ошибку.
Неправильное направление сохранения или, возможно, ошибка из-за попытки использовать Quicktime вместо оригинального ChemDraw? Я пробовал менять ссылки на .cdx, .cml, .mol, .tiff и ChemDraw на .flv, .m4v и QuickTime соответственно, но, может быть, все сложнее?

решение1

Этот ответ чертовски длинный, потому что ваши комментарии, похоже, указывают на то, что ваш главный интерес — это сам AppleScript, а не конвертация видео из FLV в MP4. Если это так, я настоятельно рекомендую начать с хорошегоСсылка на AppleScript, внимательно читайте и учитесь использовать доступные вам инструменты (особенно редактор скриптов и словари приложений). Попытка изучить новый язык путем изменения существующих приложений не подходит для отладки и может закончиться очень плохими вещами, такими какпрограммирование культа груза. Тем не менее,


Я бы начал с открытия словаря QuickTime Player (Файл->Открыть словарь...в редакторе скриптов), чтобы увидеть, какие команды доступны. В моей версии QuickTime Player (7.6.4) exportв QuickTime Player Suite есть команда:

экспорт v : Экспортировать фильм или трек в файл

   экспортссылка: фильм или трек для экспорта
   кфайл: файл назначения
   какAIFF/Apple TV/AVI/BMP/DV поток/Быстрый старт QTVR Movie/FLC/подсказка
      фильм/последовательность изображений/межкадровое сжатие VR-объекта фильм/iPhone/
      iPhone сотовая связь/iTunes/MuLaw/MPEG2/MPEG4/изображение/QuickTime медиа
      ссылка/Фильм QuickTime/QuickTime TeXML/стандартный MIDI/Звук System 7/
      текстовый файл/ThreeGPP/wave: желаемый тип файла
   [с использованиемнастройки по умолчанию/последние настройки] : настройки экспорта
      использовать
   [использование предустановленных настроекstring] : имя настроек экспорта
      предустановлено для использования
   [используя настройкиfile] : файл, содержащий настройки экспорта
   [заменаboolean] : следует ли сначала удалить исходный файл?

Немного погуглив, можно предположить, что тип файла "iPhone" относится к файлу .m4v, поэтому первым шагом может быть замена save first document in target_path as ".m4v"на export first document to target_path as iPhone. Однако, если немного покопаться в словаре, то можно увидеть, что есть еще can exportкоманда:

может экспортировать v : Определить, можно ли экспортировать фильм или трек в желаемое место
   тип

   может экспортироватьссылка: фильм или трек для экспорта
      какAIFF/Apple TV/AVI/BMP/DV поток/Быстрый старт QTVR Movie/FLC/подсказка
         фильм/последовательность изображений/межкадровое сжатие VR-объекта фильм/iPhone/
         iPhone сотовая связь/iTunes/MuLaw/MPEG2/MPEG4/изображение/QuickTime медиа
         ссылка/Фильм QuickTime/QuickTime TeXML/стандартный MIDI/Звук System 7/
         текстовый файл/ThreeGPP/wave: желаемый тип файла
      → boolean : поддерживается ли экспорт

Поэтому нам следует проверить, возможно ли экспортировать фильм в формат iPhone/.m4v, прежде чем делать это:

if (can export first document as iPhone) then
   export first document to target_path as iPhone
else
   error "Cannot export " & (source_file as string) & " in .m4v (iPhone) format."
end if

Однако, если мы остановимся здесь, мы можем заметить, что некоторые выходные файлы не воспроизводятся правильно после определенного момента, поскольку QuickTime может загружать файлы асинхронно (т. е. не все сразу). Мы должныпопробуйте проверить, что QuickTime Player завершил загрузку фильмапрежде чем мы укажем ему экспортировать; изучив полный список состояний загрузки, перечисленных в словаре, и предположив, что каждый фильм в конечном итоге оказывается в завершенном состоянии или в состоянии ошибки, мы можем относительно легко добавить это.

set error_states to {load state unknown, load error}
set successful_states to {loaded, complete}
repeat until load state of first document is in (error_states & successful_states)
   delay 0.1
end repeat

if (load state of first document is in successful_states) then
   if (can export first document as iPhone) then
      export first document to target_path as iPhone
   else
      error "Cannot export " & (source_file as string) & " in .m4v (iPhone) format."
   end if
else
   error "File is not in a successful load state: " & (load state of first document as string)
end if

решение2

Вы всегда можете прибегнуть к скриптингу пользовательского интерфейса. Взяв за основу ответ @Benny, вот что работает (относительно):

set infile to choose file with prompt "select file:"
set outfile to "filename"

try
    tell application "QuickTime Player"
        activate
        close every window
        open infile
        delay 2 # wait for the document to open
        tell application "System Events"
            keystroke "s" using {command down, shift down} # press Cmd-Shift-S
            delay 1 # wait for the sheet
            keystroke outfile # the filename
            key code 36 # press enter
        end tell
        close document 1 saving no
    end tell
end try

Если вы просто хотите сохранить что-то TextEditв соответствии с вашим комментарием, вы можете использовать следующее в качестве основы:

set infile to choose file with prompt "select file:"
set outfile to choose file name with prompt "Save altered file here:"

tell application "TextEdit"
    activate
    open infile
    tell application "System Events" # just some keystrokes for edits
        keystroke "AppleScript was here!"
        key code 36 # press enter
    end tell
    tell document 1 to save in outfile
    close every document saving no
end tell

Если вы хотите сохранить документ как определенный тип файла, похоже, есть проблема с параметром as: Я не смог сохранить его в одном из выбираемых форматов. Вы можете обойти эту проблему, указав желаемое расширение файла, например, filename.htmlили filename.odtдляВеб-страницаиOpenDocumentформаты соответственно.

решение3

Описанный здесь скрипт Applescript может оказаться полезным:QuickTime Export Droplet.

Хотя это и не ответ на ваш вопрос, вот два коммерческих продукта, которые, по всей видимости, являются решением (доступны пробные версии):

Wondershare iPad Видео Конвертер для Mac(25$)
Видеоконвертер для Mac(39$)

решение4

Я не знаю, сработает ли это, но попробуйте.

set infile to choose file with prompt "select file:"
set outfile to choose file name with prompt "Save altered file here:"

try
tell application "QuickTime Player"
activate
close every window
open infile
set dimensions of document 1 to {720, 400}
tell document 1
save self contained file outfile
end tell
-- save document 1 given «class dfil»:file outfile, «class savk»:self contained
close document 1 saving no
end tell
end try

Посмотрим, сработает ли это.

Если это не помогло, посетите эту страницу.http://discussions.apple.com/thread.jspa?threadID=1055811

Связанный контент