`

FFmpeg Java截取图片

阅读更多

package cn.test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class Ffmpeg {
    public static void main(String[] args) {

//        ffmpeg -i rtsp://127.0.0.1/vod/mp4://BigBuckBunny_175k.mov -r 0.2 d:\\1\\images%05d.jpg

List<String> commend = new ArrayList<String>();
        commend.add("ffmpeg");
        commend.add("-i");
        commend.add("rtmp:http://127.0.0.1/vod/mp4://BigBuckBunny_175k.mov");//视频
commend.add("-y");
        commend.add("-f");
        commend.add("image2");
        commend.add("-r");//添加参数“-r",该参数指定截取图片间隔时间
commend.add("0.2");//添加参数“-r",该参数指定截取图片间隔2秒
//        commend.add("-ss");// 添加参数"-ss",该参数指定截取的起始时间
//        commend.add("10");// 添加起始时间为第10秒
//        commend.add("-t");// 添加参数"-t",该参数指定持续时间
//        commend.add("0.001");// 添加持续时间为1毫秒
commend.add("-s"); // 添加参数"-s",该参数指定截取的图片大小
commend.add("800*280"); // 添加截取的图片大小为350*240
commend.add("d:\\1\\images%05d.jpg");
        ProcessBuilder builder = new ProcessBuilder();
        builder.command(commend);
        try {
            builder.redirectErrorStream(true);
            Process process = builder.start();
            InputStream in = process.getInputStream();
            System.out.println("正在进行截图,请稍候=======================");
            convertStreamToString(in);
            InputStream errorStream = process.getErrorStream();
            if (errorStream != null && errorStream.read() > 0) {
                System.out.println("错误:");
                convertStreamToString(errorStream);
            }
            in.close();
        } catch (IOException e) {
            System.out.println("错误:");
            e.printStackTrace();
        }
    }

    public static String convertStreamToString(InputStream is) {
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        StringBuilder sb = new StringBuilder();
        String line = null;
        try {
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
                sb.append(line + "/n");
            }
        } catch (IOException e) {

            e.printStackTrace();
        } finally {
            try {
                is.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return sb.toString();

    }

}
分享到:
评论

相关推荐

    java用ffmpeg截取视频图片

    System.out.println("成功截取图片到 " + imagePath); } else { System.out.println("FFmpeg 命令执行失败,退出代码:" + exitCode); } } catch (IOException | InterruptedException e) { e.printStackTrace...

    java后台利用ffmpeg实现将视频截取某一帧图片并保存

    总结来说,通过Java后台结合`ffmpeg.jar`,我们可以轻松地实现从视频中截取特定帧图片的功能。这涉及到了FFmpeg的加载、视频解码、图像转换和保存等多个步骤,每个步骤都需要对FFmpeg API有深入理解。同时,合理处理...

    java封装ffmpeg截取视频图片

    截取图片时,需要指定视频文件路径和输出图片格式(如JPEG或PNG)。 2. **视频剪辑**:Java FFmpeg封装还提供了视频剪辑功能。通过指定开始时间和结束时间,可以裁剪出视频的任意部分。例如,`clipVideo()`方法可能...

    ffmpeg java 封装工具类,音视频处理.zip

    本压缩包提供的"ffmpeg java 封装工具类"正是为了解决这个问题,它将FFmpeg的功能与Java编程语言相结合,提供了一套易于使用的API。 一、FFmpeg Java 封装工具类介绍 这个工具类通常包括以下核心功能: 1. **命令...

    java上传调用ffmpeg转码截图截取视频

    本文将深入探讨如何使用Java调用FFmpeg进行视频上传、转码、获取时长、生成缩略图以及截取视频的流程。 首先,当我们面临一个视频上传的需求时,通常会创建一个Java Web服务接口,该接口接收客户端上传的视频文件。...

    ffmpeg转码截取、截图、合并

    在Java环境中,我们可以通过调用FFmpeg的命令行接口来实现对视频的各种处理,包括转码、截取、截图以及合并等功能。以下是对这些功能的详细讲解。 1. **视频转码**: 转码是指将视频文件从一种编码格式转换为另一...

    FFMPEG通视频流截取图片.txt

    FFMPEG通视频流截取图片--这个只是说明,代码在 ffmpeg实现流推送.zip

    java 截取视频某一帧为封面所需jar(1.4.4)

    java 截取视频某一帧为封面所需jar(1.4.4),ffmpeg-4.1-1.4.4.jar,javacpp-1.4.4.jar,javacv-1.4.4.jar,opencv-4.0.1-1.4.4.jar

    java将视频定时截取图片并保存

    总之,Java结合FFmpeg可以方便地实现视频定时截取图片的功能。通过合理设计代码,我们可以灵活控制截取的时间点、频率以及输出格式,满足各种应用场景的需求。在具体实现时,根据项目的规模和性能要求,选择适合的...

    Java利用FFmpeg解析视频,截图,获取视频播放时间

    2. **视频截图**:要截取视频的某一帧作为图片,可以使用FFmpeg的"-ss"选项指定时间戳,"-vframes 1"表示只保留一帧,"-i"指定输入文件,最后指定输出图片文件。Java代码中,可以通过构建包含这些参数的命令字符串,...

    Java截取视频画面

    总之,通过Java调用FFmpeg,我们可以方便地在Java程序中实现视频画面的截取。虽然本教程主要针对Windows 7 64位系统,但FFmpeg本身是跨平台的,只要确保正确安装并在Java代码中提供相应的命令,就可以在其他操作系统...

    java代码提取视频中的图片

    总之,Java代码提取视频中的图片主要依赖于调用FFmpeg这样的外部工具,并通过Java的系统接口与之交互。在实际开发中,为了提高代码的可维护性和可移植性,可以考虑封装成一个库或服务,使得视频处理操作更加便捷。

    linux上使用ffmpeg 实现视频截图

    此外,还可以通过调整FFmpeg参数实现更复杂的截图需求,例如调整截图尺寸、质量,或者批量截取多个时间点的图片。例如,`-s widthxheight` 可以设置截图的分辨率,`-qscale:v` 可以控制图片的质量(数值越小质量越高...

    ffmpeg 例子 实现视频截图 保存为bmp文件

    在这个例子中,我们将专注于如何使用 FFmpeg 来从视频文件中提取帧并保存为 BMP 图片。 首先,我们需要理解基本的 FFmpeg 命令行语法。FFmpeg 的基本用法是输入源(input)和输出目标(output)。在我们的场景中,...

    FFmpeg解码视频保存为一帧帧jpg图片

    在这个命令中,`-ss 00:00:10`表示在10秒处截取一帧,`-vframes 1`指定了只提取一帧,而`输出图片.jpg`是保存的图片文件名。 在Android平台上使用FFmpeg,通常需要将FFmpeg库集成到项目中,可以通过预编译的静态库...

    视频截图工具包绑定 Linux环境java截取视频某帧另存缩略图

    ffmpeg-4.1-1.4.4.jar ffmpeg-4.1-1.4.4-windows-x86_64.jar ffmpeg-4.1-1.4.4-windows-x86.jar ffmpeg-4.1-1.4.4-macosx-x86_64.jar ffmpeg-4.1-1.4.4-linux-ppc64le.jar ffmpeg-4.1-1.4.4-linux-armhf.jar ffmpeg-...

    javacv截取视频图像并旋转为正向

    JavaCV 是一个 Java 包,它为 Java 和 Android 提供了多个计算机视觉库的便捷接口,包括 OpenCV、FFmpeg 等。在本项目中,我们关注的是如何使用 JavaCV 和 OpenCV 来截取视频图像并进行旋转,使其在不同操作系统(如...

    java1.4.1截取视频图片

    在这个特定的场景中,我们关注的是使用 JavaCV 1.4.1 版本来从视频中截取图片。这个任务在多媒体处理和分析领域非常常见,例如在视频监控、视频内容分析或简单的用户界面中预览视频帧。 首先,我们需要了解 JavaCV ...

    java实现视频生成图片

    java实现可以获取视频中某一帧的图片,并将图片保存至本地,自定义设置截取图片的宽度和高度,获取视频的总帧数,视频总时长。

    Javacv处理视频,提取成帧图片,生成gif

    - 生成 GIF 动画需要处理一系列图片,可以使用 JavaCV 中 FFmpeg 的功能或者第三方库(如 Apache Commons Imaging 或 Gif4J)。 - 通过读取已保存的帧图片,按照特定的时间顺序组合成 GIF 动画,可以使用 FFmpeg ...

Global site tag (gtag.js) - Google Analytics