您好,登錄后才能下訂單哦!
這篇“Springboot如何實現視頻上傳及壓縮功能”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Springboot如何實現視頻上傳及壓縮功能”文章吧。
public AjaxResult videoUploadFile(MultipartFile file){ try { if(null == file || file.isEmpty()){ return AjaxResult.error("文件為空"); } String ossFilePrefix = StringUtils.genUUID(); String fileName = ossFilePrefix +"-"+ file.getOriginalFilename(); String fileurl = AliOssUtils.videoUploadFile(file,fileName); AjaxResult ajax = AjaxResult.success(); ajax.put("fileName", "after_"+fileName); ajax.put("url", fileurl); return ajax; } catch (Exception e) { return AjaxResult.error(e.getMessage()); } }
public static final String uploadVideo(String baseDir, MultipartFile file, String fileName) throws FileSizeLimitExceededException, IOException { File desc = getAbsoluteFile(baseDir, fileName); file.transferTo(desc); String pathFileName = getPathFileName(baseDir, fileName); return pathFileName; }
public static boolean toCompressFile(String convertFile,String targetFile){ try{ /**將視頻壓縮為 每秒15幀 平均碼率600k 畫面的寬與高 為1280*720*/ String cutCmd="ffmpeg -i " + convertFile + " -r 15 -b:v 600k -s 1280x720 "+ targetFile; log.info("cutCmd: " + cutCmd); runCmd(cutCmd); log.info("文件:"+convertFile+" 視屏壓縮完成"); }catch(Exception e){ e.printStackTrace(); log.info("壓縮文件出現異常:"+e.getMessage()); return false; } return true; }
private static String getFileUrl(String path) throws IOException { File file = new File(path); FileInputStream fileInputStream = new FileInputStream(file); MultipartFile multipartFile1 = new MockMultipartFile(file.getName(), file.getName(), ContentType.APPLICATION_OCTET_STREAM.toString(), fileInputStream); uploadFile(multipartFile1, file.getName()); String url = getUrl(file.getName()); return url; }
public static String videoUploadFile(MultipartFile multipartFile, String fileName) throws IOException { //存放路徑 String filePath = FileUploadUtils.uploadVideo(getDefaultBaseDir(), multipartFile, fileName); String convertFile = filePath.replace("/profile", getDefaultBaseDir()).replaceAll("//", "/"); //字符串第一個字符最后出現的下標 int lastIndex = convertFile.lastIndexOf("/"); StringBuilder sb = new StringBuilder(convertFile); String convertFile1 = sb.insert(lastIndex + 1, "after_").toString(); boolean flag = toCompressFile(convertFile, convertFile1); if (!flag) { throw new CustomException("文件壓縮出現異常"); } //讀取壓縮后的文件并上傳至阿里云 String url = getFileUrl(convertFile1); //刪除本地暫存文件 FileUtils.deleteFile(convertFile); log.info("文件:" + convertFile + " 刪除成功"); FileUtils.deleteFile(convertFile1); log.info("文件:" + convertFile1 + " 刪除成功"); return url; }
修改application.yml文件:
spring:
servlet:
mvc:
async:
request-timeout: 2000000
修改application-prd.yml文件:
spring:
servlet:
multipart:
max-file-size: 1024MB
max-request-size: 1024MB
以上就是關于“Springboot如何實現視頻上傳及壓縮功能”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。