java web转码_web/java实现多种格式视频上传、转码、截图、播放、下载等功能附源码(详细)...
/**
* @Description:(视频资源的单独上传的接收)
* @param:@param request
* @param:@param response
* @param:@param session
* @param:@return
* @return:ModelAndView
* @author:Zoutao
* @date:2018-6-12
* @version:V1.0
*/
@RequestMapping(value = "/addVideo")
public ModelAndView uploadflie_Video(
@RequestParam("file") CommonsMultipartFile file,
HttpServletRequest req, HttpServletRequest request) {
System.out.println("进入addVideo视频上传控制层");
if (file.getSize() != 0) {
//上传的多格式的视频文件-作为临时路径保存,转码以后删除-路径不能写//
String path = "E:/Projectpicture/websiteimages/temp/";
File TempFile = new File(path);
if (TempFile.exists()) {
if (TempFile.isDirectory()) {
System.out.println("该文件夹存在。");
}else {
System.out.println("同名的文件存在,不能创建文件夹。");
}
}else {
System.out.println("文件夹不存在,创建该文件夹。");
TempFile.mkdir();
}
// 获取上传时候的文件名
String filename = file.getOriginalFilename();
// 获取文件后缀名
String filename_extension = filename.substring(filename
.lastIndexOf(".") + 1);
System.out.println("视频的后缀名:"+filename_extension);
//时间戳做新的文件名,避免中文乱码-重新生成filename
long filename1 = new Date().getTime();
filename = Long.toString(filename1)+"."+filename_extension;
//去掉后缀的文件名
String filename2 = filename.substring(0, filename.lastIndexOf("."));
System.out.println("视频名为:"+filename2);
//源视频地址+重命名后的视频名+视频后缀
String yuanPATH =(path+filename);
System.out.println("视频的完整文件名1:"+filename);
System.out.println("源视频路径为:"+yuanPATH);
//上传到本地磁盘/服务器
try {
System.out.println("写入本地磁盘/服务器");
InputStream is = file.getInputStream();
OutputStream os = new FileOutputStream(new File(path, filename));
int len = 0;
byte[] buffer = new byte[2048];
while ((len = is.read(buffer)) != -1) {
os.write(buffer, 0, len);
}
os.close();
os.flush();
is.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("========上传完成,开始调用转码工具类=======");
//调用转码机制flv mp4 f4v m3u8 webm ogg放行直接播放,
//asx,asf,mpg,wmv,3gp,mov,avi,wmv9,rm,rmvb等进行其他转码为mp4
if (filename_extension.equals("avi") || filename_extension.equals("rm")
|| filename_extension.equals("rmvb") || filename_extension.equals("wmv")
|| filename_extension.equals("3gp") || filename_extension.equals("mov")
||filename_extension.equals("flv") || filename_extension.equals("ogg")
) {
ConverVideoTest c = new ConverVideoTest();
c.run(yuanPATH); //调用转码
System.out.println("=================转码过程彻底结束=====================");
}
//获取转码后的mp4文件名
String Mp4path = "E://Projectpicture/websiteimages/finshvideo/";
filename2 = filename2+".mp4";
String NewVideopath =Mp4path +filename2;
System.out.println("新视频的url:"+NewVideopath);
//删除临时文件
File file2 = new File(path);
if (!file2.exists()) {
System.out.println("没有该文件");
}
if (!file2.isDirectory()) {
System.out.println("没有该文件夹");
}
String[] tempList = file2.list();
File temp = null;
for (int i = 0; i < tempList.length; i++) {
if (path.endsWith(File.separator)) {
temp = new File(path + tempList[i]);
} else {
temp = new File(path + File.separator + tempList[i]);
}
if (temp.isFile() || temp.isDirectory()) {
temp.delete();//删除文件夹里面的文件
}
}
System.out.println("所有的临时视频文件删除成功");
// 实例化用户类
tb_resource resource = new tb_resource();
//获取填写的相关信息
String title = request.getParameter("title");
String writer = request.getParameter("writer");
int state = Integer.parseInt(request.getParameter("state"));
String time = request.getParameter("time");
int clicks = Integer.parseInt(request.getParameter("clicks"));
int grade = Integer.parseInt(request.getParameter("grade"));
String subclass = request.getParameter("subclass");
int uid = Integer.parseInt(request.getParameter("uid"));
//数据库存储信息
resource.setTitle(title);
resource.setWriter(writer);
resource.setTime(time);
resource.setClicks(clicks);
resource.setGrade(grade);
resource.setSubclass(subclass);
resource.setState(state);
resource.setUid(uid);
resource.setSuffix(filename2);
resource.setUrl(NewVideopath); //已转码后的视频存放地址
// 实现对数据的更新
int n = 0;
n = tb_resourceService.insertResource(resource);
if (n != 0) {
return new ModelAndView("back/public/success").addObject(
"notice", "resourceList?uid=" + uid
+ "&grade=-1&state=-1&subclass=" + subclass);
} else {
return new 2018-08-16 19:00
java web转码_web/java实现多种格式视频上传、转码、截图、播放、下载等功能附源码(详细)...相关推荐
- web/java实现多种格式视频上传、转码、截图、播放、下载等功能附源码(详细)
web /java 实现多种格式视频上传.转码.播放.下载 1.前言 前段时间一直在做一个生物资源共享平台,采用SSM框架技术,其中涉及一个模块,是关于视频资源的播放. 本来不是很大的问题,但是无奈用 ...
- srs可以用java开发吗,为SRS流媒体服务器添加HLS加密功能(附源码)
#为SRS流媒体服务器添加HLS加密功能(附源码)# 之前测试使用过nginx的HLS加密功能,会使用到一个叫做nginx-rtmp-module的插件,但此插件很久不更新了,网上搜索到一个中国制造的 ...
- Qt利用avilib实现录屏功能_openlayers6结合geoserver利用WFS服务实现图层编辑功能(附源码下载)...
内容概览 1.openlayers6结合geoserver利用WFS服务实现图层编辑功能 2.源代码demo下载 效果图如下: 本篇主要是参照openlayers6结合geoserver利用WFS服务 ...
- arcgis xml 下载 切片_openlayers6结合geoserver利用WFS服务实现图层编辑功能(附源码下载)...
内容概览 1.openlayers6结合geoserver利用WFS服务实现图层编辑功能 2.源代码demo下载 效果图如下: 本篇主要是参照openlayers6结合geoserver利用WFS服务 ...
- VC++利用笔记本自带摄像头扫二维码功能(附源码demo)
VC++开发常用功能一系列文章 (欢迎订阅,持续更新...) 第8章:VC++利用笔记本自带摄像头扫二维码功能(附源码demo) 源代码demo已上传到百度网盘:永久生效 ,代码实现了打开笔记本 ...
- html实现视频网站,仿爱奇艺,搜狐,迅雷看看(附源码)
文章目录 1.功能模板 1.1 仿爱奇艺 1.2 仿搜狐视频 1.3 仿迅雷看看 1.4 视频播放 1.5 影视公司官网 2.效果和源码 2.1 源代码 2.2 模板目录 源码下载 作者:xcLeig ...
- 曝肝三天,两千行Python代码,制作B站视频下载工具(附源码)
曝肝三天,两千行Python代码,制作B站视频下载工具(附源码) 文章目录 一.准备工作 二.预览 1.启动 2.解析 3.下载中 4.下载完成 5.结果 三.设计流程 1.bilibili_vide ...
- android flv 编码器,Android 音视频深入 十七 FFmpeg 获取 RTMP 流保存为 flv (附源码下载)...
Android 音视频深入 十七 FFmpeg 获取 RTMP 流保存为 flv (附源码下载) 项目地址 https://github.com/979451341/RtmpSave 这个项目主要代码 ...
- 疯狂python讲义视频 百度云-疯狂Python讲义 PDF高清版附源码
内容简介 本书全面,深入地介绍了Python编程的相关内容,大致可分为四个部分.*系统部分介绍了Python的基本语法结构,函数编程,类和对象,模块和包,异常处理等: 第二部分主要介绍Python常用 ...
最新文章
- jquery实现返回顶部按钮和scroll滚动功能[带动画效果] 转载
- 【转】adobe acrobat pro修改pdf文字
- css样式之background详解(格子效果)
- 第十六届智能车竞赛比赛进行中 - 参赛队员提出的问题
- SSL/TLS抓包出现提示Ignored Unknown Record
- python.freelycode.com-不完整的Http读取和Python中的Requests库
- Android Studio经常使用配置及使用技巧(二)
- asp.net core新特性(1):TagHelper
- 第一个express app 详细步骤
- php: 0跟字符串做比较永远是true。 php大bug。
- 【开发工具】之windows下通过批处理编译VS工程
- sublime怎么配置python环境_在Sublime Editor中配置Python环境的详细教程
- 分布式和微服务区别_分布式、集群、微服务到底有啥区别?
- Excel表格中如何将文本型改为数值型数据
- lucas–kanade_异常检测常用光流法量化对比:Farneback/Horn-Schunck / Lucas–Kanade
- linux下的清屏方法
- Linux配置pip清华镜像源
- ohci之usb_submit_urb
- 仿迅雷播放器遇到的字符串处理函数
- 用 Python 写了一个表白神器,照片隐藏表白话语!