您的位置:首页 > 房产 > 建筑 > 天津营销类网站设计_网页设计实训心得体会300字_关键词查询工具免费_北京如何优化搜索引擎

天津营销类网站设计_网页设计实训心得体会300字_关键词查询工具免费_北京如何优化搜索引擎

2024/12/25 21:59:54 来源:https://blog.csdn.net/weixin_72974455/article/details/144280564  浏览:    关键词:天津营销类网站设计_网页设计实训心得体会300字_关键词查询工具免费_北京如何优化搜索引擎
天津营销类网站设计_网页设计实训心得体会300字_关键词查询工具免费_北京如何优化搜索引擎

什么是ffmpeg?

ffmpeg下载安装教程及介绍-CSDN博客

安装后具体实现代码:

package com.example.playing;/*** @author : 冯子达* @version 1.0* @description :视频转换为图片 输入视频文件名和文件唯一标识 输出的是图片数量,在本方法里面完成文件夹的创建* @createDate : 2024/12/6 07:50*/import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;public class VideoToImages {/*** 每秒生成多少张图片*/private static Integer fps = 24;/*** 存放视频和图片的文件夹资源根目录*/private static String Path = "D:\\devopment_project\\java_project\\playing\\src\\main\\resources\\";/*** 将视频转换为图片* <p>* 视频存放在 video\\videoName.mp4* <p>* 分割后存储在 images\\videoId 文件夹中* 图片的生成名为:output%d.jpg** @param videoId   视频的ID* @param videoName 视频文件的名 例如 videoName.mp4* @return 生成的图片数用于后面判断,如果是0,则代表失败*/public static int videoToCreateImages(String videoId, String videoName) {//        创建完成目录File completedir = new File( Path+"images\\" + videoId);// 检查是否创建目录boolean completeSuccess = completedir.mkdir();if (completeSuccess) {System.out.println("目录创建成功!");} else {System.out.println("目录创建失败");return 0;}String videoPath = Path+"video\\" + videoName;// 输出图片的路径前缀(每张图片将使用前缀+序号.jpg的格式)String outputPrefix = completedir +"\\output%d.jpg";// 构建FFmpeg命令ProcessBuilder builder = new ProcessBuilder("ffmpeg","-i", videoPath, // 输入文件"-vf", "fps="+fps, // 每秒fps帧outputPrefix // 输出文件(使用%d表示帧编号));builder.redirectErrorStream(true); // 将错误输出合并到标准输出try {Process process = builder.start();// 读取命令的输出(可选,用于调试或捕获FFmpeg的输出)BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));String line;while ((line = reader.readLine()) != null) {System.out.println(line);}// 等待进程结束int exitCode = process.waitFor();System.out.println("FFmpeg process exited with code " + exitCode);return countTopLevelFiles(completedir);} catch (InterruptedException | IOException e) {e.printStackTrace();return 0;}}/*** 统计指定目录下的一级文件数量** @param dir 目录名* @return*/public static int countTopLevelFiles(File dir) {int count = 0;// 检查目录是否存在if (dir.exists() && dir.isDirectory()) {// 获取目录下的所有文件和子目录File[] files = dir.listFiles();if (files != null) {for (File file : files) {// 如果是文件,则增加计数器if (file.isFile()) {count++;}}}}return count;}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com