java对web视频的简单处理流程

简介: java对web视频的简单处理流程

一、web端



借助浏览器的webrtc功能获取视频流,然后进行base64转码发往服务端


二、服务端



2.1首先保存为文件,保存到本地

2.2借助于ffmpeg提取音频和视频信息


-c:指定编码器
-c copy:直接复制,不经过重新编码(这样比较快)
-c:v:指定视频编码器
-c:a:指定音频编码器
-i:指定输入文件
-an:去除音频流
-vn: 去除视频流
-preset:指定输出的视频质量,会影响文件的生成速度,有以下几个可用的值 ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow。
-y:不经过确认,输出时直接覆盖同名文件
ffmpeg -i test2.webm -vn -vcodec copy test2.m4a
ffmpeg -i test.mp4 -f mp3 -vn -c copy test.mp3
复制代码


2.3利用opencv的VideoWriter生成视频流功能对视频的每帧进行处理(例如对视频流的每帧图片进行人脸检测)


VideoCapture capture=new VideoCapture();
capture.open(targetPath);//1 读取视频文件的路径
Size size = new Size(capture.get(Videoio.CAP_PROP_FRAME_WIDTH),
                     capture.get(Videoio.CAP_PROP_FRAME_HEIGHT));
VideoWriter  vw=new VideoWriter(catalogue+fileName+"1"+type,
                   VideoWriter.fourcc('V', 'P', '0', '9'),                           //capture.get(Videoio.CAP_PROP_FPS),
                    30,
                    size,
                    true);
if(!capture.isOpened()){
   logger.info("读取视频文件失败!");
   return null;
}
Mat video=new Mat(); 
int i=0;
long starTime=System.currentTimeMillis();
while (capture.isOpened() && capture.read(video)) {
      logger.info("当前" + (i++));
      //对每帧的图片进行处理
      Mat current = ImageUtil.getVideoFace(video);
      if(null==current) {
  break;
      }
       vw.write(current);
}
        capture.release();
      vw.release();
复制代码


2.4最后对重新生成的视频和上面提取的音频进行合成


ffmpeg -i test2.wav -i  test21.avi test22.webm
复制代码


2.5得到了处理过的视频信息推送给对方用户

相关文章
|
21天前
|
监控 JavaScript 前端开发
《理解 WebSocket:Java Web 开发的实时通信技术》
【4月更文挑战第4天】WebSocket是Java Web实时通信的关键技术,提供双向持久连接,实现低延迟、高效率的实时交互。适用于聊天应用、在线游戏、数据监控和即时通知。开发涉及服务器端实现、客户端连接及数据协议定义,注意安全、错误处理、性能和兼容性。随着实时应用需求增加,WebSocket在Java Web开发中的地位将更加重要。
|
Java 数据安全/隐私保护
java实现加密电话号码,有具体的加密流程注释
java实现加密电话号码,有具体的加密流程注释
21 0
|
1月前
|
人工智能 监控 算法
java智慧城管源码 AI视频智能分析 可直接上项目
Java智慧城管源码实现AI视频智能分析,适用于直接部署项目。系统运用互联网、大数据、云计算和AI提升城市管理水平,采用“一级监督、二级指挥、四级联动”模式。功能涵盖AI智能检测(如占道广告、垃圾处理等)、执法办案、视频分析、统计分析及队伍管理等多个模块,利用深度学习优化城市管理自动化和智能化,提供决策支持。
223 4
java智慧城管源码 AI视频智能分析 可直接上项目
|
1天前
|
设计模式 存储 前端开发
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式
|
2天前
|
Java
Java基础知识整理,驼峰规则、流程控制、自增自减
在这一篇文章中我们总结了包括注释、关键字、运算符的Java基础知识点,今天继续来聊一聊命名规则(驼峰)、流程控制、自增自减。
34 3
|
10天前
|
Web App开发 Java 应用服务中间件
【Java Web】在 IDEA 中部署 Tomcat
【Java Web】在 IDEA 中部署 Tomcat
|
19天前
|
安全 前端开发 Java
Java Web开发知识点学习总结
Java Web开发涉及Java基础、Servlet、JSP、数据库操作(SQL+JDBC)、MVC设计模式、Spring框架、Hibernate ORM、Web服务(SOAP&RESTful)、安全认证(HTTP Basic/Digest/OAuth)及性能优化(缓存、异步、负载均衡)。
18 3
|
22天前
|
XML JSON JavaScript
使用JSON和XML:数据交换格式在Java Web开发中的应用
【4月更文挑战第3天】本文比较了JSON和XML在Java Web开发中的应用。JSON是一种轻量级、易读的数据交换格式,适合快速解析和节省空间,常用于API和Web服务。XML则提供更强的灵活性和数据描述能力,适合复杂数据结构。Java有Jackson和Gson等库处理JSON,JAXB和DOM/SAX处理XML。选择格式需根据应用场景和需求。
|
23天前
|
前端开发 安全 Java
使用Java Web框架:Spring MVC的全面指南
【4月更文挑战第3天】Spring MVC是Spring框架的一部分,用于构建高效、模块化的Web应用。它基于MVC模式,支持多种视图技术。核心概念包括DispatcherServlet(前端控制器)、HandlerMapping(请求映射)、Controller(处理请求)、ViewResolver(视图解析)和ModelAndView(模型和视图容器)。开发流程涉及配置DispatcherServlet、定义Controller、创建View、处理数据、绑定模型和异常处理。
使用Java Web框架:Spring MVC的全面指南
|
24天前
|
Java
销售业务管理系统【Web系统】(Java课设)
销售业务管理系统【Web系统】(Java课设)
13 5