【问题标题】:Use FFmpeg to rotate the video based on its <rotate> metadata? Why does Android put the wrong metadata?使用 FFmpeg 根据其 <rotate> 元数据旋转视频?为什么 Android 会放错元数据?
【发布时间】:2015-07-23 04:49:13
【问题描述】:

我有一个用户上传视频的网站。
对于我的网站,我还有一个 Android 应用程序。
该网站会为每个上传的视频(来自浏览器或 Android)创建一个缩略图。

问题是,对于普通视频,一切正常,但对于 android,我的视频旋转了 90°。

我认为 Android 存在错误,因为当我使用 FFmpeg 查看视频的元数据时,对于正常录制的视频,我得到了一个 rotate=90 值,而对于一个 90° 旋转的视频,我没有任何内容元数据(并且缩略图是正确的)。

为什么?

这是正常录制视频的图像(手机处于纵向模式)。

无论如何,我在视频中有元数据,我是否可以根据其元数据的旋转值创建其缩略图而不提取元数据,然后使用 ffmpeg 在此值上旋转视频?

提前谢谢你。

【问题讨论】:

    标签: android video ffmpeg rotation


    【解决方案1】:

    在 Android 上,纵向握持手机被视为 90 度。这是 android 使用的约定:

    风景:0 肖像:90 反向景观:180 反向人像:270

    我知道这对手机没有意义,但它对平板电脑有用,而且平板电脑和安卓手机之间真的没有区别。

    所以文件中的元数据是正确的。实际问题是您的浏览器会忽略它们。看我的问题here

    【讨论】:

    • 我使用exiftool解决了这个问题,方法是从视频文件中提取元数据,然后使用转码值为FFmpeg的视频。
    猜你喜欢
    • 2014-05-13
    • 2014-03-17
    • 2014-12-27
    • 2015-07-10
    • 1970-01-01
    • 1970-01-01
    • 2013-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多