欢迎访问昆山宝鼎软件有限公司网站! 设为首页 | 网站地图 | XML | RSS订阅 | 宝鼎邮箱 | 后台管理


新闻资讯

MENU

软件开发知识
原文出处: dadiyang

少费话,先上代码

引入 maven 依赖

 <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);
}

摸索进程

最近接到基于微信公家号开拓的需求,在处理惩罚微信动静的时候,昆山软件开发,发明语音范例的动静微信推送过来的是 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