少费话,先上代码

引入 maven 依赖

 <dependency><groupId>com.github.dadiyang</groupId><artifactId>jave</artifactId><version>1.0.4</version></dependency>

调用 AudioUtils.amrToMp3 方法

三行代码搞定格式转换

public void amrToMp3()  {File source = new File("target/test-classes/material/testAudio.amr");File target = new File("testAudio.mp3");it.sauronsoftware.jave.AudioUtils.amrToMp3(source, target);
}

探索过程

最近接到基于微信公众号开发的需求,在处理微信消息的时候,发现语音类型的消息微信推送过来的是 amr 格式的文件,而在网页 HTML5的audio标签不支持amr格式,很是麻烦。

于是到处查资料,发现了 JAVE 这个项目,它封装了 ffmpeg 的命令,让开发者可以通过 Java 转换文件格式

不幸的是,这个项目可谓年久失修,存在以下几个问题

JAVE 项目的问题

  1. 项目老旧没再维护。官网最近版本是2009年发布的,其依赖的ffmpeg早已过时,很多情况下用不了。
  2. 转码一直报异常 EncoderException: Stream mapping
  3. 没有发布maven仓库,而且 JAVE 本身也不是一个maven项目
  4. 不支持Mac OS

解决

本项目为解决上述问题,根据网上的资料进行整理和修改,我创建了一个 JAVE开源项目 并且发布到 maven中央仓库,让整个解决方案变得更加简单。

项目特点

  • 这是一个maven项目,而且已发布到中央仓库。
  • 项目依赖的 ffmpeg 可执行文件经过验证可以使用(单元测试中提供了一个简单的检验方法)
  • 解决了amr转mp3出现的 EncoderException: Stream mapping
  • 支持 Linux/Windows/Mac 平台

JAVE原理

  1. 初始化时判断当前运行环境,将bin目录中对应的 ffmpeg 可执行文件拷贝到临时目录中
  2. 根据文件类型及配置通过 Runtime.getRuntime().exec(cmd) 执行 ffmpeg 对应的转码命令

自定义 ffmpeg 路径

如果程序无法通过拷贝资源文件的方式获取到 ffmpeg 的可执行文件或者内置的 ffmpeg 不支持你所使用的操作系统

你可以通过环境变量或者在 java 中设置 System.setProperty("ffmpeg.home", "ffmpeg可执行文件所在的目录") 的方式指定你的系统中安装的可用的 ffmpeg 文件的目录,如 System.setProperty("ffmpeg.home", "/usr/local/bin/")

项目GitHub地址

https://github.com/dadiyang/jave

参考

JAVE官网:http://www.sauronsoftware.it/projects/jave/index.php
《解決linux AMR轉MP3出現轉碼成功卻無法播放的問題》:https://hk.saowen.com/a/2ec2a73ec73091967c3ebdb5697832006cb255a7183377b6e8fae1c13f5e54bc
xiaoymin: https://github.com/xiaoymin/jave

