电脑需安装 ffmpeg 下载地址FFmpeg

核心代码如下,文末包含示例项目

package com.ruoyi.common.utils.mp3;import com.ruoyi.framework.config.RuoYiConfig;public class Mp3Utils {/*** ffmpeg执行路径*/private static String ffmpegExePath = "E:\\soft\\development\\windows\\ffmpeg-5.1.2-full_build\\ffmpeg-5.1.2-full_build\\bin\\ffmpeg.exe";public static void main(String[] args) {String start = "00:00:08.551";String end = "00:01:04.023";String input = "D:\\FFOutput\\2023-01-11\\2023-01-11.aac";String out = "D:\\FFOutput\\2023-01-11\\out.aac";mp3Cut(start, end, input, out);//        String video = "C:\\Users\\Lenovo\\Downloads\\Video\\2023-01-11.ts";
//        videoToMp3(video);}/*** 切割mp3 文件* @param start* @param end* @param input* @param out*/public static void mp3Cut(String start, String end, String input, String out) {//E:\ffmpeg\bin\ffmpeg.exe -i E:/tlb/365.mp3 -ss 00:00:08.551 -to 00:01:04.023 -y E:/tlb/365/5.mp3String cmd = ffmpegExePath + " -i " + input + " -ss " + start + " -to " + end + " -y " + out;try {Runtime runtime = Runtime.getRuntime();Process exec = runtime.exec(cmd);exec.waitFor();exec.destroy();} catch (Exception e) {e.printStackTrace();}}/*** 将秒表示时长转为00:01:02.500格式,精确到毫秒** @param time 秒数时长* @return 字符串格式时长*/public static String parseTimeToString(String time) {String[] times = time.split("\\.");Integer second = Integer.valueOf(times[0]);String nx = "000";if (times.length > 1) {nx = times[1];int length = nx.length();if (length < 3) {nx += "0";} else if (length > 3) {nx = nx.substring(0, 3);}}return secondToTime(second) + "." + nx;}//整数秒转换,精确到秒private static String secondToTime(int seconds) {if (seconds < 0) {throw new IllegalArgumentException("Seconds must be a positive number!");} else {int hour = seconds / 3600;int other = seconds % 3600;int minute = other / 60;int second = other % 60;StringBuilder sb = new StringBuilder();if (hour < 10) {sb.append("0");}sb.append(hour);sb.append(":");if (minute < 10) {sb.append("0");}sb.append(minute);sb.append(":");if (second < 10) {sb.append("0");}sb.append(second);return sb.toString();}}/*** 切割mp3 文件* @param video*/public static void videoToMp3(String video) {int i = video.lastIndexOf(".");String out = video.substring(0,i);out = out+ ".mp3";System.out.println(out);String cmd = ffmpegExePath + " -i "+video+" -threads 10 -preset ultrafast  -f mp3 "+out+" ";try {Runtime runtime = Runtime.getRuntime();Process exec = runtime.exec(cmd);exec.waitFor();exec.destroy();} catch (Exception e) {e.printStackTrace();}}public static String getAbsPath(String path){path =  RuoYiConfig.getProfile() + path.replace("/profile","");return path;}}

示例项目仓库地址:https://gitee.com/weifuqiang/ffmpeg-test/tree/master

java 截取mp3/aac相关推荐

  1. Java处理MP3资料

    解码转换   Xuggler http://www.xuggle.com/xuggler/ , 项目当前版本5.4,持续更新中. Xuggler提供了利用Java来解压缩,修改和重新压缩任何媒体或流文 ...

  2. java截取图片-设置方位+设置大小

    java截取图片-设置方位+设置大小 package com.onegrid.darj.test; import java.awt.Rectangle;   import java.awt.image ...

  3. JAVA返回指定字符串的长度,Java截取指定字节长度的字符串

    在实际的项目中,我们后台的数据库是根据指定编码(如GBK)保存数据的,为防止操作数据库时,因字段值长度超过数据库定义的长度,须在JAVA甚至JS层面做长度的校验控制,如数据库定义的长度是varchar ...

  4. Java 截取反斜杠--java使用split拆分特殊字符

    orgn link : http://blog.csdn.net/scy411082514/article/details/7987852 Java 截取反斜杠 replaceAll和split (& ...

  5. (十七)用JAVA编写MP3解码器——解码Layer1

    2019独角兽企业重金招聘Python工程师标准>>> Layer1的编码更简单,解码端的代码也就比Layer2还简单不少.网络上还有部分老歌是采用Layer2压缩的,但Layer1 ...

  6. java jmf mp3,java播发mp3(不用jmf)

    java播放mp3(不用jmf) 帮一个小妹写一个播放mp3的代码,对于java不熟的我来说可真折腾. 网上好多代码都是用jmf的,需要单独安装,除了jar包,还依赖很多dll文件. 找了又找,终于找 ...

  7. 使用Java实现MP3音乐播放

    使用Java实现MP3音乐播放 Java SE自带的API中缺少对MP3格式音频文件的支持,想要使用Java代码播放MP3需要第三方库.JLayer-MP3 library是一款Java语言编写的开源 ...

  8. (十八)用JAVA编写MP3解码器——迷你播放器

    2019独角兽企业重金招聘Python工程师标准>>> 1.定义解码一帧的接口   ILayer123 Layer1.Layer2和Layer3这三个类都实现了ILayer123的d ...

  9. Java 播放MP3

    Java 播放MP3 的六种方法 1 使用官方的解决方案 2 使用第三方解决方案 (jl1.0.jar) 3 使用第三方解决方案 (jmp123.jar) 4 使用自定义解决方案(推荐) 4.1 依赖 ...

最新文章

  1. 2022年想成为软件测试工程师,这个学习路线收藏起来
  2. apk私钥_apksigner  |  Android 开发者  |  Android Developers
  3. idea spring 中没有标识_Spring 优雅的国际化实现
  4. Elasticsearch的功能、使用场景以及特点
  5. jupyter notebook_远程终端访问(win11 / ECS云服务器)
  6. bzoj 3224 Tyvj 1728 普通平衡树
  7. Android单击、长按获取当前触点坐标下(TextView)文字字符
  8. android 打电话
  9. 架构设计 | 分布式系统调度,Zookeeper集群化管理
  10. linux网络流量监测工具,linux下网络流量监控工具
  11. @class与#import
  12. 使用lombok注解,在代码编写过程中可以调用到get/set方法,但在编译的时候报错找不到get/set方法
  13. 云计算机平台 优势,云计算平台有哪些优势
  14. 单片机学习(点阵LED及多模块同时实现)
  15. Windows使用批处理文件更改指定目录下的文件名(含序号)
  16. asp万年历简易版本
  17. PC常见故障及解决思路汇总(网络方面)
  18. C语言利用顺序表求两个集合的差集
  19. 【转】如约而至:微信自用的移动端IM网络层跨平台组件库Mars已正式开源
  20. 异常:Handling ClientRegistrationException error: No client with requested id: null

热门文章

  1. 全身三维人体扫描仪信息汇总
  2. 金税三期很可怕?好会计对症下药!
  3. 编写程序,输入一个较小的实数deta,利用e=1+1/1(嘿哈)+1/2(嘿哈)+1/3(嘿哈)+⋯+1/n(嘿哈)计算e的近似值,直到最后一项的绝对值小于deta时为止,输出此时e的近似值。
  4. [SSD固态硬盘保养 2] 电脑固态硬盘日常使用妙招:4K 对齐
  5. Emwin常用API函数
  6. 输出Tecplot格式的数据文件
  7. 国内又一款开源软件(Wall),可搭建个人照片墙
  8. uniapp生成小程序码仿商品小程序码跳转到商品详情
  9. [2021CCPC威海热身赛] Number Theory (打表 推公式)
  10. python词云图库一般装多久_Python数据可视化:词云库的讲解和如何制作词云