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得到了处理过的视频信息推送给对方用户

相关文章
|
2月前
|
安全 Java API
Java Web 在线商城项目最新技术实操指南帮助开发者高效完成商城项目开发
本项目基于Spring Boot 3.2与Vue 3构建现代化在线商城,涵盖技术选型、核心功能实现、安全控制与容器化部署,助开发者掌握最新Java Web全栈开发实践。
336 1
|
2月前
|
存储 前端开发 Java
【JAVA】Java 项目实战之 Java Web 在线商城项目开发实战指南
本文介绍基于Java Web的在线商城技术方案与实现,涵盖三层架构设计、MySQL数据库建模及核心功能开发。通过Spring MVC + MyBatis + Thymeleaf实现商品展示、购物车等模块,提供完整代码示例,助力掌握Java Web项目实战技能。(238字)
297 0
|
3月前
|
前端开发 Java API
2025 年 Java 全栈从环境搭建到项目上线实操全流程指南:Java 全栈最新实操指南(2025 版)
本指南涵盖2025年Java全栈开发核心技术,从JDK 21环境搭建、Spring Boot 3.3实战、React前端集成到Docker容器化部署,结合最新特性与实操流程,助力构建高效企业级应用。
1073 1
|
3月前
|
消息中间件 Java Kafka
Java 事件驱动架构设计实战与 Kafka 生态系统组件实操全流程指南
本指南详解Java事件驱动架构与Kafka生态实操,涵盖环境搭建、事件模型定义、生产者与消费者实现、事件测试及高级特性,助你快速构建高可扩展分布式系统。
226 7
|
3月前
|
消息中间件 Java 数据库
Java 基于 DDD 分层架构实战从基础到精通最新实操全流程指南
本文详解基于Java的领域驱动设计(DDD)分层架构实战,结合Spring Boot 3.x、Spring Data JPA 3.x等最新技术栈,通过电商订单系统案例展示如何构建清晰、可维护的微服务架构。内容涵盖项目结构设计、各层实现细节及关键技术点,助力开发者掌握DDD在复杂业务系统中的应用。
585 0
|
3月前
|
JavaScript Java 微服务
现代化 Java Web 在线商城项目技术方案与实战开发流程及核心功能实现详解
本项目基于Spring Boot 3与Vue 3构建现代化在线商城系统,采用微服务架构,整合Spring Cloud、Redis、MySQL等技术,涵盖用户认证、商品管理、购物车功能,并支持Docker容器化部署与Kubernetes编排。提供完整CI/CD流程,助力高效开发与扩展。
461 64
|
3月前
|
JavaScript 安全 前端开发
Java开发:最新技术驱动的病人挂号系统实操指南与全流程操作技巧汇总
本文介绍基于Spring Boot 3.x、Vue 3等最新技术构建现代化病人挂号系统,涵盖技术选型、核心功能实现与部署方案,助力开发者快速搭建高效、安全的医疗挂号平台。
208 3
|
3月前
|
前端开发 Java 数据库
Java 项目实战从入门到精通 :Java Web 在线商城项目开发指南
本文介绍了一个基于Java Web的在线商城项目,涵盖技术方案与应用实例。项目采用Spring、Spring MVC和MyBatis框架,结合MySQL数据库,实现商品展示、购物车、用户注册登录等核心功能。通过Spring Boot快速搭建项目结构,使用JPA进行数据持久化,并通过Thymeleaf模板展示页面。项目结构清晰,适合Java Web初学者学习与拓展。
288 1
|
4月前
|
人工智能 Cloud Native Java
Java 技术栈企业级应用开发全流程
本指南通过构建企业级电商系统,全面解析现代化Java技术栈实战应用。涵盖Spring Boot 3、微服务架构、云原生部署、服务治理、监控可观测性及AI集成,助开发者掌握全流程开发技能,打造高效可扩展的企业级应用。
295 0
Java 技术栈企业级应用开发全流程
|
3月前
|
Java 编译器
Java 17 Switch表达式:更简洁、更强大的流程控制
Java 17 Switch表达式:更简洁、更强大的流程控制

热门文章

最新文章