我想将一组flac
文件转换为aac
使用文件的最佳分辨率aac
。
我找到了这个工具音频转换但我缺少手册页或帮助面。当我使用时该命令有效
audio-convert <filename>.flac
但它会启动一些图形选择向导。有没有办法只使用一个终端命令,以便我可以对一组文件进行批处理?
答案1
我相信这不是从命令行进行转换的最佳工具,它不是设计用于这种方式的。
该工具依赖于 zenity(显示图形部分)并逐一处理文件,这是该工具提供的 README 文件的摘录
要将其用作普通的 bash 脚本,只要您有权访问 x 会话并安装了 zenity,只需输入:path/to/audio-convert path/to/filename... 并指定任意数量的文件名。它们将被一一处理,就像您在 nautilus 或 rox 上选择多个文件时发生的情况一样。
我建议您使用您提到的脚本使用的工具,该工具faac
用于 AAC 编码,但您必须首先使用flac
.
有关终端调用faac
和flac
的详细信息,您可以查找在线文档,您会发现很多常用的示例,您还可以查看脚本中的函数 aac_encode() 和 flac_decode() audio-convert
:
flac_decode ()
{
temp_file=`echo "$1" | sed 's/\.\w*$/'.wav'/'`
flac -d "$1" -o "$temp_file" 2>&1 | awk -vRS='\r' -F':' '!/done/{gsub(/ /,"");gsub(/% complete/,"");if(NR>1)print $2; fflush();}' | zenity --progress --title="$title" --text="$2 $1" --auto-close
}
和
aac_encode ()
{
if [ $fields -eq 0 ] || [ $pass_metatags -eq 0 ]
then
aac_parse_fields
faac -w "${aac_fields[@]}" -q $quality -o "$3" "$2" 2>&1 | awk -vRS='\r' '(NR>1){gsub(/%/," ");print $3; fflush();}' | zenity --progress --title="$title" --text="$conversion $1" --auto-close
else
faac -q $quality -o "$3" "$2" 2>&1 | awk -vRS='\r' '(NR>1){gsub(/%/," ");print $3; fflush();}' | zenity --progress --title="$title" --text="$conversion $1" --auto-close
fi
}
但请记住,您不能按原样使用它们,audio-convert
因为它们依赖于文件中定义的其他变量。