转换 腾讯App(微信、微信小程序、QQ)或 Silk 编码的音频 至其他音乐格式如 mp3 及 m4a
English Readme
$ npm install wx-voice --save
$ npm install wx-voice -g
$ wx-voice compile
- Ffmpeg: 安装 Ffmpeg
- Build tools: 安装 Build tools
wx-voice <command> <options>
例子:
$ wx-voice decode -i input.silk -o output.mp3 -f mp3
$ wx-voice encode -i input.mp3 -o output.silk -f silk
Command:
decode 解码 silk 或 webm 去其他格式
encode 编码其他格式至 silk 或 webm
compile 编制 wx-voice(必须在每次更新及安装时执行)
clean 清除已编制的 wx-voice
Options:
-i <input> 输入的音频文件路径
-o <output> 输出的音频文件路径
-f <format> 输出的格式
--bitrate 输出的比特率
--frequency 输出的频率
--channels 输出的通道数
// 初始化
const WxVoice = require('wx-voice');
var voice = new WxVoice();
// 错误处理
voice.on("error", (err) => console.log(err));
// 从 silk 解码至 MP3
voice.decode(
"input.silk", "output.mp3", { format: "mp3" },
(file) => console.log(file));
// 输出: "/path/to/output.mp3"
初始化 wxVoice
参数 | 说明 |
---|---|
tempFolder | 自定义临时文件文件夹,默认为系统temp |
ffmpegPath | 自定义 FFMPEG 执行档, 默认为 $PATH |
解码 silk 或 webm 去其他格式
编码其他格式至 silk 或 webm
参数 | 说明 |
---|---|
input | 输入的音频文件路径 |
output | 输出的音频文件路径 |
options | 设置参数 (Object), 详见 设置 |
callback | 回调,如果成功将输出 output ,失败则输出 undefined |
voice.encode(
"input.mp3", "output.silk", { format: "silk" },
(file) => console.log(file));
// 输出: "/path/to/output.silk"
获取音频的时长 (目前只接受解码后的音频)
参数 | 说明 |
---|---|
filePath | 音频文件路径 |
callback | 回调,如果成功将输出其时长,单位为秒,失败则输出 0 |
voice.encode("output.mp3", (dur) => console.log(dur));
// 输出: "10.290"
Javascript Object,用来设置输出的参数
参数 | 说明 |
---|---|
format | 输出的格式 (silk, webm, mp3, m4a...),默认从 output 的扩展名提取 |
bitrate | 输出的比特率,以 bps 为单位 |
frequency | 输出的频率,以 Hz 为单位 |
channels | 输出的通道数,默认为单通道 |
解码: mp3
, m4a
, wav
, pcm
已测试
编码: silk
, silk_amr
, webm
已测试
- 用 Javascript Object 为参数
- 转换过程允许超时中断
- Command line 支持转换
- 支持 Windows
作业系统 | 指令 |
---|---|
Ubuntu | sudo apt-get install build-essential |
CentOS | sudo yum groupinstall 'Development Tools' |
Mac | 下载 XCode |
$ sudo add-apt-repository ppa:mc3man/trusty-media
$ sudo apt-get update
$ sudo apt-get install ffmpeg
$ sudo yum install epel-release
$ sudo yum update
$ sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
CentOS 7:
$ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
CentOS 6:
$ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm
安装 FFMPEG:
$ sudo yum install ffmpeg
$ brew install ffmpeg
MIT © Ang YC