使用 Automator 通过 OS X 中的 Shell Cat 命令处理多个文件输入以合并视频

使用 Automator 通过 OS X 中的 Shell Cat 命令处理多个文件输入以合并视频

我尝试对视频文件进行类似操作,但没有成功。尝试过:

for f in "$@"
do
    cat "$f" > ~/Desktop/Test.mov
done

当我这样做时,它只会将最后选择的文件放入文件中。

答案1

正如您链接的文章所指出的,该cat方法并不完全有效;请使用更好的工具。

至于直接问题,>重定向将输出发送到文件,替换任何先前的内容。因此,第二个文件替换第一个文件,然后第三个替换第二个,……最后最后一个替换倒数第二个。如果cat有一种可行的方法可以做到这一点,您可以 1) 先清空文件,然后使用重定向>>,2) 使用重定向>但将其放在后面done,以便重定向整个循环,或者 3) 只使用cat "$@" >~/Desktop/Test.mov并让其cat自己进行迭代。

链接问题建议使用自制安装适当的工具,然后使用类似的方法:

mencoder -oac copy -ovc copy -idx -o ~/Desktop/Test.mov "$@"

或者使用ffmpeg一些 shell IFShackery 来获取其首选格式的文件列表:

IFS="|"
ffmpeg -i concat:"$*" -codec copy output.mp4

顺便说一句,乱改IFS可能会导致非常奇怪的错误。在这种情况下,脚本足够简单,不会造成麻烦,但我不建议在较大的脚本中使用它,除非您使用安全措施来限制副作用。

相关内容