java处理视频

文章目录

  • JCodec
  • Xuggle(已被弃用)
  • FFmpeg
  • javacv
  • jave

经过调研,目前市面上主流的有以下几种:

JCodec

优势:

  1. 简单。不提供视频编辑或录制功能。

缺点:

  1. 只能通过File的方式获取视频信息,无法通过url方式获取
  2. 无法转为M3U8格式

使用:

<dependency><groupId>org.jcodec</groupId><artifactId>jcodec</artifactId><version>0.2.5</version>
</dependency>

官方文档:
https://jcodec.org/
其他说明:
已经试过获取视频总时长,宽高,MD5码的功能,有需要的可以自取

public static Long getVideoInfo(String localPath){File file = new File(localPath);try{FrameGrab grab = FrameGrab.createFrameGrab(NIOUtils.readableChannel(file));Picture picture= grab.getNativeFrame();System.out.println("大小:"+file.length());System.out.println("宽,高:"+picture.getWidth() + "x" + picture.getHeight());System.out.println("文件MD5码:"+ DigestUtils.md5DigestAsHex(new FileInputStream(localPath)));Long duration = (long) grab.getVideoTrack().getMeta().getTotalDuration();System.out.println("视频时长(秒):"+ duration);return duration;}catch (IOException e){e.printStackTrace();}catch (JCodecException e){e.printStackTrace();}return null;}

Xuggle(已被弃用)

优势:

  1. 支持视频录制、编辑、转换(在需要将视频从一个格式转换为另一个格式的应用中使用)和播放等功能。
    缺点:
  2. 已经被弃用了,对应的github上的readme文档上第一句话就是弃用,并且推荐了另外一个github项目,但是实际发现,找不到什么实际使用的案例

使用:

<!-- https://mvnrepository.com/artifact/xuggle/xuggle-xuggler -->
<!-- 包下载不了,原因还不清楚 -->
<dependency><groupId>xuggle</groupId><artifactId>xuggle-xuggler</artifactId><version>5.4</version>
</dependency>

官方文档: https://www.xuggle.com/public/documentation/java/api/

FFmpeg

优势:

  1. 运行音频和视频多种格式的录影、转档、流功能。
  2. 也常被调用用来进行视频的转码,录播和直播

缺点:

  1. 需要安装FFmpeg工具

javacv

已经完成开发,如果有其他疑问,可以联系我
优势:

  1. 强大的图像处理。基于OpenCV和其他相关库提供了丰富的图像处理、物体检测、人脸识别等功能。
  2. 它支持多平台运行,提供了对摄像头和相机的支持,还可以与第三方库进行集成。

使用:

<dependency><groupId>org.bytedeco</groupId><artifactId>javacv-platform</artifactId><version>1.5.3</version>
</dependency>
<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.22</version>
</dependency>

介绍:

  1. javacv通过javacpp调用了FFmpeg(C语言中著名的音视频库),并且对FFmpeg复杂的操作进行了封装,把视频分成了两类:帧抓取器(FrameGrabber)和帧录制器(又叫帧推流器,FrameRecoder)
    以及用来存放音视频帧的Frame。

说明:最终决定了用这个来实现需求,代码如下(目前考虑的都是有用本地地址,url也尝试过,可以实现):
获取视频信息

