我正在编写一个自动化某些视频编码的zsh脚本。要转换的文件将是脚本的第一个参数,其中包含以下行:
ffmpeg -i $1 -ac 0 -vcodec libx264 -b:v 500k -crf 20 ${1:r}.mp4
我希望${1:r}.mp4
创建一个与我的.mov输入同名的文件,但.mp4文件扩展名替换.mov。但相反,我得到input.mov.mp4。为什么不是:r修饰符剥离文件扩展名?
答案 0 :(得分:4)
我经历了类似的事情,似乎zsh不接受:r关于位置参数。相反,你可以做这样的事情:
file=${1}
ffmpeg -i $1 -ac 0 -vcodec libx264 -b:v 500k -crf 20 ${file:r}.mp4