使用 ffmpeg 在 vi​​fm 中转换选定的音频文件

使用 ffmpeg 在 vi​​fm 中转换选定的音频文件

我正在尝试创建一个命令,用于使用 ffmpeg 转换 vifm 中选择的所有音频文件。到目前为止,这是我尝试过的:

command opus ffmpeg -i %f -q 7 %f:s|flac|opus|

然而,这有两个问题。

首先,它仅在仅选择一个文件时才有效。例如,如果选择了两个,ffmpeg 将停止并出现问题,第二个文件在File 'foo.flac' already exists. Overwrite ? [y/N]哪里。foo.flac

其次,它仅在原始文件的扩展名是flac. (我在示例中使用 vifm 的替换宏替换文件名中的flacwith opus。)我也不知道如何包含其他扩展名。

答案1

经过几个小时的反复试验,我终于弄清楚了。

在单独的文件中编写 bash 脚本,例如ffmpeg-opus.sh

#!/bin/bash

for file; do
    ffmpeg -i "$file" -ab 128k "${file%.*}".opus
done

并为其创建一个命令vifmrc

command opus ffmpeg-opus.sh %f

相关内容