如何获取 video/audio 信息,例如持续时间和身高?
How to get video/audio info such as Duration and with and height?
从 RestController
上传后,我需要获取 video/audio 文件信息,例如持续时间、宽度和高度。
这将取决于特定的视频容器(例如 mp4),也可能取决于您使用的框架,但您可以使用 ffprobe(ffmpeg 的一部分)来获取信息。
Java 有几个 ffmpeg 包装器 - 在撰写本文时,这是一个流行的包装器:https://github.com/bramp/ffmpeg-cli-wrapper
使用这个获取媒体文件信息,从上面 link 的例子来看,看起来像:
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
);
从 RestController
上传后,我需要获取 video/audio 文件信息,例如持续时间、宽度和高度。
这将取决于特定的视频容器(例如 mp4),也可能取决于您使用的框架,但您可以使用 ffprobe(ffmpeg 的一部分)来获取信息。
Java 有几个 ffmpeg 包装器 - 在撰写本文时,这是一个流行的包装器:https://github.com/bramp/ffmpeg-cli-wrapper
使用这个获取媒体文件信息,从上面 link 的例子来看,看起来像:
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
);