我正在尝试将一批.mov文件转换为mp4。如何从管道获取文件名以生成ffmpeg命令?如何在链节中多次使用管道参数?我正在尝试这样的事情:
ls *.MOV | ffmpeg -y -i $file "$file.mp4"
当您要将一个命令的标准输出用作另一命令的标准输入时,管道很有用。但是您需要将文件作为输入传递给ffmpeg
,而不是标准输入中的文件名。而且您需要运行ffmpeg
多次,每个输入文件一次才能获取一个输出文件。
长话短说,管道对此没有用,您需要一个循环作为其他答案的建议。但应将文件名参数双引号:
for file in *.MOV; do
ffmpeg -y -i "$file" "$file.mp4"
done
您在评论中提到可以编写Perl脚本。那真是太过分了。Bash是一种更简单,非常适合的方法。请注意,您可以在一行上编写以上脚本,然后直接在命令行上运行它。
for file in *.MOV; do ffmpeg -y -i "$file" "$file.mp4"; done
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句