Ffmpeg
使用 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 的替換宏替換文件名中的flac
withopus
。)我也不知道如何包含其他副檔名。
經過數小時的反複試驗,我設法弄明白了。
在單獨的文件中編寫 bash 腳本,例如
ffmpeg-opus.sh
:#!/bin/bash for file; do ffmpeg -i "$file" -ab 128k "${file%.*}".opus done
並為它創建一個命令
vifmrc
:command opus ffmpeg-opus.sh %f