使用Jave将G711A音频转码MP3或AAC

本文介绍了如何在Java项目中使用Jave2库将G711A音频转码为MP3和AAC格式。文章详细讲解了如何引入jar包,配置不同平台的 native 库,并提供了转换MP3和AAC的具体代码示例,同时指出Jave2文档中的一些过时信息需要注意。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


因为项目关系,需要使用到音视频转码这块,将G711A音频转码为MP3或AAC格式。网上普遍都是使用C/C++或者ffmpeg转码。由于项目中要求要使用Java编写,笔者在网上多番查找,终于找到了使用Java封装ffmpeg的Jave项目。

经过考虑决定使用 https://github.com/a-schild/jave2
封装的jar包,而不是 http://www.sauronsoftware.it/projects/jave/
封装的。主要原因是前者将 ffmpeg 单独封装成了jar包,并且提供了Windows、Linux、MacOs多个版本的jar包,方便替换。在这里笔者使用的是 2.4.6 版本的。

  • 获取途径一:根据 https://github.com/a-schild/jave2 中提示去做。
  • 获取途径二:在 maven 中直接搜 jave 下载 jar 包,或者直接使用 maven 引入。

笔者是直接下载的 jar 包,因为在 maven 中引入的时候,总是不成功,有可能是网络的原因,下载的时候是10几K的蹦。我也很无奈啊…

以下是需要引入的jar包:

  • jave-core-2.4.6
  • jave-native-win64-2.4.6
  • commons-logging-1.2

由于jave-core包中需要使用log所以又格外加了一个commons-logging,至于其他版本的jave-core需要的可能会不一样,读者可以查看对应版本的源码,确定要引入的其他jar包。在部署到Linux中要替换jave-native-win64-2.4.6为jave-native-linux64-2.4.6。

如果对jave的使用不了解,可以参考jave的说明文档 http://www.sauronsoftware.it/projects/jave/manual.php,但是文档有点老旧,里面有一些编解码格式参数会不正确,这需要读者进行尝试。也可以继续往下阅读,看看笔者是如何解决的。

所需要的jar包准备完成,现在开始上代码

1、创建Java项目

这里笔者不再过多介绍,如何创建自己百度,我相信你能看到这于你Java已经很熟悉了。这里不再过多解释。

2、将上述jar包引入到项目中

这里也不过多解释。不会了自己百度。

在这里说明以下,笔者的开发环境,jdk8 + idea。

3、G711A + AVC 格式MP4视频转MP3 + AVC格式MP4视频

由于这里视频编码格式不需要变,都是AVC,直接使用VideoAttributes.DIRECT_STREAM_COPY即可,如果读者的视频编码格式需要变动,请参考 jave 说明文档,再次说明,文档中提供的编解码格式可能会有不支持的,需要读者自己验证。我在刚开始使用时,就遇到了这种情况,参考了说明文档,想要使用h264的编码格式即AVC,然后将编码格式设置为libx264,但是报错了,找不到。经过多番努力,在源码中,找到了这个直接copy原视频编码的方法。

而对于音频编码为MP3来说,提供的说明还是正常的,即使用libmp3lame即可。
具体代码如下:

import ws.schild.jave.*;

import java.io.File;

/**
 * @Author:
 * @Date: 2020/4/17 10:39
 */
public class G711AToMp3 {
   
    public static int name=0;
    public static void main(String[] args) throws EncoderException {
   
        for(int i=0;i<10;i++){
   
            new Thread(new Runnable() {
   
                @Override
                publ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值