我的几张专辑的元数据都在文件末尾。这没什么问题,除非你真的想将其中一张专辑流式传输到网络媒体播放器。播放器要么会输出数据,要么会报错。
幸好有一个小工具可以从末尾吸取数据并将其注入到前面。它的语法不太好。这是它接受的唯一格式:
qt-faststart <infile.mov> <outfile.mov>
没有选项可以将目录传递给它。没有选项可以传递多个文件。没有选项可以就地修复。
假设我想处理目录中具有相同扩展名的每个文件,我该如何使这样的命令对我的文件起作用?
答案1
我调整了 Oli 的回复。如果出现错误(即如果 MOOV 不在文件末尾),上述脚本将导致文件被删除。此版本通过在末尾 mv tmp 文件来避免这种情况。如果 qt-faststart 失败,则没有 tmp 文件,因此 mv 也会失败,并重新保存原始文件。
find -iname '*.mp4' -exec sh -c 'echo "{}"; qt-faststart "{}" tmp; mv tmp "{}" ' \;
答案2
这里最大的问题是无法覆盖同一个文件。我们需要将文件移开,然后写入新文件,qt-faststart
然后清理:
find -iname '*m4a' -exec sh -c 'mv "{}" tmp; qt-faststart tmp "{}"; rm tmp' \;
Bish bash bosh,修复专辑。