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

参考文献

相关推荐
shiwulou114 分钟前
神经网络和深度学习 第三周:浅层神经网络(一)正向传播
后端
IT_陈寒23 分钟前
Redis实战精要:5种高频使用场景与性能优化全解析|得物技术
前端·人工智能·后端
疯狂的程序猴31 分钟前
iOS 证书如何创建,从能生成到能长期使用
后端
Coder_Boy_32 分钟前
【人工智能应用技术】-基础实战-小程序应用(基于springAI+百度语音技术)智能语音控制-单片机交互代码
java·人工智能·后端·嵌入式硬件
IMPYLH36 分钟前
Lua 的 OS(操作系统) 模块
开发语言·笔记·后端·游戏引擎·lua
南囝coding1 小时前
Node.js 原生功能狂飙,15 个热门 npm 包要失业了
前端·后端
a努力。1 小时前
国家电网Java面试被问:二叉树的前序、中序、后序遍历
java·开发语言·后端·面试
疯狂的程序猴1 小时前
Web 抓包在浏览器、代理、设备侧等不同层面的作用
后端
lalala_Zou1 小时前
小米日常实习一面
java·后端·面试
算法与双吉汉堡1 小时前
【短链接项目笔记】Day3 用户模块剩余部分
java·redis·后端