将amr,caf转mp3 Java android amr caf mp3

  1. 1. 需求
  2. 2. 开工
    1. 2.1. 安装ffmpeg
    2. 2.2. 查看当前ffmpeg对mp3的编解码支持情况
  3. 3. 问题

需求


公司原有文件存储现在要用java进行重构,其中涉及到Android和ios上的音频问题。

  1. Android录音是格式是amr,在电脑上一般是播放不出来的,必须要进行转码。

  2. iPhone录音传上来的是caf,在android上是不能进行播放的。

由于上面的问题,我们要进行文件的转换,另外还有一个需求就是,amr转wav ,这里我们将amr和caf统一转换为map3,另外提供一个接口进行amr2wav的转换。 在网上参考了许多,总结下来还都是调用ffmpeg 进行想着音频的转换。总也来说比较简单。这里时间的关系 ,也不可能去研究底层编解码的东西。


开工

安装ffmpeg

查看当前ffmpeg对mp3的编解码支持情况

    ffmpeg -codecs|grep mp3                                        

     D.A.L. mp3                  MP3 (MPEG audio layer 3) (decoders: mp3 mp3float )
     D.A.L. mp3adu               ADU (Application Data Unit) MP3 (MPEG audio layer 3) (decoders: mp3adu mp3adufloat )
     D.A.L. mp3on4               MP3onMP4 (decoders: mp3on4 mp3on4float )



     

问题

  • ffmpeg: error while loading shared libraries: libavdevice.so.53: cannot open shared object file: No such file or directory
      ffmpeg正常安装后执行ffmpeg时出现如下错误:

      解决办法:

      vi /etc/ld.so.conf

      加入:/usr/local/lib

      执行ldconfig
  • ffmpeg -i test.amr test.mp3
    ffmpeg: error while loading shared libraries: libavdevice.so.56: cannot open shared object file: No such file or directory

     <http://www.tjcarroll.org/?p=51>