如何获取视频/音频信息,例如持续时间以及with和height?

时间:2019-06-23 08:29:51

标签: java spring audio video duration

RestController上传后,我需要获取视频/音频文件信息,例如持续时间,宽度和高度。

1 个答案:

答案 0 :(得分:0)

这取决于特定的视频容器(例如mp4)以及可能使用的框架,但是您可以使用ffmpeg的一部分ffprobe来获取信息。

有几种适用于Java的ffmpeg包装器-在撰写本文时,这是一种流行的包装器:https://github.com/bramp/ffmpeg-cli-wrapper

使用此方法从上面的链接的示例中获取媒体文件信息,如下所示:

FFprobe ffprobe = new FFprobe("/path/to/ffprobe");
FFmpegProbeResult probeResult = ffprobe.probe("input.mp4");

FFmpegFormat format = probeResult.getFormat();
System.out.format("%nFile: '%s' ; Format: '%s' ; Duration: %.3fs", 
    format.filename, 
    format.format_long_name,
    format.duration
);

FFmpegStream stream = probeResult.getStreams().get(0);
System.out.format("%nCodec: '%s' ; Width: %dpx ; Height: %dpx",
    stream.codec_long_name,
    stream.width,
    stream.height
);