代码如下-:

import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;//生成视频文件的首帧为图片
//windows下的版本
public class CreatePh
{public static boolean processImg(String veido_path, String ffmpeg_path, String min){File file = new File(veido_path);if (!file.exists()){System.err.println("路径[" + veido_path + "]对应的视频文件不存在!");return false;}List<String> commands = new java.util.ArrayList<String>();commands.add(ffmpeg_path);commands.add("-i");commands.add(veido_path);commands.add("-y");commands.add("-f");commands.add("image2");commands.add("-ss");commands.add(min);// 这个参数是设置截取视频多少秒时的画面// commands.add("-t");// commands.add("0.001");commands.add("-s");commands.add("640x360");System.out.println("图片地址:" + veido_path.substring(0, veido_path.lastIndexOf(".")).replaceFirst("vedio", "file") + ".jpg");commands.add(veido_path.substring(0, veido_path.lastIndexOf(".")).replaceFirst("vedio", "file") + ".jpg");
//      commands.add("C:\\Users\\Administrator\\Desktop\\ffmpeg截取图片\\" + System.currentTimeMillis() + ".jpg"); 本地路径try{ProcessBuilder builder = new ProcessBuilder();builder.command(commands);builder.start();System.out.println(veido_path + "视频截取成功");return true;}catch (Exception e){e.printStackTrace();return false;}}/*** 递归所有视频* @author Liuxp* @param f* @param pathList*/private static void count(File f, List<String> pathList){File[] list = f.listFiles();for (File i : list){boolean matches = i.getName().toLowerCase().matches(".+\\.(mp4|avi|rmvb|mpg|wmv|asf|asx|rm|rmvb|mpeg|mpe|m4v|mkv|dat|flv|vob|3gp)");// System.out.println(matches);if (matches == true){pathList.add(i.getPath());}else if (i.isDirectory()){count(i, pathList);}}}public static void main(String[] args){System.out.print("请输入文件夹路径:");Scanner sc = new Scanner(System.in);String next = sc.next();
//      String next = "C:\\\\Users\\\\Administrator\\\\Desktop\\\\音视频";
//      next = "D:\\steam\\steamapps";
//      System.out.print("请输入ffmpeg路径:");
//      Scanner ffmpegScanner = new Scanner(System.in);
//      String ffmpeg = ffmpegScanner.next();String ffmpeg = "Y:\\smart-edu\\ffmpeg-2022-06-27\\bin\\ffmpeg.exe";System.out.print("请输入截取视频X秒位置:");Scanner indexMin = new Scanner(System.in);String min = indexMin.next();File f = new File(next);if (!f.isDirectory()){System.out.println("文件夹路径错误");return;}List<String> pathList = new ArrayList<>();count(f, pathList);if (pathList.size() <= 0){System.out.println("该文件夹未找到视频文件");}Integer num = 0;for (String string : pathList){processImg(string, ffmpeg, min);num++;}System.out.println("共截取:" + num + " 个视频图片");}
}

去掉package包路径使用cmd命令编译为.class文件 utf-8编译
命令:javac -encoding utf-8 CreatePh.java
执行.class文件
命令:java CreatePh #不要带后缀
效果如下

会在同目录同位置生成一个文件名一样的照片格式的文件


文件夹目录下所有的视频使用ffmpeg指定位置截图相关推荐

  1. Python os.listdir方法(获取文件夹目录下的内容)

    一.os.listdir方法 os.listdir方法.参数为文件夹路径, 可以返回文件夹下的所有子文件.文件名称, 但不能返回子文件夹下的文件 import ospath = r"C:\U ...

  2. linux 再文件夹目录下,批量替换文件名、文件内容字符串

    基本使用命令 sed -i 's/<原字符串>/<替换字符串>/g' <文件> grep -rl "<搜索字符串>" find -n ...

  3. 用户home目录下的.gitconfig 和 库文件夹目录下的 .gitignore 示例

