JAVA 利用FFmpegFrame 获取rstp监控视频流截图

JAVA 利用FFmpegFrame 获取rstp监控视频流截图,第1张

JAVA 利用FFmpegFrame 获取rstp监控视频流截图

JAVA 利用FFmpegframeGrabber 获取rstp监控视频流截图工具

       最近在项目内碰见一个需求,需要通过监控视频连接获取视频流截取流内的图片
   并保存的功能,在网上找了各种方案费了些时间,写了个工具类,留作以后参考 

依赖包

	
			org.bytedeco
			javacv-platform
			1.4.4
			pom
		

工具类

package com.alex.project.tool.utils;

import org.bytedeco.javacv.*;
import org.bytedeco.javacv.frame;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

public class VideoUtils {
    private static final Logger log = LoggerFactory.getLogger(VideoUtils.class);

    private static String rtspTransportType = "tcp";
    
    private static int frameRate = 25;
    
    private static int frameWidth =  1920;
    
    private static int frameHeight = 1080;
    
    private static int count=100;
    
	
    public static void getVideoImagePathByRSTP(String path, String picPath) throws Exception {
        //创建rstp流对象
        FFmpegframeGrabber grabber = createGrabber(path);
        try {
            //开启流获取
            grabber.start();
            //由于视频第一帧的流可能为黑屏 为了确保实时能截取到准确图像
            // 故此做了个for循环用于覆盖生成图片
            for (int i=0;i 

工具使用时需注意的点
1.目前测试能解析的视频流有H265,H264的流,不支持Smart…流
2.当碰见无法解析的流时会产生阻塞
3. 截取流内的图片第一帧,不一定是监控图,建议多遍历几次覆盖刷新输出的图片

如果大家有好的想法可以探讨下

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5687643.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存