iPhone上的FFmpeg - 修改视频方向

Mat*_*gan 5 iphone video ffmpeg orientation

我正在搞乱iPhone 3GS上装有FFmpeg的h264视频.问题是以"肖像"方向记录的任何视频都有一个应用于它们的变换矩阵,使它们显示旋转90度的逆时针.

据我所知,到目前为止,我只需修改'tkhd'原子中的变换矩阵.问题是我无法访问或修改此数据.我检查了FFmpeg实现:

static int mov_read_tkhd(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
Run Code Online (Sandbox Code Playgroud)

这清楚地显示了如何在avformat中访问矩阵,但是当我尝试使用相同的函数访问头字节时,我没有得到任何合理的值.即使我成功地拉出矩阵,我也不确定如何更换它?FFmpeg具有检索和附加到轨道标题的功能,但似乎没有替换它?

任何帮助将不胜感激.

谢谢,马特.

小智 13

对于那些无法使用v filter选项工作的人,经过一些搜索后,我找到了一个适用于我的构建的替代选项:

ffmpeg -i in.avi -vf "transpose=1" out.avi
Run Code Online (Sandbox Code Playgroud)

这会将视频顺时针旋转90度.希望这能帮助所有关于ubuntu的人像我一样挣扎!:)


Raj*_*dal 2

iPhone 3GS 中录制的纵向视频在横向中奇怪地旋转,只有 Quicktime 才能正确播放它,像 VLC 等播放器以横向方式播放纵向模式视频,因为它是这样编码的!也许苹果已经设置了一些位,以便 Quicktime 正确识别和设置方向。

您可以使用 ffmpeg 的 -vfilters 选项来旋转视频。它的版本为 r21242。你必须在你的 ffmpeg 版本上修补它。

使用 --enable-vfilters 配置构建

您可以使用以下选项:

ffmpeg -vfilters "rotate=90" -i input.mp4 output.mp4
Run Code Online (Sandbox Code Playgroud)

旋转输入影片。