zoukankan      html  css  js  c++  java
  • Windows下使用ffmpeg与java实现截取视频缩略图

    ffmpeg.exe可执行文件获取】:

    网上搜索后得到编译好的ffmpeg文件,下载地址:http://download.csdn.net/source/453719

    安装】:

    将下载的文件解压,如:D:ffmpeg,一共三个文件,分别是:ffmpeg.exe、ffplay.exe、pthreadGC2.dll。我们用到的应该是ffmpeg.exe。

    实现获取视频缩略图的两种方式】:

    1、调用批处理文件:

    批处理文件(如:ffmpeg.bat),内容:D:/ffmpeg/ffmpeg.exe -i %1 -ss 20 -vframes 1 -r 1 -ac 1 -ab 2 -s 160*120 -f image2 %2 。其中,%1与%2类似C语言中的参数,代码中是需要替换的,Java代码如下:

    public static void main(String[] args) { 

      // 视频文件 

      String videoRealPath = "E://test.flv"; 

      // 截图的路径(输出路径) 

      String imageRealPath = "E://test.jpg"; 

      // 1、调用批处理文件 

      try { 

      Runtime.getRuntime().exec( "cmd /c start E://ffmpeg.bat " + videoRealPath + " " + imageRealPath);

      } catch (IOException e) { 

     e.printStackTrace(); 

      } 

      }

    2、调用系统中的可执行程序

    Java代码如下:

     public static final String FFMPEG_PATH = "D:/ffmpeg/ffmpeg.exe";

     public static boolean processImg(String path) {

    File file = new File(path);

    if (!file.exists()) {

    System.err.println("路径[" + path + "]对应的视频文件不存在!");

    return false;

    }

    List<String> commands = new java.util.ArrayList<String>();

    commands.add(FFMPEG_PATH);

    commands.add("-i");

    commands.add(path);

    commands.add("-y");

    commands.add("-f");

    commands.add("image2");

    commands.add("-ss");

    commands.add("38");

    commands.add("-t");

    commands.add("0.001");

    commands.add("-s");

    commands.add("320x240");

    commands.add(path.substring(0, path.indexOf(".")) + ".jpg");

    try {

    ProcessBuilder builder = new ProcessBuilder();

    builder.command(commands);

    builder.start();

    return true;

    } catch (Exception e) {

    e.printStackTrace();

    return false;

    }

    }

    总结】:

    ffmpeg功能强大,不仅可以获取缩略图,而且支持大部分主流的视频格式,而且也可以对视频进行转码,使用起来也非常方便。虽然它是在Linux下开发而来的,但它可以在包括Windows下的大多操作系统中编译,本文就是用了在Windows环境下编译好的文件来实现的。

  • 相关阅读:
    Android面试题目整理与解说(二)
    大学?做码农?做project师?
    图形学领域的关键算法及源代码链接
    假设在本地搭一个server和mysql数据库环境,假设使用java来訪问数据库
    [容斥原理] hdu 4135 Co-prime
    leetcode第一刷_Merge Intervals
    关于HashMap的一些深入探索与理解
    摄像头拍照上传
    rowid快速分页解析
    flare-spork: 自己维护的Pig on Spark项目
  • 原文地址:https://www.cnblogs.com/exmyth/p/5740037.html
Copyright © 2011-2022 走看看