amr在线转换mav(手机amr转mp3在线转换方法)

blog.csdn.net/dadiyang/article/details/85003240

少费话,先上代码

引入 maven 依赖
amr在线转换mav(手机amr转mp3在线转换方法)

<dependency>

<groupId>com.github.dadiyang</groupId>

<artifactId>jave</artifactId>

<version>1.0.0</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);

}

探索过程

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

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

JAVE 项目的问题

项目老旧没再维护。官网最近版本是2009年发布的,其依赖的ffmpeg早已过时,很多情况下用不了。

转码一直报异常 EncoderException: Stream mapping

没有发布maven仓库,而且 JAVE 本身也不是一个maven项目

不支持Mac OS

解决

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

项目特点

这是一个maven项目,而且已发布到中央仓库。

项目依赖的 ffmpeg 可执行文件经过验证可以使用(单元测试中提供了一个简单的检验方法)

解决了amr转mp3出现的 EncoderException: Stream mapping

支持 Linux/Windows/Mac 平台

JAVE原理

初始化时判断当前运行环境,将bin目录中对应的 ffmpeg 可执行文件拷贝到临时目录中

根据文件类型及配置通过 Runtime.getRuntime().exec(cmd) 执行 ffmpeg 对应的转码命令

自定义 ffmpeg 路径

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

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

https://github.com/dadiyang/jave

参考

JAVE官网:http://www.sauronsoftware.it/projects/jave/index.php

《解決linux AMR轉MP3出現轉碼成功卻無法播放的問題》:https://hk.saowen.com/a/2ec2a73ec73091967c3ebdb5697832006cb255a7183377b6e8fae1c13f5e54bc

【关于投稿】

如果大家有原创好文投稿,请直接给公号发送留言。

①留言格式:【投稿】 《文章标题》 文章链接②示例:【投稿】《不要自称是程序员,我十多年的IT职场总结》:http://blog.jobbole.com/94148/③最后请附上您的个人简介哈~

看完本文有收获?请转发分享给更多人

发表评论

登录后才能评论