не может получить быстрое время для экспорта MOV в PNG с Apple, скрипт - PullRequest
0 голосов
/ 04 ноября 2010

Мне было интересно, если кто-нибудь может сказать мне, как заставить этот скрипт работать.Я пытался часами, и я не могу понять, почему это не удается.

Этот скрипт говорит Quicktime, чтобы перейти в QuickTime фильм / презентация (сгенерированный с помощью ключевой заметки) и экспортировать изображение для каждого последнего кадра каждой главы вэтот фильм.

property Main_folder : missing value
set Main_folder to choose folder

tell application "QuickTime Player 7"
    if not (exists document 1) then error "No movies are open."
    stop movies
    tell front document to set {currMovie, T_name, duration_list, current time} to ¬
        {it, text 1 thru -5 of (get name), duration of chapters of (get first track whose kind is "Sprite"), 0}
    set T_target to my makeFolder(T_name)

    repeat with i from 1 to (count duration_list)
        tell currMovie
            set current time to current time + (item i of duration_list)
            export to (T_target & T_name & " Chapter " & i) as picture using settings preset "Photo-JPEG" -- or "Uncommpressed", or "PNG"
        end tell
    end repeat
end tell

on makeFolder(n)
    tell application "Finder" to return (make new folder at Main_folder with properties 

Моя проблема здесь в том, что он сохраняет изображения в формате PICT вместо PNG.Соответствующая часть сценария находится здесь:

export to (T_target & T_name & " Chapter " & i) as picture using settings preset "Photo-JPEG" -- or "Uncommpressed", or "PNG"

Я пробовал его только с PNG и Photo-JPEG, но он по-прежнему генерирует изображения только в формате PICT

Кто-нибудь знает, каксделай это?Я не могу найти никаких ошибок в сценарии ... он должен работать.

Любой совет приветствуется!Спасибо заранее.

С наилучшими пожеланиями,

zhengtonic

обновление

Если кому-то интересно, я нашел причину:

Quicktime 7 не может захватить неподвижное изображение из mov и экспортировать его как png / jpeg.Я нашел обходной путь, конвертировав видео в mp4 и извлекая определенные кадры.

1 Ответ

3 голосов
/ 04 ноября 2010

Есть более простой способ, чем перекодировать фильм в mp4.В быстром времени вы можете экспортировать последовательность изображений из фильма.Изображения последовательности изображений могут быть изображениями PNG.Таким образом, вы можете это сделать.Вот основная схема того, что вам нужно сделать.Это может показаться сложным, но это действительно довольно просто.

Сначала создайте файл настроек для экспорта в виде последовательности изображений.Вы можете сделать это, запустив экспорт и установив для него настройки.Затем запустите этот яблочный скрипт, чтобы сохранить настройки в файле ...

set exportFileName to "ImageSequenceExportSettings.qtSettings"
set exportFilePath to (path to desktop as text) & exportFileName

tell application "QuickTime Player 7"
    tell first document
        save export settings for image sequence to file exportFilePath
    end tell
end tell

Во-вторых, ваш яблочный скрипт занимает время, когда вы хотите изображение, затем вы в основном обрезаете фильм так, чтобы он содержал только кадр длятогда вы используете файл настроек, чтобы экспортировать этот фрейм как изображение, что-то вроде этого ... ПРИМЕЧАНИЕ: я не тестировал следующий скрипт

set timeOfImage to 60 -- in seconds
set settingsFile to (path to desktop as text) & "ImageSequenceExportSettings.qtSettings"

tell application "QuickTime Player 7"
    tell document 1
        if (can export as image sequence) then
            -- trim the movie to one frame
            set ts to time scale
            set theFrame to timeOfImage * ts
            select at theFrame to (theFrame + 1)
            trim

            -- save the image
            set theName to text 1 thru -5 of (get name)
            set outPath to (path to desktop as text) & theName & ".png"
            export to outPath as image sequence using settings settingsFile

            -- close the movie
            close saving no
        else
            error "The front movie cannot be exported to an image sequence!"
        end if
    end tell
end tell
...