java - 如何获取视频/音频信息,例如持续时间和高度?

标签 java spring audio video duration

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

最佳答案

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

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

关于java - 如何获取视频/音频信息,例如持续时间和高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56722242/

相关文章:

HTML5 音频标签音量控制

iphone - iPhone麦克风音量

java - 播放采样声音javax.sound.sampled时的巨大延迟

java - 验证选择元素

java - 在 SessionFactory 中获取 NullPointerException

java - Spring SOAP 合并 .xsd 文件

Java json 日期格式不受尊重

java - 启动时出现 Eclipse 错误 : Error notifying a preference change listener

java - 如何使用 Spring Boot REST 限制对 .html 页面的访问

c# - 抑制 FFT 中的频率