将 Mac 资源分支合并到 Quicktime 文件中
Merge Mac resource fork into Quicktime file
我有几千个 Quicktime .mov 文件,它们的“moov”原子位于资源分支中,而不是文件本身。
这使得这些 Quicktime 文件只能在 Mac 上播放,并且只能使用 Quicktime 播放器播放。
我可以使用QT7打开每个文件并将其保存为“独立电影”。这似乎将资源分支合并回新文件,然后可以在其他工具和其他系统上正常使用。
但是由于我有数千个文件要转换,我需要使用一些脚本或特定工具以编程方式进行转换。
Developer tools 中的 RezWack
实用程序看起来可以做到这一点,所以我尝试了
RezWack -d myfile.mov -r myfile.mov/..namedfork/rsrc -o newfile.mov
这似乎确实将其合并到新文件中。在执行 hexdump 时,我可以在文件末尾看到“moov”原子。但是,生成的 QT 文件对 Quicktime 无效。我尝试过的其他工具(ffmpeg、mediainfo 和 VLC)仍然像以前一样抱怨,没有看到“moov”原子。
我发现合并这些 Quicktime 电影的资源分支和数据分支的最佳方法确实是使用 Quicktime 7,但通过 AppleScript 来完成,以便它可以自动化。
最后,我围绕它做了一个完整的Bash脚本,我将其命名为qt-unfork
:https://github.com/mivk/qt-unfork/
它的本质是这个 AppleScript 位,在这里从 Bash 使用 osascript
调用:
# 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 位应用程序。
我有几千个 Quicktime .mov 文件,它们的“moov”原子位于资源分支中,而不是文件本身。
这使得这些 Quicktime 文件只能在 Mac 上播放,并且只能使用 Quicktime 播放器播放。
我可以使用QT7打开每个文件并将其保存为“独立电影”。这似乎将资源分支合并回新文件,然后可以在其他工具和其他系统上正常使用。
但是由于我有数千个文件要转换,我需要使用一些脚本或特定工具以编程方式进行转换。
Developer tools 中的 RezWack
实用程序看起来可以做到这一点,所以我尝试了
RezWack -d myfile.mov -r myfile.mov/..namedfork/rsrc -o newfile.mov
这似乎确实将其合并到新文件中。在执行 hexdump 时,我可以在文件末尾看到“moov”原子。但是,生成的 QT 文件对 Quicktime 无效。我尝试过的其他工具(ffmpeg、mediainfo 和 VLC)仍然像以前一样抱怨,没有看到“moov”原子。
我发现合并这些 Quicktime 电影的资源分支和数据分支的最佳方法确实是使用 Quicktime 7,但通过 AppleScript 来完成,以便它可以自动化。
最后,我围绕它做了一个完整的Bash脚本,我将其命名为qt-unfork
:https://github.com/mivk/qt-unfork/
它的本质是这个 AppleScript 位,在这里从 Bash 使用 osascript
调用:
# 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 位应用程序。