java音频之ffmpeg

编程入门 行业动态 更新时间:2024-10-18 08:29:08

java<a href=https://www.elefans.com/category/jswz/34/1768490.html style=音频之ffmpeg"/>

java音频之ffmpeg

系列文章目录

第一章 语音处理——转wav类型
第二章 java wav音頻文件播放


文章目录

  • 系列文章目录
  • 前言
  • 一、引入javacv-platform包都包含什么
  • 二、如何获取本地ffmpeg执行器
  • 总结


前言

如第一章 语音处理——转wav类型 所写,可以有效实现语音文件转换,但在打包后发现,包很大;所以该章就记录下我自己处理过程;


一、引入javacv-platform包都包含什么

在maven中引入

		<dependency><groupId>org.bytedeco</groupId><artifactId>javacv-platform</artifactId><version>1.5.5</version></dependency>

依赖下载完毕,会发现,这个jar包包含opencv、linux、windows、mac等系统的jar,所以在引入的时候有两种方案:
方案一:只取需要的jar,如下引入

<dependency><groupId>org.bytedeco</groupId><artifactId>javacpp</artifactId><version>1.5.5</version></dependency><dependency><groupId>org.bytedeco</groupId><artifactId>ffmpeg</artifactId><version>4.3.2-1.5.5</version></dependency><dependency><groupId>org.bytedeco</groupId><artifactId>ffmpeg</artifactId><version>4.3.2-1.5.5</version><classifier>windows-x86_64</classifier><scope>provided</scope><exclusions><exclusion><groupId>org.bytedeco</groupId><artifactId>javacpp</artifactId></exclusion></exclusions> 
</dependency>

但这种方案你会发现,打包成功后,ffmpeg功能并不能使用;
方案二就是下面文章中记录的;

二、如何获取本地ffmpeg执行器

在第一章中有这么一段

 // 获取本地ffmpeg执行器String ffmpeg = Loader.load(org.bytedeco.ffmpeg.ffmpeg.class);

那这段看注解,也就是获取本地ffmpeg,但是稍微详细的说,在load ffmpeg.class时,ffmpeg会在本地加载缓存文件夹,包含了ffmpeg运行中的exe程序,在这个地方获取的执行器正是该ffmpeg.exe路径,如此你会想到什么,在我的处理过程中,开始为了缩减包的大小,单纯的引入所需要的jar,这样导致打包后功能并不能使用,但本地可以,所以就发现,打包后无法获取执行器地址;
那么,直接拿缓存文件使用呢?结果是成功的;那我就采用这种方案,将本地运行时生成的缓存文件夹,直接使用,放置在jar指定的位置,获取ffmpeg就获取该地址;

总结

在做音频文件处理中发现很多可以使用的都是c++,这也就说明java在引用的时候,大多数都是load 然后获取exe,那么直接的方案我们直接指定exe路径试试,也是一种好方法。柯南说过,每条bug都有迹可寻。

更多推荐

java音频之ffmpeg

本文发布于:2024-02-26 18:07:34,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1703405.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:音频   java   ffmpeg

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!