日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java web转码_web/java实现多种格式视频上传、转码、截图、播放、下载等功能附源码(详细)...

發(fā)布時(shí)間:2024/4/11 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java web转码_web/java实现多种格式视频上传、转码、截图、播放、下载等功能附源码(详细)... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

/**

* @Description:(視頻資源的單獨(dú)上傳的接收)

* @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("進(jìn)入addVideo視頻上傳控制層");

if (file.getSize() != 0) {

//上傳的多格式的視頻文件-作為臨時(shí)路徑保存,轉(zhuǎn)碼以后刪除-路徑不能寫//

String path = "E:/Projectpicture/websiteimages/temp/";

File TempFile = new File(path);

if (TempFile.exists()) {

if (TempFile.isDirectory()) {

System.out.println("該文件夾存在。");

}else {

System.out.println("同名的文件存在,不能創(chuàng)建文件夾。");

}

}else {

System.out.println("文件夾不存在,創(chuàng)建該文件夾。");

TempFile.mkdir();

}

// 獲取上傳時(shí)候的文件名

String filename = file.getOriginalFilename();

// 獲取文件后綴名

String filename_extension = filename.substring(filename

.lastIndexOf(".") + 1);

System.out.println("視頻的后綴名:"+filename_extension);

//時(shí)間戳做新的文件名,避免中文亂碼-重新生成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);

//上傳到本地磁盤/服務(wù)器

try {

System.out.println("寫入本地磁盤/服務(wù)器");

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("========上傳完成,開始調(diào)用轉(zhuǎn)碼工具類=======");

//調(diào)用轉(zhuǎn)碼機(jī)制flv mp4 f4v m3u8 webm ogg放行直接播放,

//asx,asf,mpg,wmv,3gp,mov,avi,wmv9,rm,rmvb等進(jìn)行其他轉(zhuǎn)碼為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); //調(diào)用轉(zhuǎn)碼

System.out.println("=================轉(zhuǎn)碼過程徹底結(jié)束=====================");

}

//獲取轉(zhuǎn)碼后的mp4文件名

String Mp4path = "E://Projectpicture/websiteimages/finshvideo/";

filename2 = filename2+".mp4";

String NewVideopath =Mp4path +filename2;

System.out.println("新視頻的url:"+NewVideopath);

//刪除臨時(shí)文件

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("所有的臨時(shí)視頻文件刪除成功");

// 實(shí)例化用戶類

tb_resource resource = new tb_resource();

//獲取填寫的相關(guān)信息

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"));

//數(shù)據(jù)庫存儲(chǔ)信息

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); //已轉(zhuǎn)碼后的視頻存放地址

// 實(shí)現(xiàn)對(duì)數(shù)據(jù)的更新

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

總結(jié)

以上是生活随笔為你收集整理的java web转码_web/java实现多种格式视频上传、转码、截图、播放、下载等功能附源码(详细)...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。