FFmpeg 命令将 MP4 文件旋转 90º

sho*_*hox 7 ffmpeg rotate

我可以使用 ffmpeg 旋转(保存、重新编码)一个 .mp4 文件吗?

我发现的唯一一件事是在邮件列表上说-vfilters "rotate=90"但 ffmpeg 说“没有 vfilters”。我试过了-vf,它说“没有旋转”。

如果我尝试在 VLC 中执行此操作,它根本不会旋转并杀死音频。我在 Mac 上。

FFmpeg version git-svn-r23607, Copyright (c) 2000-2010 the FFmpeg developers
  built on Jun 14 2010 23:52:55 with gcc 4.2.1 (Apple Inc. build 5659)
  configuration: 
  libavutil     50.19. 0 / 50.19. 0
  libavcodec    52.76. 0 / 52.76. 0
  libavformat   52.68. 0 / 52.68. 0
  libavdevice   52. 2. 0 / 52. 2. 0
  libavfilter    1.20. 0 /  1.20. 0
  libswscale     0.11. 0 /  0.11. 0
Hyper fast Audio and Video encoder
Run Code Online (Sandbox Code Playgroud)

小智 6

使用从 SVN 中提取的当前版本,您可以使用 -vf "transpose=1" 旋转视频。
下面是一个例子:

ffmpeg -vf "transpose=1" -i input.mp4 output.mp4
Run Code Online (Sandbox Code Playgroud)

转置命令的文档 + 选项在这里

(这是我如何构建 ffmpeg 以防万一)

svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg
cd ffmpeg
./configure --enable-shared  --disable-mmx --arch=x86_64
make
sudo make install
Run Code Online (Sandbox Code Playgroud)

  • 我必须将过滤器放在输入之后才能工作:`ffmpeg -i input.mp4 -vf "transpose=1" output.mp4` (6认同)
  • 您是否有禁用 MMX 的原因?我看不出这有什么意义。 (5认同)

igo*_*024 5

也许它应该--enable-vfilters在编译之前配置?顺便说一句,mencoder 可以很好地完成这项工作,但是您必须重新编码视频:

mencoder -oac copy -ovc lavc -vf rotate=1 original.mp4 -o 90_CW_rotated.mp4 mencoder -oac copy -ovc lavc -vf rotate=2 original.mp4 -o 90_CCW_rotated.mp4