简单粗暴:Java 使用 FFmpeg 获取视频的分辨率 Java获取视频的时长 Java获取视频的编码格式
程序员文章站
2022-06-08 23:00:00
...
准备条件:
1.Windows 操作系统
2.Java开发环境
3.FFmpeg工具
FFmpeg下载地址:点此下载
解压后得到文件 ffmepg.exe
cmd测试结果如下
此时:
FFMPEG路径为 : F:\ffmepg\ffmpeg.exe
视频路径为: F:\ffmepg\video.mp4
于是我们需要使用命令 F:\ffmepg\ffmpeg.exe -i F:\ffmepg\video.mp4
下面我们使用Java进行处理
首先整理开发思路
第一步:
创建java文件 编写main方法
第二步:
拼接cmd命令语句
第三步:
执行命令语句并返回执行结果
第四步:
处理结果,将视频信息保存入库
以下是完整代码:
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
/**
* @description: ffmepg获取视频时长
* @create: 2020/01/15 17:28
*/
public class FFmpeg获取视频时长 {
public static void main(String[] args) {
//ffmepg工具地址
String ffmpegPath = "F:\\ffmepg\\ffmpeg.exe";
//视频文件地址
String videoPath = "F:\\ffmepg\\video.mp4";
// 拼接cmd命令语句
StringBuffer buffer = new StringBuffer();
buffer.append(ffmpegPath);
//注意要保留单词之间有空格
buffer.append(" -i ");
buffer.append(videoPath);
// 执行命令语句并返回执行结果
try {
Process process = Runtime.getRuntime().exec(buffer.toString());
InputStream in = process.getErrorStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String line ;
while((line=br.readLine())!=null) {
if(line.trim().startsWith("Duration:")){
//根据字符匹配进行切割
System.out.println("视频时间 = " + line.trim().substring(0,line.trim().indexOf(",")));
}
//一般包含fps的行就包含分辨率
if(line.contains("fps")){
//根据
String definition = line.split(",")[2];
definition = definition.trim().split(" ")[0];
System.out.println("分辨率 = " + definition);
}
}
}catch (Exception e){
e.printStackTrace();
}
}
}
执行输出结果如下:
上一篇: Uboot学习笔记(一)ARM汇编
下一篇: 实验7-2-2 矩阵运算 (20分)