栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

2021SC@SDUSC-multimedia-utils-一款java后端的图片、视频处理工具jar包

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2021SC@SDUSC-multimedia-utils-一款java后端的图片、视频处理工具jar包

目录

项目名称:multimedia-utils

使用(部分)

压缩视频

压缩视频完成时的回调

图片裁切

图片分辨率修改代码如下(已给出对应注释)

视频工具FFmpegUtils

1.获取视频信息


2021SC@SDUSC 

项目名称:multimedia-utils

博客三

使用(部分)

在上篇文章中我们对视频的使用部分进行了获取视频信息以及生成视频封面图实现的讲解,下面我将继续介绍其他功能的实现。

压缩视频

此部分与前面功能实现类似,均需要先生成上传视频的临时文件,然后再调用视频处理工具类。但是之后的工作我们需要注意,我们要设置视频压缩完成时的回调URL定位。然后设置好视频压缩具体参数。最后再删除临时文件。具体设置视频参数方法在后期会讲解。

  
    @PostMapping("/compressionVideo")
    public Object compressionVideo(@RequestParam MultipartFile file) {

        String location = multipartProperties.getLocation();

        // 生成上传视频的临时文件
        File inputFile = FileUtil.multipartFile2File(file, location);

        // 调用视频处理工具类


        CompressionAttributes compressionAttributes = new CompressionAttributes();
        // 设置视频压缩完成时的回调URL
        compressionAttributes.setProgressUrl("http://localhost:8999/file/callback?fileId=111111&a=456");

        // 设置视频压缩参数
        VideoAttributes videoAttributes = new VideoAttributes();
        videoAttributes.setMaxDuration(15);
        videoAttributes.setMaxFps(20);
        videoAttributes.setVideoSize(VideoSize.HD480);

        compressionAttributes.setVideoAttributes(videoAttributes);

        String outputFileName = fFmpegUtils.putCompressionTask(location, inputFile.getName(), compressionAttributes);

        return outputFileName;
    }

压缩视频完成时的回调

这里主要是针对上述要求,提取回调信息,回调参数 fileId,根据fileId查询数据库的上传临时文件名和下载临时文件名,进行文件上传和文件删除。

 @PostMapping("/callback")
    public Object callback(@RequestBody String info, @RequestParam("fileId") String fileId, @RequestParam("a") String a) {

        String[] split = info.split("/");

        System.out.println(String.format("fileId为%s的文件已压缩完成", fileId));

        return null;
    }

图片裁切

对于图片的处理和对视频的处理相似,都是先生成上传的临时文件然后再调用相应的图片处理工具类,裁切图片,最后删除上传图片的临时文件即可。代码如下

  @PostMapping("/crop")
    public Object crop(@RequestParam MultipartFile file) {

        String location = multipartProperties.getLocation();

        // 生成上传图片的临时文件
        File inputFile = FileUtil.multipartFile2File(file, location);

        // 调用图片处理工具类
        // 裁切成3000x1200的图后,修改分辨率为宽800的图(高度按比例缩小)
        CropAttributes cropAttributes = new CropAttributes(3000, 1200, 1000, 500);
        ResizeAttributes resizeAttributes = new ResizeAttributes(800, null);
        String outputFileName = imageMagickUtils.cropAndResize(location, inputFile.getName(), cropAttributes, resizeAttributes);

        // 删除上传图片的临时文件
        inputFile.delete();
        return outputFileName;
    }

图片分辨率修改代码如下(已给出对应注释)
 
    @PostMapping("/resize")
    public Object resize(@RequestParam MultipartFile file) {

        String location = multipartProperties.getLocation();

        // 生成上传图片的临时文件
        File inputFile = FileUtil.multipartFile2File(file, location);

        // 调用图片处理工具类
        ResizeAttributes resizeAttributes = new ResizeAttributes(800, null);
        String outputFileName = imageMagickUtils.resize(location, inputFile.getName(), resizeAttributes, Suffix.JPG);

        // 删除上传图片的临时文件
        inputFile.delete();
        return outputFileName;
    }

}

视频工具FFmpegUtils

方法

1.获取视频信息

getInfo(tempDirectory,inputFileName)

输入参数

参数类型必需注释
tempDirectoryString临时文件目录
inputFileNameString输入文件名

输出参数

参数类型必需注释
formatFFFormat文件信息
videoInfoVideoInfo视频信息
audioInfoAudioInfo音频信息

 

其中:

FFFormat

参数类型必需注释
filenameString文件名全路径名
durationString文件时长
sizeString文件大小
bitRateString文件比特率

VideoInfo

参数类型必需注释
codecNameString视频 编码名称
codecTypeString类型 video
widthInteger视频 宽度
heightInteger视频 高度
frameRateInteger视频 帧率
durationInteger视频 时长
bitRateInteger视频 比特率
nbframesInteger视频 总帧数

AudioInfo

参数类型必需注释
codecNameString音频 编码名称
codecTypeString类型 audio
durationInteger音频 时长
bitRateInteger音频 比特率
sampleRateInteger音频 采样率
channelsInteger音频 声道数 1:单声道 2:双声道

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/332480.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号