我正在编写一个zsh脚本来自动执行一些视频编码。要转换的文件将是脚本的第一个参数,其中包含以下行:
ffmpeg -i $1 -ac 0 -vcodec libx264 -b:v 500k -crf 20 ${1:r}.mp4
Run Code Online (Sandbox Code Playgroud)
我希望${1:r}.mp4创建一个与.mov输入同名的文件,但使用.mp4文件扩展名替换.mov。但是我得到了input.mov.mp4。:r修饰符为什么不去除文件扩展名?
我经历过类似的事情,并且zsh似乎不接受位置参数上的:r。相反,您可以执行以下操作:
file=${1}
ffmpeg -i $1 -ac 0 -vcodec libx264 -b:v 500k -crf 20 ${file:r}.mp4
Run Code Online (Sandbox Code Playgroud)