opencv - 使用 JavaCV 获取视频旋转元数据值
问题描述
似乎有很多相关的主题,但我无法找到我正在寻找的答案。
我正在使用 JavaCV 和 FFmpegFrameGrabber 从视频中间获取图像。如果 mp4 文件具有“旋转”元数据字段(如 90 或 270),则我得到的图像定位不正确。我想从 FFmpegFrameGrabber 获得方向,但找不到这样做的方法。
有没有办法告诉 FFmpegFrameGrabber 尊重方向,或者有没有办法使用 JavaCV 以某种方式获得这个值?
以防万一我到目前为止的代码
FFmpegFrameGrabber g = new FFmpegFrameGrabber(input);
g.start();
g.getVideoMetadata(); // <-- this thing is empty
try {
g.setFrameNumber(g.getLengthInFrames() / 2);
Java2DFrameConverter converter = new Java2DFrameConverter();
Frame frame = g.grabImage();
BufferedImage bufferedImage = converter.convert(frame);
ImageIO.write(bufferedImage, "jpeg", output);
} finally {
g.stop();
}
解决方案
推荐阅读
- php - 如何创建正则表达式模式以删除特定标记后的换行符
- elasticsearch - 如何知道 Geopoint 是否在使用 elasticsearch 7 的多边形内?
- javascript - 基于 getBoundingClientRect() 问题的带有样式注入的 React.cloneElement
- qlikview - QlikView aggr 列表框中排除了多个值
- python - 使用 win32com.client 列出可用的消息属性
- python - 如何在 ggplot 中正确构建数据框以绘制不同的图表
- c# - 如何使用像素坐标和光线投射将虚拟物体放置在真实物体上?
- java - 是否可以使用 java 12 创建 spring boot maven 项目?
- java - 无法从 MySQL 数据库中检索数据并将其放在我的 android 应用程序的列表视图中
- ios - Xamarin 表单:从导航抽屉中选择该页面时如何删除 ios 中的蓝色框?