【问题标题】:Orientation issue with mobile recordings移动录音的方向问题
【发布时间】:2012-05-11 17:35:16
【问题描述】:

当我使用 FFMPEG 转换来自 iPhone 4 的 .mov 文件和来自 Android 的 .3gp 文件时。 我需要将视频旋转 90 度,但 iPhone 4s 需要旋转 180 度...

有没有办法解决这个问题?

【问题讨论】:

    标签: iphone video ffmpeg


    【解决方案1】:

    我不记得 Android 是如何处理这个问题的,但 iPhone 会在 mov 文件元数据中记录方向信息。根据录制时相机的握持方式,视频可能需要 0、90、180 甚至 270 度旋转才能在转换后直立播放。 到目前为止,我不知道 ffmpeg 有任何添加来解析这个元数据,所以你必须使用 ffprobe -show_streams 或类似的东西手动完成,然后适当地设置旋转。

    更新kibitzer points out ffmpeg 现在确实检测到视频已旋转,但尚未提供自动旋转修复。相反,您仍然需要解析出旋转信息并使用transposevfliphflip 视频过滤器的组合来正确旋转视频。

    【讨论】:

      【解决方案2】:

      较新的 ffmpeg 返回一个 rotate: 元数据标头(当您运行 ffmpeg -i 时),它指定视频旋转的角度,因此您不必自己解析旋转矩阵并可以使用 ffmpeg 的过滤器来旋转视频。

      例如,如果 ffmpeg 输出 rotate: 90 那么你会运行类似:

      ffmpeg -y -i rotated_vid.mov -vf "transpose=1" correct_video.avi

      【讨论】:

        【解决方案3】:

        我使用一个名为 mediainfo 的程序,它显示方向角度并放入 ffmpeg 选项:

        -vf %ROTATE%

        ffmpeg 在 95% 的情况下理解方向,但在某些情况下,在某些硬件中......

        【讨论】:

        • 会很好,如果我不需要自己读取元数据,并在我的 ffmpeg 命令中使用它... :( 现在我正在使用:ffmpeg -i VID_20120510_104204.3gp - y -f flv -ar 44100 VID_20120510_104204.flv
        • 我用这个:MediaInfo --Inform="Video;%Rotation%" video.mp4
        • 祝你好运 :) 你需要做一些计算来修复旋转,但这很容易
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-02
        相关资源
        最近更新 更多