Pages

Saturday, 17 July 2021

一个自动转换音频为 opus 格式的小工具autoconv

 除 ogg, vorbis 之外的另一个开源免费无专利的音频格式,即 opus。

根据观察这格式也是 ogg 封装(ogg是容器格式,vorbis才是编码,常说的ogg格式实际上指的是vorbis编码格式),各方的支持度其实相当不错。

据大佬说比较优秀,特别是码率较低的时候,ogg会出噪音,而 opus 不会,而且编码速度极快。那么在游戏开发和语音通话等方面应该有上佳表现。

于是顺手写了一个自动转换器,编码器和脚本放在同一目录执行脚本,然后向 input 目录丢 ".wav", ".aiff", ".flac", ".ogg" 这几种格式的文件,会自动转换成同名的 opus 编码文件输出在 output 目录。

-----

autoconv

自动音频转换工具

要求

Python 3.4+

依赖库 watchdog

pip3 install watchdog
python3 autoconv.py

预设用法

http://www.opus-codec.org/downloads/

下载 opus-tools,并将 opusenc.exe 丢在 autoconv.py 同目录

将音频文件(".wav", ".aiff", ".flac", ".ogg")放在 input 目录下或 input 的子目录

autoconv 会自动调用编码器将文件转换保存至 output 目录的对应路径。

子目录 48 96 192 384 500 代表 5 档不同的码率。

input 根目录的码率是192

举例:放入 input/music.wav,稍后将得到 output/music.opus

自定义

编辑 config.json 填写参数

在 types 中定义不同的子项,自动对应到 input/{配置名} 这一目录

{
    "global": {
        "encoder": "opusenc.exe",
        "input_dir": "input",
        "output_dir": "output",
        "watch_ext": [".wav", ".aiff", ".flac", ".ogg"],
        "output_ext": ".opus"
    },
    "types": {
        "48": {
            "--bitrate": "48",
            "--vbr": ""
        },
        "96": {
            "--bitrate": "96",
            "--vbr": ""
        },
        "192": {
            "--bitrate": "192",
            "--vbr": ""
        },
        "384": {
            "--bitrate": "384",
            "--vbr": ""
        },
        "500": {
            "--bitrate": "500",
            "--vbr": ""
        },
        "": {
            "--bitrate": "192",
            "--vbr": ""            
        }
    }
}

看着改就行。


from https://github.com/fy0/autoconv

No comments:

Post a Comment