QuickTime Player 的 Applescript 保存命令

QuickTime Player 的 Applescript 保存命令

我已经安装了Perian 插件以便 Quicktime 可以打开 .flv 文件,然后我可以将它们另存为 .m4v 或 .mov。我正在尝试使用以下方法制作一个 Applescript,以自动将 .flv 转换为 .m4v本教程并屠杀他们的示例 applescript 文件,它通常会将 ChemDraw 文件(.cdx、.cml、.mol)转换为 .tiff,因此它使用 Quicktime 将 .flv 文件保存为 .m4v。但是,当我尝试使用它时,我收到错误“QuickTime Player 出现错误:文档 1 无法理解保存消息”。我的保存消息目前是:

将 target_path 中的第一个文档保存为“.m4v”

它看起来像 QuickTime 词典的说明:

节省specifier:要保存的文档或窗口。

[作为可保存文件格式]:要使用的文件格式。

我还尝试了“m4v”,不带句点,但仍然出现错误。
我的保存方向是否错误,或者可能是由于尝试使用 Quicktime 而不是原始 ChemDraw 而导致的错误?我尝试将对 .cdx、.cml、.mol、.tiff 和 ChemDraw 的引用分别更改为 .flv、.m4v 和 QuickTime,但可能比这更复杂?

答案1

这个答案太长了,因为你的评论似乎表明你的主要兴趣是 AppleScript 本身,而不是将视频从 FLV 转换为 MP4。如果是这样,我强烈建议你先从AppleScript 参考,仔细阅读并学习使用可用的工具(尤其是脚本编辑器和应用程序词典)。尝试通过修改现有应用程序来学习新语言不利于调试,并且可能会导致非常糟糕的结果,例如货物崇拜编程. 话虽如此,


我首先打开 QuickTime Player 的字典(文件->打开词典...在脚本编辑器中)查看可用的命令。在我的 QuickTime Player 版本(7.6.4)中,exportQuickTime Player Suite 中有一个命令:

出口 v :将影片或曲目导出到文件

   出口参考:要导出的电影或曲目
   file :目标文件
   作为AIFF/Apple TV/AVI/BMP/DV 流/快速启动 QTVR 电影/FLC/提示
      电影/图像序列/帧间压缩 VR 对象电影/iPhone/
      iPhone 手机/iTunes/MuLaw/MPEG2/MPEG4/图片/QuickTime 媒体
      链接/QuickTime 电影/QuickTime TeXML/标准 MIDI/System 7 声音/
      text file/ThreeGPP/wave :所需的文件类型
   [使用默认设置/最新设置] :导出设置
      使用
   [使用设置预设字符串]:导出设置的名称
      预设使用
   [使用设置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 电影/FLC/提示
         电影/图像序列/帧间压缩 VR 对象电影/iPhone/
         iPhone 手机/iTunes/MuLaw/MPEG2/MPEG4/图片/QuickTime 媒体
         链接/QuickTime 电影/QuickTime TeXML/标准 MIDI/System 7 声音/
         text file/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

您始终可以求助于 UI 脚本。以 @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.htmlfilename.odt网页开放文档格式。

答案3

这里描述的 Applescript 脚本可能会有用:QuickTime 导出 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

相关内容