javacv工具之实现视频截图
原文地址:https://blog.csdn.net/zhou_hai_feng/article/details/81453169
一、项目需要的jar
jar下载地址: https://pan.baidu.com/s/1VjhwDoMpz7Y3IIyz89Sqmw
二、实现代码
package com.caoyn;import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;import javax.imageio.ImageIO;import org.bytedeco.javacpp.opencv_core;
import org.bytedeco.javacpp.opencv_core.IplImage;
import org.bytedeco.javacv.FFmpegFrameGrabber;
import org.bytedeco.javacv.Frame;
import org.bytedeco.javacv.FrameGrabber.Exception;
import org.bytedeco.javacv.Java2DFrameConverter;
import org.bytedeco.javacv.OpenCVFrameConverter;/*** javacv * @author ph**/
public class FrameGrabberKit {public static void main(String[] args) throws Exception {System.out.println(System.getProperty("java.library.path"));try {fetchFrame("E:/BaiduNetdiskDownload/cs01.mp4", "E:/BaiduNetdiskDownload/cs01.jpg");} catch (IOException e) {e.printStackTrace();}}/*** 获取指定视频的帧并保存为图片至指定目录* @param videofile 源视频文件路径* @param framefile 截取帧的图片存放路径* @throws Exception* @throws IOException */public static void fetchFrame(String videofile, String framefile)throws Exception, IOException {FFmpegFrameGrabber ff = new FFmpegFrameGrabber(videofile); ff.start();ff.getAudioChannels();String rotate =ff.getVideoMetadata("rotate");//视频的旋转角度int lenght = ff.getLengthInFrames();int i = 0;Frame f = null;while (i < lenght) {// 过滤前5帧,避免出现全黑的图片,依自己情况而定f = ff.grabFrame();if ((i > 5) && (f.image != null)) {break;}IplImage src = null;if(null !=rotate &&rotate.length() > 1) {OpenCVFrameConverter.ToIplImage converter =new OpenCVFrameConverter.ToIplImage();src =converter.convert(f);f =converter.convert(rotate(src, Integer.valueOf(rotate)));}doExecuteFrame(f, framefile);i++;}}public static IplImage rotate(IplImage src,int angle) {IplImage img = IplImage.create(src.height(),src.width(),src.depth(),src.nChannels());opencv_core.cvTranspose(src,img);opencv_core.cvFlip(img,img,angle);return img;}public static void doExecuteFrame(Frame f,String targetFileName) {if (null ==f ||null ==f.image) {return;}Java2DFrameConverter converter =new Java2DFrameConverter();BufferedImage bi =converter.getBufferedImage(f);File output =new File(targetFileName);try {ImageIO.write(bi,"jpg",output);}catch (IOException e) {e.printStackTrace();}}}
javacv工具之实现视频截图相关推荐
- 视频截图方法 javacv
第一步 导入依赖 <dependency><groupId>org.bytedeco</groupId><artifactId>javacv-platf ...
- 基于javacv的视频截图、转码、提取音频
目录 目标 全量依赖 最小依赖 截图配置类 转码配置类 提取音频配置类 源视频处理结果类 核心类 怎么使用 目标 将所有格式的视频转码为H5能播放的mp4格式,也可以截取任意一帧图片 全量依赖 < ...
- 苹果电脑mp3转gif_Mac/OSX上超级好用的视频剪切,视频截图,视频转换GIF动画的工具...
Support Email: DummyApps@163.com 技术支持邮件:DummyApps@163.com 各位用户朋友,如果您在用这套工具处理视频的时候总是失败,请换一个"目标文件 ...
- C#Winform+WindowsAPI做个剪贴板无缝自动保存器(视频截图利器)
C#Winform+WindowsAPI做个剪贴板无缝自动保存器(视频截图利器) (本文最新代码已上传到GitHub,地址在(https://github.com/bitzhuwei/Clipboar ...
- ffmpeg 截图 java_Java Web 中使用ffmpeg实现视频转码、视频截图
视频网站中提供的在线视频播放功能,播放的都是FLV格式的文件,它是Flash动画文件,可通过Flash制作的播放器来播放该文件.项目中用制作的player.swf播放器. 多媒体视频处理工具FFmpe ...
- 用matlab实现视频截图字幕部分的拼接
这里提供一个在线截图拼接工具:截图拼接工具 - 在线拼接电影字幕截图 我们常在微博及各大论坛.贴吧看到各种视频截图字幕部分的拼接,这广泛应用于一个角色在剧中说的一段特别精彩的话,这对应于 Gif ⇒ ...
- Frammer X for Mac(视频截图软件)
Frammer X Mac版允许您从视频中提取您最喜爱的帧,并且帮助我们对视频进行精确地截图. Mac快捷截图软件介绍 Frammer X Mac版是一款Mac平台的方便快捷的视频截图工具,帮助我们对 ...
- js使用canvas实现视频截图
使用工具 视频播放器API:西瓜播放器 截图:canvas 实现步骤 1. 创建 canvas 元素,创建 canvas 上下文对象 const canvas = document.createEle ...
- java结合ffmpeg实现多个视频截图,按时长平均分割截取固定数量
java结合ffmpeg实现多个视频截图,按时长平均分割截取固定数量 本工具简单介绍 使用方式 效果展示 工具源码 本工具简单介绍 先强调下,本工具可以直接上手使用. 本来ffmpeg就可以支持很多功 ...
最新文章
- java maven mainclass_使用Maven运行Java main的3种方式
- 领导者/追随者(Leader/Followers)模型和半同步/半异步(half-sync/half-async)模型
- 2018-2019-1 20165325 《信息安全系统设计基础》第七周学习总结
- 自动增量字段重新从1开始的方法
- Android之十七 进度条和Hanlder
- shell字符串长度
- TypeError: Cannot set properties of undefined (setting ‘innerHTML‘)
- 用java代码模拟鼠标双击事件
- ArcGIS for Android 100.3的学习与应用(三) 实现地图添加自定义指北针
- 详解线上线下收单业务(1)
- android x86_646,雷电模拟器4.0x86_64位版本即android 7.1 xposed安装
- win10经常无法复制粘贴
- pom文件配置阿里云仓库 转
- OMAP 3 图像信号处理器 (ISP) 驱动
- LeetCode881:救生艇 (C、C++实现)
- SpringBoot项目中自动加载datasourceConfig配置导致启动失败
- DRM框架(vkms)分析(4)----encoder初始化
- OSGearth学习(一)
- SUSE12安装SAP HANA 2.0内存数据库
- mysql 导入 文章_MySQL导入与导出