我有一台通过 BootCamp 安装了 Windows 的 MacBookPro。我从 iPhone 上复制了一个视频并将其保存在 Windows 分区上。视频的缩略图看起来是颠倒的。当我在 Windows Media Player 或 VLC 中播放它时,视频看起来是颠倒的。当我在 QuickTime 播放器(仍在 Windows 上)中播放它时,它看起来是正面朝上的。
然后我启动 MacOS。缩略图看起来是正面朝上的,当我播放它时,它看起来也是正面朝上的。
那么到底发生了什么——哪个应用程序/操作系统告诉我真相了?我想确认一下,因为我想将其上传到 YouTube,而且文件很大,所以不想浪费时间/带宽。
PS 编辑:正如一些人指出的那样 - 有些程序忽略了方向标签。我在 Windows 8 上尝试过,所有程序似乎都尊重该标签(包括 Windows Media Player 和 Metro 屏幕中的 Movie Maker 和视频小程序)。所以进展不错。
答案1
来自旋转的 iPhone 的视频具有一个rotate
属性。
如果视频在不支持此属性的标准播放器中显示为倒置,则意味着它实际上是颠倒过来,并将属性设置为180
。
您可以完全删除旋转标志,例如和ffmpeg
:
ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=0 output.mp4
这只会改变元数据,而不会重新编码视频。现在,您的视频应该可以在任何播放器上上下播放。
当然,如果你想将其上传到 YouTube,它会倒过来显示。现在你有两个选择:
- 使用它的视频编辑器。
通过在您的机器上重新编码来旋转视频,例如使用
ffmpeg
,应用hflip
和vflip
过滤器:ffmpeg -i input.mp4 -c:v libx264 -filter:v "hflip,vflip" -c:a copy output.mp4
您可能希望
-crf 20
在后面添加选项-c:v libx264
以强制提高质量,因为重新编码视频会在一定程度上降低其质量。较低的 CRF 参数意味着更好的质量,通常您会使用 18 到 28 之间的值。23 是默认值。
答案2
我今天也遇到了这个问题,因为我使用的是 iPhone 发送的 MOV 文件。我使用的是 Windows 11 计算机。直接观看时(即使用 Win Media Player 或 VLC Media Player),视频播放正常,但每当我将其上传到我的演示软件(Proclaim)时,视频就会上下颠倒。
我使用 ffmpeg 重置旋转标志,手动翻转视频等。所有这些似乎都会影响媒体播放器,但在 Proclaim 中它总是坏掉。
我最终通过将文件转换为 MP4 格式解决了这个问题。就这么简单。我猜 Proclaim(在 Windows 上?)不适用于包含旋转的 MOV。
.\ffmpeg -i input.mov output.mp4