使用ffmpeg缩放视频,改变视频尺寸,固定分辨率或者保持视频宽高比的办法

比如我们有一个视频文件,1.mp4,分辨率为720P,也就是1280x720像素。

假如我们想要使用ffmpeg根据1.mp4生成一个小一点分辨率的视频,比如我们想要生成一个640x480的视频文件,我们应该怎么做呢,一句命令行搞定:

ffmpeg -i 1.mp4 -vf scale=640:480 output.mp4

这样就会生成一个固定尺寸,分辨率为640x480的视频output.mp4。但是这里有个问题,源分辨率1280x720,宽高比为1.77,但是生成的分辨率640x480,宽高比为1.33,生成的视频播放出来视频就已经被强行改变了宽高比,视频被拉伸观影体验非常不自然,那么问题来了,如果我们想要保持宽高比,并且还要缩放视频,我们怎么办。

保持宽高比缩放也很简单,也是一句命令行:

ffmpeg -i 1.mp4 -vf scale=640:-1 output.mp4

这个命令行的意思是,设置宽为640,但是保持宽高比1.77,并且智能计算出来高度,最后生成的高度为361。

但是如果使用libx264转码一个视频为mp4格式,如果高度为361,则会抛出一个错误:高度不能被2整除,这个错误可以看我以前写的帖子,今天只讲如何解决这个问题,解决这个问题也很简单,设置-1为-2即可。

ffmpeg -i 1.mp4 -vf scale=640:-2 output.mp4

如此就解决了这个问题,生成的高度为360。

最后总结一下:

1.缩放为固定分辨率的命令行:

ffmpeg -i 1.mp4 -vf scale=640:480 output.mp4

2.缩放为自适应宽高比的命令行:

ffmpeg -i 1.mp4 -vf scale=640:-2 output.mp4

如果强制转换某个视频比例,而且要求多余的画布使用黑色渲染

ffmpeg -i 111.mp4 -vf "scale=272:480,pad=640:480:(iw+ow)/2:0:black" 4x3.mp4

posted @   从雍和宫走到电影学院  阅读(2100)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示