当我使用FFMPEG从iPhone 4转换.mov文件和从Android转换.3gp时。 我需要将视频旋转90度,但iPhone 4s需要180度......
有什么方法可以解决这个问题吗?
答案 0 :(得分:2)
我不记得Android如何处理这个问题,但是iPhone会在mov文件元数据中记录方向信息。根据录制时相机的保持方式,转换后视频可能需要0度,90度,180度甚至270度才能直立播放。 到目前为止,我还不知道ffmpeg要解析这个元数据的任何补充,所以你必须使用 < / p>
ffprobe -show_streams
或类似的东西手动完成,然后适当地设置旋转。
更新:正如kibitzer points out ffmpeg现在检测到视频已旋转,但尚未提供自动轮播修复。相反,您仍然需要解析轮换信息,并使用transpose
,vflip
和hflip
视频过滤器的组合来正确旋转视频。
答案 1 :(得分:2)
较新的ffmpeg会返回 rotate:元数据标题(运行ffmpeg -i
时),指定视频旋转的角度,因此您无需解析旋转矩阵您可以使用ffmpeg的过滤器旋转视频。
例如,如果ffmpeg输出 rotate:90 ,那么你会运行如下:
ffmpeg -y -i rotated_vid.mov -vf "transpose=1" correct_video.avi
答案 2 :(得分:0)
我使用一个名为mediainfo的程序来显示方向角并输入ffmpeg选项:
-vf%ROTATE%
95%的案例中的ffmpeg了解方向,但在某些硬件中存在某些情况......