Mp4视频旋转元数据

gts*_*ouk 6 html5 mp4 android rotation ios

我开发了一个android/ios视频​​共享应用程序,可以录制视频并将其上传到亚马逊s3.兼容android/ios以mp4格式记录H264/AAC编解码器.

用户可能拍摄肖像或风景和应用程序,从传感器获取信息,设置文件的旋转(在Android上的mediarecorder.setOrientationHint和iOS上类似的东西)

来自iOS的视频在Android上运行良好,反之亦然.问题是当我想在网络浏览器上播放视频时.支持mp4格式(即chrome)的浏览器显示视频但忽略旋转元数据.当我用linux上的mplayer播放那些视频时,会发生同样的事情.

想到的第一个解决方案是

ffmpeg -i in.mp4 -vf transpose=<rotation value> out.mp4
Run Code Online (Sandbox Code Playgroud)

浏览器忽略旋转元数据是否有原因?这是一个错误吗?我可以在录制视频时做些什么来解决这个问题吗?

这里分别是来自iOS和android的2个示例.

Thansk

ios视频 安卓视频

Gla*_*ulz 0

方法 1:如果宽高比不是水平的,则旋转 HTML 元素
Chrome HTML5 视频横向翻转

方法二:重新编码iPhone-Video
在chrome上用html5显示垂直视频

方法 3:在 iOS 设备上正确设置方向(高级)
iOS AVFoundation:设置视频方向

方法 4:询问这个人是否找到答案
使用 FFmpeg 根据其 <rotate> 元数据旋转视频?为什么 Android 会放置错误的元数据?