ffmpegを使用して選択したオーディオファイルをvifmに変換する

ffmpegを使用して選択したオーディオファイルをvifmに変換する

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

関連情報