方法1:使用 transpose
滤镜(推荐)
ffmpeg -i input.mp4 -vf "transpose=2" -c:a copy output.mp4
参数解析:
-
transpose=2
:逆时针旋转90°(常用选项):-
0
:逆时针90°+垂直翻转 -
1
:顺时针90° -
2
:逆时针90° -
3
:顺时针90°+垂直翻转
-
-
-c:a copy
:直接复制音频,避免重新编码。
输出结果:
- 原视频
620×1280
→ 旋转后1280×620
(横屏)。
方法2:使用 rotate
参数(部分FFmpeg版本支持)
ffmpeg -i input.mp4 -vf "rotate=-90*PI/180" -c:a copy output.mp4
-
rotate=-90*PI/180
:逆时针旋转90°(弧度制)。 -
需注意:某些FFmpeg版本可能不支持直接旋转,建议优先用
transpose
。
方法3:旋转并自动适应横屏比例(如16:9)
如果旋转后希望强制调整为标准横屏比例(如1280×720),可结合 scale
和 pad
:
ffmpeg -i input.mp4 -vf "transpose=2,scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2" -c:a copy output.mp4
效果:
-
先逆时针旋转90°(
620×1280
→1280×620
)。 -
缩放到高度720,宽度按比例计算(
1280*(720/620)≈1486
)。 -
左右填充黑边至
1280×720
(标准16:9横屏)。
常见问题
-
旋转后画面被裁剪?
-
检查原视频是否有黑边,可先用
crop
去除多余边缘:ffmpeg -i input.mp4 -vf "crop=600:1280:10:0,transpose=2" -c:a copy output.mp4
-
-
旋转后视频方向元数据未更新?
-
某些播放器可能忽略旋转,需强制修正:
ffmpeg -i input.mp4 -vf "transpose=2" -metadata:s:v rotate=0 -c:a copy output.mp4
-
总结命令
需求 | 命令 |
---|---|
单纯逆时针旋转90° | ffmpeg -i input.mp4 -vf "transpose=2" -c:a copy output.mp4 |
旋转+适配16:9横屏 | ffmpeg -i input.mp4 -vf "transpose=2,scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2" -c:a copy output.mp4 |
旋转+去除原黑边 | ffmpeg -i input.mp4 -vf "crop=600:1280:10:0,transpose=2" -c:a copy output.mp4 |
按需选择即可!
原文件如下图:

转换后画面:
