xuggle操作视频


文章目录


xuggle操作视频

有个需求是要读取视频的宽高,找到了Xuggle和FFmpeg两种方式,FFmpeg很强大,但是我并不需要那些功能,所以使用了轻量一点的Xuggle

引入依赖

xml 复制代码
<dependency>
    <groupId>xuggle</groupId>
    <artifactId>xuggle-xuggler</artifactId>
    <version>5.4</version>
</dependency>

可能maven仓库中没有该依赖,可以下载后放到本地仓库或私服

xuggle-xuggler-5.4.jar

或者可以使用

xml 复制代码
<dependency>
  <groupId>org.boofcv</groupId>
  <artifactId>xuggler</artifactId>
  <version>0.23</version>
</dependency>

该依赖中包含有xuggle-xuggler且maven仓库中存在

操作示例

java 复制代码
String fileName = "/Users/zhanghe/Desktop/1.mp4";
IContainer container = IContainer.make();
IContainerFormat format = IContainerFormat.make();

int result = container.open(fileName, IContainer.Type.READ, null);
if(result < 0){
    throw new RuntimeException("不能打开该文件");
}
int num = container.getNumStreams();
for(int i = 0;i<num;i++){
    IStream stream = container.getStream(i);
    IStreamCoder coder = stream.getStreamCoder();
    if(coder.getCodecType() == ICodec.Type.CODEC_TYPE_VIDEO){
        System.out.println(coder.getWidth());
        System.out.println(coder.getHeight());
    }

}

// 还可以获取
// 时长 单位是μs
long duration = container.getDuration();
System.out.println("duration:"+duration);
// 文件大小
long fileSize = container.getFileSize();
System.out.println("fileSize:"+fileSize);
// 码率
int bitRate = container.getBitRate();
System.out.println("bitRate:"+bitRate);

参考文献

相关推荐
D.eL19 分钟前
Spring Boot 集成 MyBatis 全面讲解
spring boot·后端·mybatis
2401_833788051 小时前
Scala的阶乘
开发语言·后端·scala
web135085886351 小时前
VS2022 ASP.NET core Web API 示例代码解释
前端·后端·asp.net
anqi272 小时前
正则表达式
开发语言·后端·scala
我爱写代码?2 小时前
Scala中求斐波那契数列的第n项
后端·算法·scala
悻运2 小时前
Scala的集合
开发语言·后端·scala
三天不学习2 小时前
【过滤器】.NET开源 ORM 框架 SqlSugar 系列
后端·c#·.net·orm·sqlsugar
熬夜加班写代码3 小时前
SpringBoot【九】mybatis-plus之自定义sql零基础教学!
java·spring boot·后端·sql·程序员·mybatis
闲人怪喵4 小时前
/usr/local/go/bin/go: cannot execute binary file: Exec format error
开发语言·后端·golang
customer089 小时前
【开源免费】基于SpringBoot+Vue.JS购物推荐网站(JAVA毕业设计)
java·vue.js·spring boot·后端·spring cloud·java-ee·开源