赞
踩
JAVE (Java Audio Video Encoder) 类库是一个 ffmpeg 项目的 Java 语言封装。开发人员可以使用 JAVE 在不同的格式间转换视频和音频。例如将 AVI 转成 MPEG 动画,等等 ffmpeg 中可以完成的在 JAVE 都有对应的方法。
1、导包
<dependency>
<groupId>com.github.vip-zpf</groupId>
<artifactId>jave</artifactId>
<version>1.1.2</version>
</dependency>
2、实现
private void getVideoInfo(String filePath){ File source = new File(filePath); Encoder encoder = new Encoder(); try(FileInputStream fis = new FileInputStream(source)){ MultimediaInfo mi = encoder.getInfo(source); System.out.println(mi.getVideo()); //视频信息 System.out.println(mi.getAudio()); //音频信息 long duration = mi.getDuration(); int width = mi.getVideo().getSize().getWidth(); int height = mi.getVideo().getSize().getHeight(); String format = mi.getFormat(); int audioChannels = mi.getAudio().getChannels(); String audioDecoder = mi.getAudio().getDecoder(); int audioSamplingRate = mi.getAudio().getSamplingRate(); String videoDecoder = mi.getVideo().getDecoder(); float videoFrameRate = mi.getVideo().getFrameRate(); System.out.println("格式:" + format); System.out.println("时长(秒):" + duration/1000); System.out.println("尺寸:" + width + "×" + height); System.out.println("音频编码:"+ audioDecoder); System.out.println("音频轨道:" + audioChannels); System.out.println("音频采样率:" + audioSamplingRate); System.out.println("视频编码:" + videoDecoder); System.out.println("视频帧率:" + videoFrameRate); //获取视频大小 FileChannel fc= null; fc= fis.getChannel(); BigDecimal fileSize = new BigDecimal(fc.size()); }catch (Exception e) { e.printStackTrace(); } }
此工具在win下测试成功,但我的m1 pro的macos系统下无法使用,查看源码是有根据mac系统来copy ffmpeg-mac对应exe文件,不清楚是系统还是配置的问题。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。