微信小程序语音使用ffmpeg进行格式转换
2018-02-22 11:23
211 查看
ffmpeg是一个对音频、视频文件进行格式转换便捷的软件,使用起来也十分简易。
在使用ffmpeg对微信小程序语音进行格式转换时也遇到了一些小问题,在此作出记录。
如果已经安转了ffmpeg,则可直接忽略安装的步骤,我是参考(https://www.cnblogs.com/cheng5x/p/5646920.html)安装成功的。
以下写了一个将mp3转换成pcm的方法。 /**
* MP3音频格式转换为pcm格式
* @param ffmpegPath ffmpeg文件路径
* @param source 源文件
* @return
*/
public String VoiceFormatMP3ToPCM(String ffmpegPath, String source) {
File file = new File(source);
//转换后目标文件
String target = "F:/" + file.getName().replace("mp3", "pcm");
//String target = source.replace("mp3", "pcm");
if (!file.exists()) {
System.err.println("路径[" + source + "]对应的视频文件不存在!");
return null;
}
List<String> commands = new ArrayList<String>();
commands.add(ffmpegPath);
commands.add("-y");
commands.add("-i");
commands.add(source);
commands.add("-acodec");
commands.add("pcm_s16le");
commands.add("-f");
commands.add("s16le");
commands.add("-ac");
commands.add("1");
commands.add("-ar");
commands.add("16000");
commands.add(target);
try {
ProcessBuilder builder = new ProcessBuilder();
builder.command(commands);
builder.start();
return target;
} catch (Exception e) {
e.printStackTrace();
}
return null;
} 需要注意:
我在安装和调试时遇到了以下两个问题
在linux环境下:
如果出现以下问题ffmpeg yasm not found, use --disable-yasm for a crippled build,请安装yasm插件
FFMPEG为了提高编译速度,使用了汇编指令,如果系统中没有yasm指令的话,就会出现上述的问题
安装命令:
sudo apt-get install yasm (如果该命令不生效,尝试使用该命令yum install yasm)
在window环境下:
开发时出现路径写入不成功的问题(该问题没有报错,更换路径后成功执行)
在使用ffmpeg对微信小程序语音进行格式转换时也遇到了一些小问题,在此作出记录。
如果已经安转了ffmpeg,则可直接忽略安装的步骤,我是参考(https://www.cnblogs.com/cheng5x/p/5646920.html)安装成功的。
以下写了一个将mp3转换成pcm的方法。 /**
* MP3音频格式转换为pcm格式
* @param ffmpegPath ffmpeg文件路径
* @param source 源文件
* @return
*/
public String VoiceFormatMP3ToPCM(String ffmpegPath, String source) {
File file = new File(source);
//转换后目标文件
String target = "F:/" + file.getName().replace("mp3", "pcm");
//String target = source.replace("mp3", "pcm");
if (!file.exists()) {
System.err.println("路径[" + source + "]对应的视频文件不存在!");
return null;
}
List<String> commands = new ArrayList<String>();
commands.add(ffmpegPath);
commands.add("-y");
commands.add("-i");
commands.add(source);
commands.add("-acodec");
commands.add("pcm_s16le");
commands.add("-f");
commands.add("s16le");
commands.add("-ac");
commands.add("1");
commands.add("-ar");
commands.add("16000");
commands.add(target);
try {
ProcessBuilder builder = new ProcessBuilder();
builder.command(commands);
builder.start();
return target;
} catch (Exception e) {
e.printStackTrace();
}
return null;
} 需要注意:
我在安装和调试时遇到了以下两个问题
在linux环境下:
如果出现以下问题ffmpeg yasm not found, use --disable-yasm for a crippled build,请安装yasm插件
FFMPEG为了提高编译速度,使用了汇编指令,如果系统中没有yasm指令的话,就会出现上述的问题
安装命令:
sudo apt-get install yasm (如果该命令不生效,尝试使用该命令yum install yasm)
在window环境下:
开发时出现路径写入不成功的问题(该问题没有报错,更换路径后成功执行)
相关文章推荐
- 微信小程序语音识别开发过程记录 微信小程序silk转mp3 silk转wav 以及ffmpeg使用 微信小程序语音红包
- 微信小程序中使用Promise进行异步流程处理的实例详解
- windows下使用FFmpeg进行音频转换程序
- 微信小程序中使用Promise进行异步流程处理
- 微信小程序使用gitee进行版本管理
- 微信小程序使用WebService(Asp.net)进行数据交互
- 使用Olami SDK实现一个语音输入数字进行24点计算的iOS程序
- windows下使用FFmpeg进行音频转换程序
- 使用Olami SDK实现一个语音输入数字进行24点计算的iOS程序
- 详细介绍微信小程序使用WEB-VIEW控件进行微信支付
- 使用程序对Office自动化进行操作的一些文章。
- 使用NetBeans进行J2ME开发(二):把程序转移到手机上
- 使用C#和Excel进行报表开发(八)-用程序绑定数据源
- 未能使用提供程序 "RsaProtectedConfigurationProvider" 进行解密 的解决办法
- 使用Eclipse RCP进行桌面程序开发(三):视图和透视图
- 使用Eclipse RCP进行桌面程序开发(四):在Windows中使用Active X控件
- 使用NetBeans进行J2ME开发(二):把程序转移到手机上
- 使用Eclipse RCP进行桌面程序开发(五):2D绘图
- 使用Windows Mobile Test Framework进行Windows Mobile程序的自动化测试 - (2) 小试牛刀
- 如何使用*.pdb与源代码进行Web程序的调试?