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环境下:
开发时出现路径写入不成功的问题(该问题没有报错,更换路径后成功执行)