android ffmpeg视频抽帧 ffmpeg视频长度裁剪 ffmpeg视频区域裁剪 ffmpeg视频压缩

    implementation("com.arthenica:mobile-ffmpeg-full:4.4")

1.ffmpeg视频抽帧

    /**
     * ffmpeg -i "123.mp4" -r 5 -q:v 2 -f image2 %d.jpeg
     * <p>
     * 备注:
     * -i 是用来获取输入文件的名称,-i “123.mp4” 就是获取这个叫做123的mp4视频文件,当然你用avi格式之类的也可以;
     * -r 是设置每秒提取图片的帧数,也即采样率,-r 5的意思就是每秒抽取5张视频帧;
     * -q:v 2 这个可以提高抽取到的图片的质量的;
     * -f 是设定输出格式,这里image2就是图像解析模式,还有contact连接模式等;
     * %d.jpeg,可以指定文件的输出名字jpeg,jpg,png之类的都可以,也可以在前面加个路径,变成 /data/mp4-%05d.jpeg
     *
     * @param path
     */
    private void startShootVideoThumb(String path) {
        String dicName = DIR_IMAGE_ANALYSIS + new Date().getTime();
        FileUtil.getInstance().initDirectory(dicName);
        String ffmpegCmd = "-i " + path + " -r 1 -f image2 " + dicName + "/frame%04d.png";
        String[] command = ffmpegCmd.split(" ");
        System.out.println(Arrays.toString(command));
        FFmpeg.executeAsync(command, (executionId, returnCode) -> {
            LogUtil.e("文件解码=" + (returnCode == 0));
            File[] files = FileUtil.getInstance().getFiles(dicName);
            LogUtil.e("文件解码=" + files.length);
        });
    }

2.ffmpeg视频长度裁剪

    /**
     * @param start 裁剪开始时间
     * @param duration 裁剪长度
     */
    @UnstableApi
    private void cutVideoLong(double start, double duration) {
        LogUtil.e("视频长度裁剪");
        String out = StorageUtil.getCacheDir() + File.separator + "editVideo.mp4";
  
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魑魅魍魉9527

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值