美文网首页
使用ffmpeg对mp3格式的音频文件类型转换、截取及合并

使用ffmpeg对mp3格式的音频文件类型转换、截取及合并

作者: 呼啦啦zz | 来源:发表于2019-12-17 12:06 被阅读0次

    FFmpeg简介:FFmpeg是一个自由软件,可以运行音频和视频多种格式的录影、转换、流功能,包含了libavcodec ─这是一个用于多个项目中音频和视频的解码器库,以及libavformat——一个音频与视频格式转换库。

    FFmpeg命令:

        一、mp3截取

                ffmpeg -y -i test.mp3 -ss 00:00:00 -t 00:00:03 -acodec copy output_mp3.mp3

          参数说明

                  -y :     允许覆盖

                  -i test.mp3:  源文件

                 -ss 00:00:00:   开始时间

                 -t 00:00:03:   截取音频时间长度

                 -acodec copy:编码格式复制

       二、合并两个mp3文件为一个

              ffmpeg -i  "contat:file1.mp3|file2.mp3"  -acodec copy  merge.mp3

                 file1.mp3:源文件1

                 file2.mp3:源文件2

                 merge.mp3:合并后的目标文件

       二、mp3转pcm

               ffmpeg -y -i test.mp3 -acodec pcm_s16le -f s16le -ac 2 -ar 16000 16k.pcm

         参数说明

               -y:  允许覆盖

               -i test.mp3:  源文件

              -acodec pcm_s16le: 编码器

              -f s16le:  强制文件格式

             -ac 2: 双声道

             -ar 16000: 采样率

      三、pcm转mp3

              ffmpeg -y -f s16be -ac 2 -ar 16000 -acodec pcm_s16le -i 16k.pcm new_mp3.mp3

            参数说明

                -y: 允许覆盖

                -f s16le: 强制文件格式

                -ac 2: 双声道

                -ar 16000: 采样率

                -acodec pcm_s16le: 编码器

                -i test.mp3: 源文件

        四、上代码

        public class Mp3ToPcm {

                public static StringchangeMp3ToPcm(String sourcePath){

                        String webroot ="E:\\ffmpeg\\bin";

                        String targetPath ="E:\\pcm\\test.pcm";

                        Runtime run =null;

                        try {

                                run = Runtime.getRuntime();

                                 long start=System.currentTimeMillis();

                                 System.out.println(new File(webroot).getAbsolutePath());

                //mp3转pcm

                Process p=run.exec(new File(webroot).getAbsolutePath() +"/ffmpeg -y -i "+sourcePath+" -acodec pcm_s16le -f s16le -ac 2 -ar 16000 "+targetPath);

                //释放进程

                p.getOutputStream().close();

                p.getInputStream().close();

                p.getErrorStream().close();

                p.waitFor();

                long end=System.currentTimeMillis();

                System.out.println(sourcePath+" convert success, costs:"+(end-start)+"ms");

            }catch (Exception e) {

    e.printStackTrace();

            }finally{

    //run调用lame解码器最后释放内存

            run.freeMemory();

            }

    return null;

        }

    }

    相关文章

      网友评论

          本文标题:使用ffmpeg对mp3格式的音频文件类型转换、截取及合并

          本文链接:https://www.haomeiwen.com/subject/tgrsnctx.html