您的位置:首页 > 移动开发 > 微信开发

微信小程序语音使用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环境下:
开发时出现路径写入不成功的问题(该问题没有报错,更换路径后成功执行)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息