将Mac资源叉合并到Quicktime文件中



我有几千个Quicktime.mov文件,它们的"moov";原子在其资源叉中,而不是在文件本身中。

这使得这些Quicktime文件只能在Mac上播放,并且只能在Quicktime播放器上播放。

我可以使用QT7打开每个文件并保存它";作为一部独立的电影";。这似乎将资源分支合并回新文件中,然后可以在其他工具和其他系统上正常使用该文件。

但由于我有数千个文件要转换,我需要用一些脚本或特定工具以编程方式进行转换。

Developer工具中的RezWack实用程序看起来就是这样,所以我尝试了

RezWack -d myfile.mov  -r myfile.mov/..namedfork/rsrc  -o newfile.mov

这似乎确实将它合并到了新文件中。我可以看到";moov";执行hexdump时,文件末尾的atom。但是,生成的QT文件对Quicktime无效。我尝试过的其他工具(ffmpeg、mediainfo和VLC(仍然像以前一样抱怨,没有看到";moov";原子

我发现,为这些Quicktime电影合并回资源分支和数据分支的最好方法是确实使用Quicktime 7,但要通过AppleScript来实现,这样它就可以自动化。

最后,我围绕它制作了一个完整的Bash脚本,我将其命名为qt-unfork:https://github.com/mivk/qt-unfork/

它的本质是这个AppleScript位,在这里使用osascript:从Bash调用

# variables $in and $out were defined earlier
osascript - <<END
tell application "QuickTime Player 7"
open POSIX file "$in"
tell front document
save self contained in ("$out" as POSIX file)
close
end tell
end tell
END

这将实际打开QT7,您可以看到它正在处理文件。

请注意,由于这需要Quicktime 7,这是一个32位的应用程序,它当然不能在Mojave(10.14(之后的MacOS版本上运行。以后的版本只支持64位的应用。

相关内容

  • 没有找到相关文章

最新更新