public void getVideoInfo(String localPath) {try {File file = new File(localPath);if (file.length() == 0) {throw new RuntimeException("未发现文件");}FFmpegFrameGrabber grabber = FFmpegFrameGrabber.createDefault(localPath);grabber.start();// 获取视频文件的大小System</

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/12545.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IT工具集项目

网址 https://github.com/CorentinTh/it-tools?tabreadme-ov-file 类似的项目应该有很多&#xff0c;提供各种it人员的小工具

SDN 实现 vxlan隧道

SDN vxlan隧道 官方介绍&#xff1a; VXLAN&#xff08;Virtual eXtensible Local Area Network&#xff0c;虚拟扩展局域网&#xff09;&#xff0c;是由IETF定义的NVO3&#xff08;Network Virtualization over Layer 3&#xff09;标准技术之一&#xff0c;是对传统VLAN协议…

电子商务员考试题库(二)

21&#xff0e;物流活动实际上就是我们常说的储运业。〔〕 22. 电子商务不仅要求物流管理人员既具有较高的物流管理水平&#xff0c;而且也要求物流管理员要具有较 高的电子商务知识&#xff0c;并在实际的动作过程中&#xff0c;能有效地将二者有机地结合在一起。〔 √ 〕 …

环境工程设计专项资质乙级如何升甲级

环境工程设计专项资质乙级升甲级的流程和要求可能因地区和具体规定而有所不同&#xff0c;但一般来说&#xff0c;以下是一些常见的步骤和要求&#xff1a; 前期准备&#xff1a; 资质自查&#xff1a;首先&#xff0c;企业需要确认自身是否已经满足甲级资质的各项基本条件&…

行业早报5.15

1.宏达电&#xff08;HTC&#xff09;4 月营收新台币 1.73 亿元&#xff0c;同比减少 42.4%&#xff1b; 2.TCL 实业 2023 年营收突破 1200 亿元&#xff0c;同比增长 13%&#xff1b; 3.乘联会&#xff1a;初步统计 4 月乘用车市场零售 158.5 万辆&#xff0c;同比下降 2%&…

c语言字符数组的一些操作

获取数组的实际长度和数组的总长度 #include <getopt.h> #include <stdio.h> #include <stdlib.h>#define MAX_PATH 256 char filename[MAX_PATH 5]; int main(int argc, char** argv) {const char* optarg "xuhaitao";strcpy(filename, op…

中途离开项羽投奔刘邦的那些名将谋臣,最后的结果怎么样?

刘邦夺取天下后&#xff0c;说&#xff1a;我自己没什么能力&#xff0c;之所以击败项羽&#xff0c;都是大家的功劳。带兵横扫强敌&#xff0c;我不如韩信&#xff1b;筹措粮草物资&#xff0c;源远不断地给前线供应粮饷&#xff0c;我不如萧何&#xff1b;坐在帐中&#xff0…

地平线旭日X3开发板编译USB网卡驱动 AX88772B

由于使用的激光雷达是网口输出的&#xff0c; 为了不占用X3派已有的网口&#xff0c;接上去了一个绿联的usb网卡&#xff0c; 发现系统没有驱动&#xff0c;所以动手看看能不能自己编译一个 首先lsusb查看一下网卡型号 发现型号是AX88772B&#xff0c;去官网看了一下&#x…

记录用python跑csdn点赞接口

代码如下 # 导入request包 import requests # 请求URL URL3https://blog.csdn.net//phoenix/web/v1/article/like # 入参 data3{articleId:109552419} # 请求头 headers3{cookie:uuid_tt_dd10_30308678820-1713771851124-190368; loginbox_strategy%7B%22taskId%22%3A349%2C%2…

社交时代的象征:探索Facebook的文化影响

在当今社交媒体盛行的时代&#xff0c;Facebook作为其中的巨头之一&#xff0c;不仅是一个网络平台&#xff0c;更是社交文化的象征。本文将深入探讨Facebook在社交时代的文化影响&#xff0c;从用户行为到社会互动&#xff0c;从信息传播到文化交流&#xff0c;揭示其在塑造当…

穿越网络界限:探索NAT IPv4的神秘面纱

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 穿越网络界限&#xff1a;探索NAT IPv4的神秘面纱 前言NAT IPv4概述NAT IPv4的类型NAT IPv4的工作流程NAT IPv4的局限性和挑战 前言 在我们日常的网络使用中&#xff0c;我们或多或少都会遇到NAT&…

华为 2024 届实习校园招聘-硬件通⽤/单板开发——第六套

华为 2024 届实习校园招聘-硬件通⽤/单板开发——第六套 部分题目分享&#xff0c;完整版带答案(有答案和解析&#xff0c;答案非官方&#xff0c;未仔细校正&#xff0c;仅供参考&#xff09;&#xff08;共十套&#xff0c;每套四十题选择题&#xff09;获取&#xff08;WX:…

计算机发展史故事【15】

PC 新霸主 IBM PC 个人电脑&#xff0c;为IBM 公司创造了本世纪最辉煌的业绩。想当初&#xff0c;IBM 公司仰仗PC 电脑的“开放”政策&#xff0c;公开技术标准&#xff0c;鼓励同业仿照&#xff0c;其目的当然是想尽快以PC 机取代苹果电脑的主流地位&#xff0c;占领全球市场。…

2024年合肥市激励培育产教融合型企业专项资金申报材料、条件及时间

2024年合肥市激励培育产教融合型企业专项资金申报材料、条件及时间等内容如下&#xff0c;合肥市的企业单位可以看看&#xff0c;符合条件的可以进行申报 一、支持范围及重点 本项目资金主要支持产教融合型企业优质校企合作项目(典型项目),鼓励企业深度参与职业院校专业建设、…

如何优化Unity发布iOS编译出来的Framework文件过大问题

1&#xff09;如何优化Unity发布iOS编译出来的Framework文件过大问题 2&#xff09;Scriptable Build Pipeline打包Scritptable Object报错 3&#xff09;APK在OPPO上报编译错误 4&#xff09;如何在Sequence中模拟我的蓝图 这是第385篇UWA技术知识分享的推送&#xff0c;精选了…

Java(二)——方法与数组

文章目录 方法与数组方法方法的定义方法的执行实参与形参方法重载方法签名 数组创建与初始化数组的类型数组应用转字符串排序查找&#xff08;二分&#xff09;填充拷贝判等 二维数组创建及初始化遍历本质和内存分布不规则二维数组 方法与数组 方法 什么是方法&#xff1f; …

C++学习笔记(20)——模板的进阶与继承(一)

系列文章 http://t.csdnimg.cn/u80hL 目录 系列文章[TOC](目录) 一、定义二、迭代器——六大组件之一封装的作用封装要注意的点迭代器封装设计很巧妙迭代器适配器 一、定义 访问容器有时使用原生指针&#xff0c;有时迭代器为了避免复杂化统一使用迭代器。 容器与算法不分离&…

Linux-vi、vim

使用Xshell远程登录到Linux主机进行操作 命令行不用全部掌握&#xff0c; 一般编辑大文件&#xff0c;比较复杂的情况下&#xff0c; 我们还是使用Xftp工具&#xff0c; down下来再恢复回去。

导航【仿牛客网社区论坛项目】

导航【仿牛客网论坛项目】 前言版权导航【仿牛客网社区论坛项目】最后 前言 2024-5-14 11:08:00 这个是找寒假实习的时候&#xff0c;牛客网中学习的项目。 原来准备再总结一下&#xff0c;然后就没后续了。 以下内容源自《【创作模板】》 仅供学习交流使用 版权 禁止其他…

AI绘画入门指南:完备的AI绘画学习路线,十分钟把你领进门

2024新风口大揭秘&#xff01;不是直播&#xff0c;也不是短视频&#xff0c;而是AI绘本&#xff01; 有一句话说得好&#xff1a;站在风口上&#xff0c;猪都能飞起来&#xff01;想要用AI拿到大结果&#xff0c;一定要选对大的垂类赛道。 那么&#xff0c;为什么是AI绘本呢…