java 音频转为wav格式标准音频 | Java工具类
目录
简述
环境依赖
maven依赖
ffmpeg依赖
工具类代码
总结
简述
该工具类主要是为了将各类音频转为wav标准格式,其中可以调节采样率、声道数等指标。主要是使用ffmpeg命令进行转换。
环境依赖
maven依赖
<dependency><groupId>org.bytedeco</groupId><artifactId>javacv-platform</artifactId><version>1.5.5</version></dependency>
这个包是个全能包,很大,具体可以自己查查它的作用。
ffmpeg依赖
这里要做两点说明:
1、如果你是本机运行,需要在你运行的机器上安装ffmpeg,并且将命令配置到环境变量中。
2、如果你是在docker运行,那么在容器内也需要安装ffmpeg,所以给一个建议,可以将带有ffmpeg命令和jdk8环境的docker打包为一个专门的ffmpeg运行镜像。以便以后还有使用的场景。
工具类代码
import lombok.extern.slf4j.Slf4j;
import org.bytedeco.javacpp.Loader;import java.io.IOException;
import java.util.Optional;/** @Author huyi @Date 2021/10/15 10:20 @Description: 音频转换为wav格式工具类 */
@Slf4j
public class AudioTransforWavUtils {/*** 音频转换** @param localPath 本地音频* @param fileName 文件名* @return 转换后的地址* @throws Exception 异常*/public static String transforAudio(String localPath, String fileName) throws Exception {// 这个本地转换路径可以自己调整String transforPath = "D:" + "/" + fileName + ".wav";Optional<String> transPath = Optional.empty();try {transPath = transforWavStandard(localPath, transforPath);} catch (Exception exception) {exception.printStackTrace();}if (transPath.isPresent()) {return transPath.get();} else {throw new Exception("音频转换失败失败");}}/*** wav音频转换为标准音频** @param oldFilePath 老地址* @param newFilePath 新地址* @return 转换完成后的地址*/public static Optional<String> transforWavStandard(String oldFilePath, String newFilePath) {// 获取本地ffmpeg执行器String ffmpeg = Loader.load(org.bytedeco.ffmpeg.ffmpeg.class);// 生成转换命令管道ProcessBuilder transforBuilder =new ProcessBuilder(ffmpeg, "-i", oldFilePath, "-f", "wav", "-ar", "16000", "-ac", "1", "-y", newFilePath);try {// inheritIO是指将 子流程的IO与当前java流程的IO设置为相同transforBuilder.inheritIO().start().waitFor();} catch (InterruptedException | IOException e) {log.error("ffmpeg转换wav为标准格式异常", e);return Optional.empty();}// 返回pcm文件路径return Optional.of(newFilePath);}public static void main(String[] args) throws Exception {transforAudio("C:\\Users\\huyi\\Desktop\\测试.mp3", "new");}
}
测试数据为MP3音频
执行打印,会出现ffmpeg的执行打印。
执行结果。
说明:我们看到已经转换为wav格式。 具体的采样率、声道等,可以按照自己的需求配置或者变量化。
总结
没什么好总结的,整就完了。今天南京小雨~~~LGD2:0VP。
如果本文对你有帮助,请点个赞支持一下吧。
java 音频转为wav格式标准音频 | Java工具类相关推荐
- java实现录音并保存为wav格式的音频文件
前言:本意是想像个录屏的软件,这篇先从录音功能开始. 整体思路:采用java官方API--TargetDataLine,从声卡中采集音频数据达到录音效果,采集的数据为PCM裸流,再将PCM转为wav格 ...
- java后台 amr格式音频转为mp3格式
最近项目用到读取amr格式的音频,但是h5不支持这种格式,前台处理不太擅长感觉太过麻烦,所以还是在后端转格式吧. 用到一个jar: jave.jar 网址:https://www.sauronsoft ...
- 音频文件格式转换 转为 wav格式
音频文件格式转换 转为 wav格式 pom.xml依赖 <!--文件格式转换--><dependency><groupId>ws.schild</groupI ...
- 【音视频数据数据处理 10】【PCM篇】将PCM转为WAV格式音频
[音视频数据数据处理 10][PCM篇]将PCM转为WAV格式音频 一.WAV头信息 1.1 RIFF区块 1.2 FORMAT区块 1.3 DATA区块 二.PCM 转 WAV 代码实现 PCM转为 ...
- java 微信服务器录音下载到自己服务器,并转为wav格式
/** * * 根据文件id获取文件流 * @param mediaId * 媒体id * @throws Exception ...
- 音频之WAV格式编码解析
学习目标: 音频之WAV格式编码解析 学习内容: 介绍 WAV是最常见的声音文件格式之一,wav文件分为两个部分,第一个部分是wav头文件,第二个部分是PCM编码的音频数据部分.是微软公司专门为Win ...
- Android 录音机小米商业项目开源代码 AudioRecord录音暂停 播放 Wav格式(音频二)
Android MediaRecorder录音录像 暂停 继续录音 播放 ARM格式(音频一) https://blog.csdn.net/WHB20081815/article/details/88 ...
- 录制wav格式的音频
项目中有面部认证.声纹认证,服务器端要求上传wav格式的音频,所以写了这样一个小demo. 刚刚开始写博客还不知道怎么上传代码,就复制了,嘻嘻 DotimeManage.h @class Dotime ...
- html中怎么写播放音乐格式,HTML+CSS入门 如何实现多浏览器播放wav格式的音频文件...
本篇教程介绍了HTML+CSS入门 如何实现多浏览器播放wav格式的音频文件,希望阅读本篇文章以后大家有所收获,帮助大家HTML+CSS入门. < 使用audioplayer.js 基本上能支持 ...
最新文章
- Tensorflow object detection API 搭建物体识别模型
- CodeIgniter类库
- Linux下创建与解压zip, tar, tar.gz和tar.bz2文件及该文件压缩对比
- 哪个是更早的时间 date_淘宝用户行为分析(漏斗模型+pv,uv,pv/uv,复购率,用户活跃时间段)...
- CMOS图像传感器——TDI CIS
- XP调整禁用页面文件
- flash调用摄像头弹出设置框监听
- 如何判断脸型测试软件,【图】脸型判断 教你非常准确的测试方法_脸型_伊秀美容网|yxlady.com...
- Python实现代码雨效果
- 使用模板文件流形式导出文件破损或xxx中的部分内容有问题。解决
- python求绝对值_python求绝对值
- operands could not be broadcast together with shapes解决方案
- 以下对python程序缩进格式描述错误的是_转载 | python二级选择题与分析(8)
- SCAR:Scalable Consensus Algorithm一种可伸缩共识算法
- 【java】714. 买卖股票的最佳时机含手续费-----动态规划!!!
- linux write函数长度,【转】linux驱动中的write函数
- quark h5 学习
- 除了经典怀旧服,还有什么能重新激活《魔兽世界》
- foxmail发邮件时总提示接收密码错误是怎么回事
- 在Python中如何保存图像