简单粗暴:Java 使用 FFmpeg 获取视频的分辨率 Java获取视频的时长 Java获取视频的编码格式

准备条件:

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();
        }
    }

}

执行输出结果如下:

发布了8 篇原创文章 · 获赞 4 · 访问量 1547

猜你喜欢

转载自blog.csdn.net/q2450751976/article/details/103993096