首页 > 解决方案 > 使用 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();
    }

标签: opencvffmpegmp4javacv

解决方案


推荐阅读