使用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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库