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实现多种格式视频上传、转码、截图、播放、下载等功能附源码(详细)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA异常处理正常的逻辑_JAVA异常
- 下一篇: java获取oracle表空间_Orac