简单粗暴: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();
        }
    }

}

执行输出结果如下:

 

 

 

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值