背景
scale
是一个视频滤镜(filter),用于对视频进行缩放。scale
参数的格式为scale=w:h
,其中w
表示缩放后的视频宽度,h
表示缩放后的视频高度。
scale
参数有以下三种常用的用法:
-
固定宽度或高度,等比例缩放:
scale=-1:720
:将视频的宽度等比例缩放,使得高度为 720 像素。scale=1280:-1
:将视频的高度等比例缩放,使得宽度为 1280 像素。
-
指定宽度和高度,非等比例缩放:
scale=640:480
:将视频缩放为宽度为 640 像素,高度为 480 像素的大小。
-
指定宽度和高度,等比例缩放并填充黑边:
scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2
:- 将视频缩放为宽度为 1280 像素,高度为 720 像素的大小,并在视频周围填充黑边。这种方式可以保持视频的宽高比不变。
🌰例子
1.将视频宽度等比例缩放为 640 像素:
ffmpeg -i input.mp4 -vf scale=640:-1 output.mp4
2.将视频高度等比例缩放为 480 像素:
ffmpeg -i input.mp4 -vf scale=-1:480 output.mp4
- 将视频缩放为宽度为 1280 像素,高度为 720 像素的大小,同时在视频周围填充黑边:
ffmpeg -i input.mp4 -vf "scale=1280:720:force_original_aspect_ratio=decrease,
pad=1280:720:(ow-iw)/2:(oh-ih)/2" output.mp4
NOTE:
在使用 scale 命令时,如果指定的宽度和高度比例与原始视频的宽高比例不同,那么视频的形状可能会发生变化。- 为了避免这种情况,可以使用
force_original_aspect_ratio=decrease
参数,让 FFmpeg 在缩放视频时保持原始宽高比例。 - 同时,为了让视频在缩放后仍然填满整个画面,可以使用
pad
参数,在视频周围填充黑边。
- 为了避免这种情况,可以使用
- 将视频缩放为宽度为 640 像素,高度为 480 像素的大小,同时在视频周围填充黑边:
ffmpeg -i input.mp4 -vf "scale=w=640:h=480:force_original_aspect_ratio=decrease,pad=640:480:(ow-iw)/2:(oh-ih)/2" output.mp4
其他用于对视频进行缩放和裁剪的命令
crop
zoompan
命令温故
- ffmpeg -y -c:v libx264 -c:a aac -vf scale= -1:1080
*-
ffmpeg
:FFmpeg 工具的命令名。
-y
:覆盖输出文件而不询问。-c:v libx264
:使用 libx264 编码器对视频进行编码。-c:a aac
:使用 AAC 编码器对音频进行编码。-vf scale=
:使用视频滤镜对视频进行缩放。12
:缩放后的视频宽度,高度为1080。