package com.securityControl.system.controller; import com.securityControl.common.core.web.domain.AjaxResult; import com.securityControl.system.utils.WebmUtil; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.File; import java.util.HashMap; import java.util.Map; @RestController @RequestMapping(value = "/sys/video/") @Slf4j public class VideoControl { /** * 前端录像转换 * * @param multipartFile 文件 */ @ApiOperation(value = "转MP4") @PostMapping("/webmToMp4") public AjaxResult webmToMp4(MultipartFile multipartFile, HttpServletRequest request, HttpServletResponse response) { try { WebmUtil webmUtil = new WebmUtil(transferToFile(multipartFile)); Map map = new HashMap<>(16); String convert2Mp4 = null; if (webmUtil.isVideo()) { convert2Mp4 = webmUtil.convert2Mp4(); map.put("titleName", multipartFile.getOriginalFilename().replaceAll(".webm", ".mp4")); map.put("fileName", convert2Mp4); } return AjaxResult.success(map); } catch (Exception e) { e.printStackTrace(); return AjaxResult.error(); } } /** * 文件转换 * * @param multipartFile 文件 * @return 文件 */ public File transferToFile(MultipartFile multipartFile) { File file = null; try { String originalFilename = multipartFile.getOriginalFilename(); assert originalFilename != null; String[] fileName = originalFilename.split("\\."); file = File.createTempFile(fileName[0] + "xxx", "." + fileName[1]); multipartFile.transferTo(file); file.deleteOnExit(); } catch (Exception e) { e.printStackTrace(); } return file; } }