首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从iphone捕获的视频在使用ffmpeg转换为.mp4时会发生旋转

从iphone捕获的视频在使用ffmpeg转换为.mp4时会发生旋转
EN

Stack Overflow用户
提问于 2012-02-23 15:02:28
回答 7查看 32.9K关注 0票数 22

当我尝试在我的应用程序中上传从我的iPhone捕获的视频时,服务器执行从.mov到.mp4的转换,以便可以在其他平台上播放。然而,问题是,当我拍摄视频(在纵向),它被转换(使用ffmpeg),然后从服务器播放,它似乎是旋转的。有什么想法吗?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-02-23 15:56:54

根据您使用的ffmpeg版本和编译方式,可以使用以下方法之一...

ffmpeg -vf "transpose=1" -i input.mov output.mp4

...or...

ffmpeg -vfilters "rotate=90" -i input.mov output.mp4
票数 10
EN

Stack Overflow用户

发布于 2015-06-18 02:11:01

FFMPEG更改了默认行为,使用旋转元数据in 2015自动旋转视频源。这是作为v2.7发布的。

如果您的ffmpeg版本是v2.7或更高版本,但您的旋转元数据不受尊重,则问题可能是您使用的是基于元数据的自定义旋转。这将导致相同的逻辑被应用两次,改变或取消旋转。

除了删除自定义旋转(推荐)外,还可以使用-noautorotate关闭自动旋转。

ffmpeg -noautorotate -i input.mp4...

这在一些旧版本中也是有效的。

票数 35
EN

Stack Overflow用户

发布于 2012-02-24 04:39:46

为了完整起见,发生这种情况的原因是iPhones实际上只捕获了一个固定方向的视频。然后,测量到的方向被记录在苹果特定的元数据中。

其效果是,Quicktime播放器在回放期间读取元数据并将视频旋转到正确的方向,但其他软件(例如,VLC)不这样做,并将其显示为在实际编解码器数据中定向。

这就是为什么rotate=90 (或vflip,或transpose等)对某些人有效,但对其他人无效。根据相机在录制过程中的手持方式,所需的旋转可能是90度、180度,甚至270度。在不读取元数据的情况下,您只是在猜测需要多少旋转,修复一个视频的更改对另一个视频将失败。

票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9408542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档