完美解决:Java微信语音amr格式转mp3格式,兼容Linux/Mac/Windows,支持Maven相关推荐

  1. Java微信语音amr格式转mp3格式

    完美解决个人微信音频amr文件与mp3格式互转 1.安装gcc ffmpeg wget http://downloads.sourceforge.net/lame/lame-3.100.tar.gz ...

  2. 微信语音怎么合并成MP3格式

    手机微信收发的语音消息以单独的文件形式存储在手机存储中,将这些音频文件导出到电脑后,即可通过第三方软件对其进行读取,并将所有微信语音消息合并成MP3格式音频文件. 1,先把要合并微信语音的苹果手机或安 ...

  3. java 微信语音下载电脑版,完美解决:Java微信语音amr格式转mp3格式,兼容Linux/Mac/Windows,支持Maven...

    首先感谢 : 直接上代码 1.首先引入maven依赖(使用maven这点我很喜欢) com.github.dadiyang jave 1.0.4 2.调用 AudioUtils.amrToMp3 方法 ...

  4. Java 微信语音 amr 格式转 mp3 格式

    少费话,先上代码 引入 maven 依赖 <dependency><groupId>com.github.dadiyang</groupId><artifac ...

  5. 新款文章,绝无仅有!微信语音aud文件转换为mp3格式

    前提 需求: 目前aud后缀的音频文件无法在任何软件上进行播放,需要进行转换,而当你有需要的时候,例如语音作为追债证据的时候,需要将语音文件分享给其它人听,这时候就需要在手机中找到对应的aud语音文件 ...

  6. php 下载微信语音文件怎么打开软件,微信群讲课或语音讨论交流 如何把大家讲的微信语音合成一个音频文件mp3格式...

    想要将一些微信群讲课或语音讨论交流的微信语音导出来,然后把大家讲的微信语音合成一个音频文件mp3格式,这个过程怎么来实现的呢,嗯~ o(* ̄▽ ̄*)o .最终的效果是可是实现的,在这之前需要先分几个步 ...

  7. linux java amr转mp3_本工具用于将微信语音 amr 格式转换为 mp3 格式以便在 html5 的 audio 标签中进行播放...

    音频转码工具 本工具主要用于将微信语音 amr 格式转换为 mp3 格式以便在 html5 的 audio 标签中进行播放. 支持 Linux/Windows/Mac 平台 因为是基于 JAVE 项目 ...

  8. java amr音频转码_jave: 音频转码工具,主要用于将微信语音 amr 格式转换为 mp3 格式以便在 html5 的 audio 标签中进行播放...

    音频转码工具 本工具主要用于将微信语音 amr 格式转换为 mp3 格式以便在 html5 的 audio 标签中进行播放. 支持 Linux/Windows/Mac 平台 因为是基于 JAVE 项目 ...

  9. PHP如何下载微信语音到服务器,并将amr格式转换为MP3格式,最后上传到阿里云oss文件中

    第一步:下载微信语音到服务器中 废话不多说,直接上代码 1.总的流程方法(里面的方法在下面) 2.下载微信语音的方法 3.将微信语音的amr格式转换为MP3格式(需要使用FFmpeg,安装使用过程请看 ...

最新文章

  1. 2022秋招算法岗卷成人间地狱!高薪惹眼,招录比100:1
  2. 这都2021年了,还不会Feign性能调优?Feign性能调优之gzip压缩实现-自娱自乐篇
  3. 团队作业(五):冲刺总结
  4. 5月份 Github 上最热的十个 Python 项目,从Debug工具到AI水军、量化交易系统。
  5. 特岗招聘计算机专业要求,咨询特岗教师招聘专业设置问题
  6. SecureCRT登录本地cygwin。
  7. 北京54坐标系和1980西安坐标系转换
  8. Python调用腾讯API实现人脸检测
  9. 关于pandownload源码的一般性研究与挖掘
  10. Iterator是什么,有什么作用?
  11. 用AI「复活」逝者:「深度怀旧」项目火遍推特,我们也用民国老照片试了下 #蚂蚁呀嘿
  12. vmware虚拟服务器弊端,VM虚拟机问题总结
  13. 2012/5/9武汉佰钧成
  14. SQL Server Intergration Services(SSIS)
  15. framebuffer之overview/双缓冲/alpha与colorkey/窗口平移与virtual screen平移
  16. 单词统计(哎呦我去!)
  17. .IMDB,THUCNews数据集下载和探索
  18. 147 completion机制基本概念
  19. GIF录屏/剪辑小工具screentogift、 免费截图贴图工具Snipaste
  20. 最土团购如何新建城市

热门文章

  1. Fabric1.4.1多机部署
  2. linux下安装 postgresql 14
  3. 2021双非计算机保研之路(经验之谈)
  4. 奥利给! loading效果这么搞真的太棒了
  5. springBoot配置多个过滤器filter的执行顺序
  6. CSS关于传统网页中的三大布局方式,手动码字+大白话
  7. 【正点原子FPGA连载】第三十一章RTC实时时钟数码管显示实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1
  8. DBA生涯之如何成为高级DBA
  9. 在地图上可视化地理空间数据的12种方法
  10. 什么是Accessibility(辅助功能)