2021SC@SDUSC-multimedia-utils-一款java后端的图片、视频处理工具jar包
作者:互联网
目录
注入 视频处理类FFmpegUtils 以及 图片处理类 ImageMagickUtils
2021SC@SDUSC
项目名称:multimedia-utils
博客二
在上篇博客的最后,我们给出了配置时的具体操作,下面我们具体看一下。
配置
yml 配置上传文件的临时路径
spring: servlet: multipart: # 是否支持 multipart 上传文件 enabled: true # 最大支持文件大小 max-file-size: 10MB # 最大支持请求大小 max-request-size: 10MB # 上传文件的临时目录 location: E:/tomcat-temp
在代码中我们对具体操作进行了注释,即支持multipart上传文件操作。同时设定了最大支持文件大小和支持请求大小,同时设定了上传文件的临时目录。当然这些我们可以在后期进行修改操作。
注入 视频处理类FFmpegUtils 以及 图片处理类 ImageMagickUtils
import com.whty.zdxt.multimedia.util.FFmpegUtils; import com.whty.zdxt.multimedia.util.ImageMagickUtils; import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Component; @Component public class MultimediaUtilsConfig { /** * 视频处理工具,因为所有压缩任务需要排队进行,所以FFmpegUtils需要是单例的,FFmpegUtils实例交由spring管理就为单例的 */ @Bean public FFmpegUtils fFmpegUtilsImpl() { return new FFmpegUtils(); } /** * 图片处理工具 */ @Bean public ImageMagickUtils imageMagickUtils() { return new ImageMagickUtils(); } }
视频处理类FFmpegUtils 以及图片处理类 ImageMagickUtils我们已经放在整个代码文件中,在后期我们给出整个代码文件时会给出详细解释。下面我们来看一下导入Java包的操作。在我们给出代码的具体注释后,更加容易看懂一些。由于视频处理有很多的压缩任务,因此需要排队进行,所以FFmpegUtils需要是单例的,FFmpegUtils实例交由spring管理就为单例的。
@Bean public ImageMagickUtils imageMagickUtils() { return new ImageMagickUtils(); }是我们给出的具体的图片处理工具。
使用(部分)
FileController
import com.example.demo.util.FileUtil; import com.whty.zdxt.multimedia.attribute.CompressionAttributes; import com.whty.zdxt.multimedia.attribute.CropAttributes; import com.whty.zdxt.multimedia.attribute.ResizeAttributes; import com.whty.zdxt.multimedia.attribute.VideoAttributes;S import com.whty.zdxt.multimedia.enumeration.Suffix; import com.whty.zdxt.multimedia.enumeration.VideoSize; import com.whty.zdxt.multimedia.pojo.FFmpegInfo; import com.whty.zdxt.multimedia.util.FFmpegUtils; import com.whty.zdxt.multimedia.util.ImageMagickUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.web.servlet.MultipartProperties; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.io.File; @RestController @RequestMapping("/file") public class FileController { @Autowired private FFmpegUtils fFmpegUtils; @Autowired private MultipartProperties multipartProperties; @Autowired private ImageMagickUtils imageMagickUtils;
获取视频信息
在FileController文件中,我们引用了多个类。在我们给出具体的符合要求视频文件后,我们首先对视频进行分析,分析视频信息。即生成上传视频的临时文件,然后调用视处理工具类,最后删除上传视频的临时文件。
/**
* 获取视频信息
*/
@PostMapping("/getVideoInfo")
public Object getFileInfo(@RequestParam MultipartFile file) {
String location = multipartProperties.getLocation();
// 生成上传视频的临时文件
File inputFile = FileUtil.multipartFile2File(file, location);
// 调用视频处理工具类
String inputFileName = inputFile.getName();
FFmpegInfo info = fFmpegUtils.getInfo(location, inputFileName);
// 删除上传视频的临时文件
inputFile.delete();
return info;
}
生成视频封面图
下一步我们实现生成视频封面图功能。具体内容类似即生成上传视频的临时文件,然后调用视处理工具类(获得视频封面图),最后删除上传视频的临时文件。
/**
* 生成视频封面图
*/
@PostMapping("/createVideoCover")
public Object createVideoCover(@RequestParam MultipartFile file) {
String location = multipartProperties.getLocation();
// 生成上传视频的临时文件
File inputFile = FileUtil.multipartFile2File(file, location);
// 调用视频处理工具类
String outputFileName = fFmpegUtils.createCover(location, inputFile.getName());
// 删除上传视频的临时文件
inputFile.delete();
return outputFileName;
}
标签:视频,java,2021SC,上传,utils,multimedia,import,com,FFmpegUtils 来源: https://blog.csdn.net/m0_50684338/article/details/120664506