java 基于jave2实现视频处理 截屏,加水印,压缩,获取时长

ffmpeg 是领先的多媒体框架,能够解码、编码、转码、混合、解密、流媒体、过滤音视频文件。

jave2是一个内置了ffmpeg.exe 的jar,并提供了对ffmpeg命令的封装。

使用jave2可以不用先安装配置ffmpeg的环境变量。

注:jave2 版本3.0后, windows 下视频加水印由于:路径问题有bug。

导入依赖:

   <!--引入全平台windows 32/64 linux 32/64 下的ffmpeg 可执行程序,实际运行不需要这么多-->
        <!--        <dependency>-->
        <!--            <groupId>ws.schild</groupId>-->
        <!--            <artifactId>jave-all-deps</artifactId>-->
        <!--            <version>3.1.1</version>-->
        <!--        </dependency>-->

        <!--操作ffmpeg命令的jar-->
        <dependency>
            <groupId>ws.schild</groupId>
            <artifactId>jave-core</artifactId>
            <version>3.1.1</version>
        </dependency>
        <!--windows 引用jar,主要集成 ffmpeg-amd64-3.1.1.exe  -->
        <dependency>
            <groupId>ws.schild</groupId>
            <artifactId>jave-nativebin-win64</artifactId>
            <version>3.1.1</version>
        </dependency>
        <!--linux 引用jar,主要集成 ffmpeg-amd64-3.1.1 linux下可执行文件  -->
        <dependency>
            <groupId>ws.schild</groupId>
            <artifactId>jave-nativebin-linux64</artifactId>
            <version>3.1.1</version>
        </dependency>

具体代码如下:



import org.apache.commons.lang3.time.StopWatch;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ws.schild.jave.Encoder;
import ws.schild.jave.EncoderException;
import ws.schild.jave.MultimediaObject;
import ws.schild.jave.ScreenExtractor;
import ws.schild.jave.encode.AudioAttributes;
import ws.schild.jave.encode.EncodingAttributes;
import ws.schild.jave.encode.VideoAttributes;
import ws.schild.jave.filtergraphs.OverlayWatermark;
import ws.schild.jave.filters.helpers.OverlayLocation;
import ws.schild.jave.info.AudioInfo;
import ws.schild.jave.info.MultimediaInfo;
import ws.schild.jave.info.VideoSize;

import java.io.File;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

/**
 * 视频处理工具类,利用jave2 jar处理
 * 1:截取视频多张图
 * 2:获取视频时长,格式等信息
 * 3:视频压缩
 * 4:视频添加图片水印
 *
 * @author lin
 * @version 1.0.0
 * @Description
 * @createTime 2021年06月15日 16:32:00
 */
public class VideoJave2Utils {
    static Logger logger = LoggerFactory.getLogger(VideoJave2Utils.class);
    /**
     * 允许的视频格式
     */
    static final String ALLOW_IMG_FORMAT = "avi|wma|rmvb|flash|mp4|mid|3gp|wmv|mpg|mp3|mkv|mpeg|mov|flv";
    /**
     * 水印视频名字拼接
     */
    static final String NEW_VIDOE_WATER_NAME_PRE_STR = "_water";

    /***
     * 压缩视频文件后缀
     */
    static final String NEW_VIDOE_ZIP_NAME_PRE_STR = "_ys";
    /**
     * 视频截图文件名拼接
     * eg:原视频 test.mp4
     * 截图名称 test_sc1.jpg 、test_sc10.jpg
  
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值