我有一个用我的 Android 手机拍摄的 MP4 视频,但是那个人用某种奇怪的方式拿着我的手机拍摄了它。
当在 QuickTime 中观看它时,我必须将笔记本电脑旋转 90 度,然后我才能将其视为常规的宽屏视频,并且一切看起来都很好。
在 VLC 中,视频已经是具有适当尺寸的宽屏,但它是颠倒的,所以我必须将笔记本电脑翻转过来。
当我将它导入 iMovie 时,我将其旋转了 90 度,它现在是正面朝上,但视频被挤压了,并且仍然高度大于宽度。
不知道发生了什么,但我怎样才能使它变成宽屏并且正面朝上?
答案1
MP4 文件可以有一个rotate
标志,告诉播放器在播放期间旋转视频,而不会改变实际视频比特流的编码和方向。 VLC 自版本以来支持此标志2.2.0。
问题在于你想用视频做什么。你基本上有两个选择:
- 保持原样并删除旋转标记。如果您以后想编辑视频,请在您使用的任何程序中翻转它。如果您想播放它,请选择支持即时旋转的播放器。
- 旋转并转码视频,使其具有正确的方向。不过这会稍微降低视频质量。
您可以使用 完成所有这些操作ffmpeg
。下载静态构建适用于您的操作系统,并将其解压到一个目录,例如,以便ffmpeg
可执行文件位于~/Downloads
。然后打开终端窗口并导航到所述目录:
cd ~/Downloads
./ffmpeg
这应该会运行ffmpeg
二进制文件。有关更多信息,请阅读我们的博客文章ffmpeg
。
以下是您可以使用的实际命令。如果您想保留实际的视频比特流并删除旋转标志,则只需删除第一个视频流的元数据v:0
,然后复制视频和音频比特流(-c copy
):
ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=0 output.mp4
如果您想要对视频进行转码,将其翻转 180°,则需要指定视频编码器(此处为libx264
)和翻转过滤器。音频流将被复制过来。
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -filter:v "hflip,vflip" -c:a copy output.mp4
您可以调整 CRF(恒定利率因子) 来更改视频质量。合理的值介于 18 和 28 之间,具体取决于您的输入质量。值越低意味着质量越好,因此如果您的视频最终看起来比原始视频更差,请尝试使用较低的 CRF 值。