You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使用FFmpeg缩小视频画面并添加黑边

如何使用FFmpeg缩小视频画面并添加黑边

嘿,太懂你的需求了——给CRT屏幕看视频,得把画面缩小一圈留黑边放字幕,还得保持原视频的分辨率对吧?刚好FFmpeg就能完美搞定这个,我给你一步步说清楚怎么操作。

首先,核心思路是先用scale滤镜把视频画面按比例缩小,再用pad滤镜把黑边补上,还原到原视频的分辨率。这里给你一个直接能用的命令模板,你只要替换对应参数就行:

ffmpeg -i input.mp4 -filter_complex "[0:v]scale=缩小后的宽度:缩小后的高度,pad=原宽度:原高度:(ow-iw)/2:(oh-ih)/2:black[v]" -map "[v]" -map 0:a -c:a copy output.mp4

我给你拆解一下每个部分的作用,方便你调整:

  • -i input.mp4:替换成你自己的输入视频文件名
  • scale=缩小后的宽度:缩小后的高度:这里要注意必须和原视频的宽高比一致,比如原视频是1920x1080(16:9),那你可以设成1600x900、1440x810这类同比例的尺寸,不然画面会变形
  • pad=原宽度:原高度:(ow-iw)/2:(oh-ih)/2:black原宽度:原高度填你视频原来的分辨率,后面的(ow-iw)/2(oh-ih)/2是让缩小后的画面自动居中,black指定黑边颜色(要是想换别的颜色,也可以用十六进制码,比如#FFFFFF是白色)
  • -map "[v]":指定用处理后的视频流
  • -map 0:a -c:a copy:直接复制原音频,不用重新编码,能省不少时间
  • output.mp4:替换成你想要的输出文件名

举个实际例子,假设你的原视频是1920x1080,想缩到1600x900加黑边,命令就是:

ffmpeg -i myvideo.mp4 -filter_complex "[0:v]scale=1600:900,pad=1920:1080:(ow-iw)/2:(oh-ih)/2:black[v]" -map "[v]" -map 0:a -c:a copy myvideo_with_borders.mp4

另外给你两个小提示:

  • 不知道原视频分辨率?先跑ffmpeg -i input.mp4,输出里找Stream #0:0那一行,里面会写1920x1080这类信息
  • 要是觉得黑边不够宽,直接把scale的尺寸改小就行,比如缩到1280x720,黑边就会更宽,字幕放进去更显眼

备注:内容来源于stack exchange,提问作者Etcetera

火山引擎 最新活动