    .gitconfig文件: [user]name = hzhemail = 924948@qq.com[core]editor = viquotepath = false # git config - ...

  4. github船舰新文件夹_mac下搭建hexo+github

    在这之前,网络上有很多教程,但是还是基于自己遇到的问题和流程写一下.因为自己是小白,所以在过程中遇到了很多小白的问题.这里简单说明 一.安装 首先,需要安装node.js.npm和Git Git可直接 ...

  5. 管理员身份运行cmd;cmd命令切换到指定文件夹目录;cmd命令窗口中复制粘贴

    如何以管理员身份运行cmd? 点击任务栏搜索按钮,搜索 cmd 右键管理员身份打开 管理员身份运行cmd时的一些常用命令 i.目录操作: e: #切换到E盘(要想切换到某个文件夹,要先切换到文件夹所属 ...

  6. 删除文件夹右键下的部分目录

    删除文件夹右键下的部分目录 用优化大师等系统优化工具可以删除,可是有些却不能删除,比如文件夹或文件右键列表. 下面介绍一下修改注册表删除的方法: 一.清除鼠标右键菜单中多余项的操作步骤如下: (1)在 ...

  7. linux下计算目录文件和,统计Linux 中文件和文件夹/目录的数量(示例代码)

    嗨,伙计们,今天我们再次带来一系列可以多方面帮助到你的复杂的命令. 通过操作命令,可以帮助您计数当前目录中的文件和目录.递归计数,统计特定用户创建的文件列表等. 在本教程中,我们将向您展示如何使用多个 ...

  8. C#中拷贝指定文件夹下的所有文件夹目录到指定文件夹中的方法

    原文地址:http://www.biye5u.com/article/Csharp/fileprog/2011/4198.html 本文给出了一个在C#中拷贝指定文件夹下的所有文件夹目录到指定文件夹中 ...

  9. web.xml放在哪个目录下_美术资源标准(文件夹目录篇)

    前言 想了许久,最终决定以参与一款项目的过程来逐步解讲TA的相关知识点,这样会比较循序渐进的去了解TA. 首先,在项目的前期,TA是需要制定很多标准的,从目的上来讲大致可分为: 美术资源标准化,方便项 ...

最新文章

  1. Mockito测试void方法会引发异常
  2. IT人不要一辈子做技术
  3. ESP8266常用脚本命令之一
  4. 两端外伸梁内力计算机程序,理解材料力学核心问题:梁的弯曲 剪力弯矩图快速软件绘法...
  5. MFC之COleVariant类
  6. 关于LBS坐标系与精度的问题
  7. linux显卡驱动版本最好,Linux 用户如何安装 Nvidia 331.67 显卡驱动稳定版本
  8. 【pl/sql番外篇】 存储过程 游标
  9. 父类调用子类中的方法
  10. 判断链表是否相交并找出交点
  11. 编写区块链_编写由区块链驱动的在线社区的综合指南
  12. IDEA取消默认打开的项目工程
  13. 解决百度地图使用出现的has leaked ServiceConnection com.baidu.location.b@4aa5a810 that was originally bound here
  14. Verilog 38译码器
  15. 使用python处理wps表格_Python处理Word文件的实用姿势
  16. Premiere 初识PR
  17. 七种方式实现三栏布局
  18. 操作系统设备管理知识点总结
  19. 04-用户和实体行为分析(UEBA)
  20. ndn-tools:dissect-wireshark的使用

热门文章

  1. 文件上传图片放大缩小进行截图上传
  2. SOEM 源码解析 ecx_FPWR
  3. CF513C Maximum Subrectangle
  4. 记一次简单高效的吸血鬼算法
  5. Redis过期策略 实现原理
  6. 如临现场的视觉感染力,NBA决赛直播还能这样看?
  7. 交大『云观CD-ROMIII』直接由CD-ROM执行之安装法(转)
  8. 重要短信通知解决方案(短信通知+语音播报自动双呼)
  9. 小院-《隐私与协议声明》
  10. 七、系统架构 - 伸缩性架构设计