使用FFmpeg根据视频的<rotate>元数据旋转视频?为什么安卓会放入错误的元数据?

3
我有一个网站,用户可以上传视频。我还有一款安卓应用程序。网站为每个上传的视频(从浏览器或安卓设备)创建缩略图。
问题在于,对于正常的视频来说一切都很好,但是对于安卓设备录制的视频,它们会被旋转90度。
我认为这是安卓系统的一个bug,因为当我使用FFmpeg查看视频元数据时,对于正常录制的视频,我得到了rotate=90的值,而对于旋转了90度的视频,我在元数据中没有任何内容(缩略图是正确的)。
为什么?
这是一个“正常”的录制视频的图像(手机处于“竖屏模式”)。
无论如何,我已经在视频中有元数据,是否可以根据其元数据的旋转值创建缩略图,而不必提取元数据,然后使用FFmpeg将视频旋转到该值?
谢谢您的帮助。
1个回答

4
在Android上,竖持手机被认为是90度。这就是Android正在使用的约定:
横向:0 纵向:90 反向横向:180 反向纵向:270
我知道这对手机来说没有意义,但对于平板电脑来说却有,并且在Android上平板电脑和手机之间实际上没有区别。
因此,文件中的元数据是正确的。实际问题是您的浏览器忽略了它们。请参见我的问题here

我使用exiftool从视频文件中提取元数据,然后使用FFmpeg的转码值来解决了这个问题。 - Mauro Valvano

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接