我开发了一个android / ios视频共享应用程序,可以录制视频并将其上传到亚马逊s3。兼容android / ios以mp4格式记录H264 / AAC编解码器。
用户可能拍摄肖像或风景和应用程序,从传感器获取信息,设置文件的旋转(iOS上的mediarecorder.setOrientationHint和类似的东西)
来自iOS的视频在Android上运行良好,反之亦然。问题是当我想在网络浏览器上播放视频时。支持mp4格式(即chrome)的浏览器显示视频但忽略旋转元数据。当我在linux上用mplayer播放这些视频时,会发生同样的事情。
首先想到的解决方案是
ffmpeg -i in.mp4 -vf transpose=<rotation value> out.mp4
浏览器是否有理由忽略旋转元数据?这是一个错误吗?我可以在录制视频时做些什么来解决这个问题吗?
以下分别来自iOS和Android的2个示例。
Thansk
答案 0 :(得分:0)
方法1:如果宽高比不是水平的,则旋转HTML元素 Chrome HTML5 Video Flipping Portrait Sideways
方法2:重新编码iPhone-Video
Displaying vertical videos with html5 on chrome
方法3:在iOS设备上正确设置方向(高级)
iOS AVFoundation: Setting Orientation of Video
方法4:问这个人他是否找到了答案 Use FFmpeg to rotate the video based on its <rotate> metadata? Why does Android put the wrong metadata?