如何使用FFMPEG快速压制OPUS音频(附送自写GUI小工具)
你还在用MP3格式保存音频文件?你知道MP3已经30多岁了吗?你知道MP3是目前最落后的有损音频压缩格式吗?
所以——现在就放弃使用MP3来存储和压缩你的音频文件,改换其他音质更好的音频压缩格式吧!
为什么选择 OPUS?
目前流行的音频格式中,除了WAV、FLAC这类无损格式,大部分格式都是通过有损压缩的方式来存储音频文件的。如果你已有一个MP3的音频文件,将它转化为其他格式,并不会提高这个音频文件的质量。
但若是将WAV或FLAC进行压缩存储,使用更现代化的音频格式,在音质损失上会比MP3要小得多。
对于需要极限压缩文件大小,音质低于64kbps的音频文件,目前最好的压缩方式为 HE-AACv2,你可以找一些支持HE-AACv2的软件进行压缩(FFMPEG也支持,不过本文不作演示)。
对于音质有较高要求,比特率高于320kbps,可以选择OGG格式,它对于音质的损失是最小的,但同时压制时间也是最长的。
而综合音质与压制速度,我个人则最推荐OPUS格式!
首先,OPUS是目前最先进的音频格式,并且是开源程序,没有任何专利及授权费用!
不过也因为它太新了,所以部分老旧的物理播放设备可能不支持,但是绝大部分还在更新的音频播放器都是支持OPUS格式的!
接下来介绍一下如何将音频文件压制为OPUS
目前官方的 opus-tools 工具只支持极少数的无损音频文件,所以使用起来并不方便,使用前可能需要将原文件先进行转码。而第三方工具中,FFMPEG 无疑是支持格式众多、使用最方便的转码软件了!
我个人推荐 Windows 用户使用 gyan 的每日编译版FFMPEG:
https://www.gyan.dev/ffmpeg/builds/ffmpeg-git-essentials.7z
本站分流 https://www.lanzouj.com/iCDRE1d97o5a
https://www.gyan.dev/ffmpeg/builds/ffmpeg-git-essentials.7z
本站分流 https://www.lanzouj.com/iCDRE1d97o5a
解压后得到一个
ffmpeg.exe
文件,这就是我们所需要的编解码转换器的主程序了。将
ffmpeg.exe
存放到一个目录中(示例中为 E:\ffmpeg\ffmpeg.exe
),然后新建一个文本文件,将其改名为 媒体格式转OPUS.bat
,右键此文件,点击编辑。进入文本编辑后,复制并粘贴下面的代码,修改一下
SET FFMPEG="E:\FFMPEG\ffmpeg.exe"
中FFMPEG的位置,修改 -b:a 320k
为你预期的音频码率,如192k、128k等等。修改完成后保存文件。
注意:文本的编码必须为ANSI,否则中文部分会出现乱码!
@echo off
echo 将媒体转化为OPUS
rem 请先设置FFMPEG的位置
SET FFMPEG="E:\FFMPEG\ffmpeg.exe"
IF "%~1" == "" GOTO _input
SET P1=%~1
echo %P1%
GOTO _output
:_input
echo 请输入文件
set /p P1=
:_output
%FFMPEG% -i "%P1%" -c:a libopus -b:a 320k -vbr constrained "%P1%.opus"
echo FFMPEG执行完毕,若是发生错误,请尝试修改文件位置
pause
此脚本你可以放到任何地方,并且支持目前所有的主流音频、视频媒体,使用方法有两种:第一种方法,直接启动脚本,并将一个媒体文件拖拽到控制台内(Win10以上才支持?),回车后即可进行转码。或者你直接
Ctrl+C
复制文件,然后在控制台内右键即可粘贴文件位置。转码后的文件会以
原文件名.opus
保存在原位置,只不过可能包含双扩展名,比如 音频.flac.opus
,请自行更正文件名。第二种方法更简单,你可以直接拖动一个音频文件,到
媒体格式转OPUS.bat
这个文件上面,脚本会自动读取你拖动的文件位置,并将输出的文件保存到原文件相同位置。注意:WIN10的安全机制有可能会阻止此行为,如果拖放文件的方法无效,请新建一个文本文件,并命名为
启用WIN10文件拖放打开.reg
,写入下面的代码并保存。Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"EnableLUA"=dword:00000000
保存完成后双击导入,然后重启一下电脑。批量处理OPUS转换的小工具
使用脚本虽然很方便,不过只支持每次转换一个文件,并且文件名还需要重新修改。所以我自己写了一个小程序,方便自己对多文件进行转换。
此程序目前仅支持转化OPUS格式,你可以直接将文件拖放到待处理列表中,也可以直接拖动文件夹进去,不过文件夹目前只支持读取主文件夹内的文件(不支持子文件夹,防止过载)。
设置好待转换的文件后,你可以在下方设置输出文件夹位置,所有转化的文件都会存储到指定的位置。
如果你没有设置输出文件夹,则OPUS文件会存储到原文件的位置,并智能保存为
原文件.opus
的格式名。程序会首先在程序主目录下搜寻
ffmpeg.exe
,如果没有搜寻到,则会在所有磁盘驱动器上搜寻 X:\ffmpeg\ffmpeg.exe
文件是否存在。一般建议你直接下个 FFMPEG 放到程序的相同目录下即可。
所有参数设置完成后,点击
开始转换
按钮即可。本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
我先来:大佬牛B!
小工具大作用!有损音频全面转向opus格式的利器,寻找FFmpeg转opus格式的参数[寻求最高压缩率,最低音质损失]时偶然发现这个神器的个人小站!“我为什么能找到本站呢?因为我在百度/必应搜索引擎加了[-zhihu -csdn -baidu ]参数”搜索结果干净太多了,简直犹如打开了新世界的大门。当然即便加了参数:彦宏同志还是会在搜索结果加入广告推广内容;而盖茨同志作为客场就守规矩的多!
无损音质首选格式 flac 压缩率可以通过参数:"-compression_level x" 在0-12之间选择平衡点;而opus该如何配置才能[高压缩率高音质]呢:只能在64-320k范围做选择吗?
顺便给大佬推荐一个同样有趣的个人站点:
ACME Laboratories - Graphics * Unix * Networks * Fun
Purveyors of fine freeware since 1972. On the net since 1991.
https://www.acme.com/
320k用OGG,可以保留最多的细节,只不过OGG的压制速度太慢。
64k用 HE-AACv2,在低码率比较有优势。
OPUS是64~320k之间最好的选择,同时压制速度也比OGG要快,压缩质量的话应该就只有kbps可以调整,并且OPUS只支持48Hz,音源是44Hz也会被强制转化为48Hz。