ffmpegを使用してvifmで選択したすべてのオーディオファイルを変換するコマンドを作成しようとしています。これが私が今まで試したことです:
command opus ffmpeg -i %f -q 7 %f:s|flac|opus|
しかし、ここには2つの問題があります。
まず、ファイルを1つだけ選択した場合にのみ機能します。たとえば、2つを選択すると、ffmpegはFile 'foo.flac' already exists. Overwrite ? [y/N]
2番目のファイルがどこにあるかを尋ねる質問で停止します。foo.flac
次に、元のファイルの拡張子が.の場合にのみ機能しますflac
。 (例では、vifmの置換マクロを使用してファイル名flac
をに変更しました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