Python 官方文档:入门教程 => 点击学习
目录简述环境依赖Maven依赖FFmpeg依赖工具类代码总结简述 该工具类主要是为了将各类音频转为wav标准格式,其中可以调节采样率、声道数等指标。主要是使用ffmpeg命令进行转换
该工具类主要是为了将各类音频转为wav标准格式,其中可以调节采样率、声道数等指标。主要是使用ffmpeg命令进行转换。
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>javacv-platfORM</artifactId>
<version>1.5.5</version>
</dependency>
这个包是个全能包,很大,具体可以自己查查它的作用。
这里要做两点说明:
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;
@Slf4j
public class AudioTransforWavUtils {
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("音频转换失败失败");
}
}
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格式。 具体的采样率、声道等,可以按照自己的需求配置或者变量化。
没什么好总结的,整就完了。
到此这篇关于java 音频转为wav格式标准音频的文章就介绍到这了,更多相关java 音频转为wav格式内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: java 音频转换wav格式标准音频的操作
本文链接: https://lsjlt.com/news/155368.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0