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);

参考文献

相关推荐
国服第二切图仔39 分钟前
Rust开发之使用panic!处理不可恢复错误
开发语言·后端·rust
جيون داد ناالام ميづ1 小时前
Spring Boot 核心原理(一):基础认知篇
java·spring boot·后端
南囝coding1 小时前
现代Unix命令行工具革命:30个必备替代品完整指南
前端·后端
夏之小星星2 小时前
Springboot结合Vue实现分页功能
vue.js·spring boot·后端
唐僧洗头爱飘柔95272 小时前
【SpringCloud(8)】SpringCloud Stream消息驱动;Stream思想;生产者、消费者搭建
后端·spring·spring cloud·设计思想·stream消息驱动·重复消费问题
韩立学长2 小时前
【开题答辩实录分享】以《自动售货机刷脸支付系统的设计与实现》为例进行答辩实录分享
vue.js·spring boot·后端
cj6341181503 小时前
DBeaver连接本地MySQL、创建数据库表的基础操作
java·后端
程序员爱钓鱼4 小时前
Python编程实战—面向对象与进阶语法 | 属性与方法
后端·python·ipython
程序员爱钓鱼4 小时前
Python编程实战——面向对象与进阶语法 | 构造函数与析构函数
后端·python·ipython
逻极4 小时前
Rust之结构体(Structs):构建自定义数据类型
开发语言·后端·rust