旋转 MP4,并更改尺寸

hre*_*hrt 3 video mp4 video-editing

我有一个 MP4 视频是在我的 Android 手机上拍摄的,但是那个人拿着我的手机以某种奇怪的方式拍摄了它。

在 QuickTime 中查看它时,我必须将我的笔记本电脑旋转 90 度,然后我会看到它作为一个普通的宽屏视频,一切看起来都很好。

在 VLC 中,视频已经是具有适当尺寸的宽屏,但它是颠倒的,所以我必须颠倒我的笔记本电脑。

当我将它导入 iMovie 时,我将它旋转了 90 度,它的右侧朝上,但视频被压扁了,仍然比宽高。

不知道发生了什么,但我怎样才能让它宽屏并且正面朝上?

slh*_*hck 8

MP4 文件可以有一个rotate标志,它告诉播放器在播放期间旋转视频,而不会改变实际视频比特流的编码和方向。自2.2.0版以来,VLC 确实支持此标志。

问题是你想用视频做什么。你基本上有两个选择:

  • 保持原样并删除旋转标志。如果您想稍后编辑视频,请在您使用的任何程序中翻转它。如果要播放,请选择支持即时轮换的播放器。
  • 旋转和转码视频,使其具有正确的方向。不过,这会稍微降低视频质量。

您可以使用ffmpeg. 为您的操作系统下载一个静态构建,并将其解压缩到一个目录中,例如,ffmpeg可执行文件位于~/Downloads. 然后打开一个终端窗口并导航到所述目录:

cd ~/Downloads
./ffmpeg
Run Code Online (Sandbox Code Playgroud)

这应该运行ffmpeg二进制文件。有关更多信息,请阅读我们关于 的博客文章ffmpeg


以下是您可以使用的实际命令。如果要保留实际的视频码流并去掉旋转标志,只需去掉第一个视频流的元数据v:0,复制视频和音频码流( -c copy):

ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=0 output.mp4
Run Code Online (Sandbox Code Playgroud)

如果要对视频进行转码,将其翻转 180°,则需要指定视频编码器(此处为libx264)和翻转过滤器。音频流将被复制。

ffmpeg -i input.mp4 -c:v libx264 -crf 23 -filter:v "hflip,vflip" -c:a copy output.mp4
Run Code Online (Sandbox Code Playgroud)

您可以调整 CRF(恒定速率因子)以更改视频质量。理智值介于 18 和 28 之间,具体取决于您的输入质量。较低意味着更好的质量,因此如果您的视频最终看起来比原始视频差,请尝试使用较低的 CRF 值。