在 OSS 上存储了 MOV 和 MP4 格式的视频,但获取到的视频信息的 宽、高 是原生的宽高,并没有将旋转考虑进去,请问怎么才能获取到正确的宽高?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在阿里云对象存储(OSS)中,视频元数据直接由上传的文件决定,OSS不会自动修正或检测视频的旋转信息。如果视频在录制时因为设备方向改变而需要旋转播放,但元数据中的宽高信息未相应调整,您可以通过以下方法获取正确的宽高信息:
使用MediaInfo工具:首先下载并使用MediaInfo工具分析您的视频文件,这个工具可以详细展示视频的各种元数据,包括旋转角度等信息。根据这些信息,您可以计算出正确的显示宽高。
阿里云媒体处理服务(Media Processing Service, MPS):阿里云提供了媒体处理服务,其中的元数据提取功能可以帮助您获取视频的详细元数据,包括考虑旋转后的正确宽高。具体操作是创建一个元数据提取的任务,任务完成后,从返回的结果中读取视频的“DisplayWidth”和“DisplayHeight”,这两个值会根据旋转信息给出正确的显示尺寸。
客户端处理:如果您的应用场景允许,在播放视频前,可以在客户端(如浏览器、手机应用等)通过JavaScript、MediaPlayer API或其他编程语言的库来读取视频的元数据,并根据旋转角度动态调整播放器的宽高或应用CSS变换来正确显示视频。
自定义脚本或服务:如果您有特定的需求或者大量的视频需要处理,也可以编写自定义脚本来解析视频元数据(可能需要借助FFmpeg等工具),然后根据旋转角度计算正确的宽高,并更新或记录这些信息以便后续使用。
综上所述,推荐使用阿里云媒体处理服务进行元数据提取,这是一种较为高效且准确的方法来获取考虑了旋转信息的视频宽高。