如何 qt-faststart 多个文件?

如何 qt-faststart 多个文件?

我的几张专辑的元数据都在文件末尾。这没什么问题,除非你真的想将其中一张专辑流式传输到网络媒体播放器。播放器要么会输出数据,要么会报错。

幸好有一个小工具可以从末尾吸取数据并将其注入到前面。它的语法不太好。这是它接受的唯一格式:

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,修复专辑。

相关内容