首页 > 其他分享 >xuggle操作视频

xuggle操作视频

时间:2024-12-10 14:44:07浏览次数:4  
标签:视频 container int xuggler IContainer xuggle 操作

xuggle操作视频

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

引入依赖

<dependency>
    <groupId>xuggle</groupId>
    <artifactId>xuggle-xuggler</artifactId>
    <version>5.4</version>
</dependency>

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

xuggle-xuggler-5.4.jar

或者可以使用

<dependency>
  <groupId>org.boofcv</groupId>
  <artifactId>xuggler</artifactId>
  <version>0.23</version>
</dependency>

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

操作示例

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

参考文献

标签:视频,container,int,xuggler,IContainer,xuggle,操作
From: https://www.cnblogs.com/life-time/p/18597328

相关文章

  • 央视频解析播放链接
    importrandomimportreimporttimeimportrequestsfromCrypto.CipherimportAESfromCrypto.Util.Paddingimportpad#fromm3u8download_hecoterimportm3u8downloaddefget_cKey_python(vid,tm,appVer,guid,platform):defget_qn(Vn):Jn=0......
  • shell编程9 重定向操作和不同脚本的互相调用 (泷羽sec)
    声明学习视频来自B站UP主泷羽sec,如涉及侵泷羽sec权马上删除文章。笔记只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负这节课旨在扩大自己在网络安全方面的知识面,了解网络安全领域的见闻,了解学习哪些知识对于我们渗透......
  • 国标GB28181软件LiteGBS国标GB28181-2022平台无法绑定视频源的解决方法?
    在视频监控管理领域,LiteGBS国标GB28181-2022平台以其卓越的性能和兼容性而广受用户青睐。然而,用户在使用该平台时可能会遇到无法绑定视频源的问题,这不仅影响了监控系统的效能,也可能对安全管理造成隐患。这种情况可能是由多种因素引起的,包括配置错误、兼容性问题、网络设置不当或平......
  • EHOME视频平台EasyCVR萤石设备视频接入平台无法启动是什么原因?
    在现代安防监控系统中,EasyCVR视频汇聚平台因其强大的兼容性和灵活的拓展性而广受用户青睐。然而,系统运行过程中可能会遇到各种问题,比如无法启动的情况。本文将详细描述一个具体的案例,并针对该案例进行讲解。以下是详细的排查过程和解决方案。EasyCVR无法启动的原因排查用户反馈......
  • ISUP协议视频平台EasyCVR视频汇聚平台国标GB28181协议接入不能播放是什么原因?
    在现代视频监控系统中,确保视频流的稳定播放是至关重要的。ISUP协议视频平台EasyCVR提供了多种协议支持和配置选项以满足不同用户的需求。然而,用户在使用过程中可能会遇到一些技术问题,比如国标协议接入时无法播放视频的情况。本文将详细介绍如何诊断和解决这类问题。通过这些步骤,......
  • 国标GB28181视频平台EasyCVR视频融合平台:安防监控系统中的无线传输的常见类型
    在现代安防监控系统中,无线传输技术扮演着至关重要的角色,它们不仅提高了监控系统的灵活性和覆盖范围,还增强了数据传输的效率和可靠性。本文将详细介绍安防监控系统中的无线传输技术,包括Wi-Fi、无线网桥、4G/5G、微波传输和卫星传输等常见类型,以及它们在实际应用中的优势和挑战。同......
  • 四步轻松搞定!探索字节最新AnimateDiff-Lightning:高质量视频生成的秘密武器!
    AnimateDiff-Lightning,它是一种快速的文本到视频[生成模型]。它生成视频的速度比原始AnimateDiff快十倍以上,只需4-8的推理就可以生成质量非常高的视频。该模型是从AnimateDiff_SD1.5_v2中提炼出来的。01.介绍该模型采用了渐进式对抗扩散蒸馏技术,恰似可以使用闪电般的快......
  • js的哪些操作可以改变作用域链?
    在JavaScript中,以下操作会改变作用域链:with语句(已弃用,不推荐使用):with语句会将指定对象添加到作用域链的头部。这会改变代码在with块内部查找变量的方式。由于性能问题和难以理解的作用域变化,with语句在严格模式下是被禁止的,并且在非严格模式下也强烈建议避免使用。......
  • Unix/Linux 命令行重定向操作
    `2>/dev/null`是一个常见的Unix/Linux命令行重定向操作,用于将标准错误(stderr)输出重定向到`/dev/null`,即丢弃错误信息而不显示。理解这个表达式需要了解几个概念:文件描述符、重定向和特殊文件`/dev/null`。###1.文件描述符在Unix/Linux系统中,每个打开的文件都与一个......
  • 【Linux探索学习】第二十弹——基础IO:深入理解C语言文件I/O与Linux操作系统中的文件操
    Linux学习笔记:https://blog.csdn.net/2301_80220607/category_12805278.html?spm=1001.2014.3001.5482前言:文件I/O(输入输出)操作是现代计算机系统中的重要组成部分,几乎所有的程序都需要与文件进行交互。无论是读取配置文件、写入日志文件,还是处理用户数据,文件操作都是不可避......