ffmpeg 通过添加框或边框来扩展(不调整大小)视频大小
ffmpeg extend (not resize) video size by adding box or border
假设我有一个特殊分辨率的视频,例如 1280x718,我想将其更改为 1280x720。
但我不想将 718 像素垂直插值到 720,我宁愿只在顶部和底部添加一行。
所以基本上,我正在寻找一种方法来告诉 ffmpeg 创建 1280x720 的输出视频,其中 1280x718 的输入视频覆盖中心,所有未覆盖的区域都是黑色或其他。
我想我们可以称其为裁剪的对立面。我知道如何 调整 视频(带插值),但在这种情况下,我不想重新缩放或弄乱原始内容,只需添加一个小边框。
找到答案,张贴在这里供参考:
ffmpeg -i input.mp4 -vcodec libx264 \
-vf "pad=width=1280:height=720:x=0:y=1:color=black" -acodec copy result.mkv
width
和 height
是预期的输出分辨率,x
和 y
是放置输入的左上角坐标(在新输出中)。 color
(可选)是边框颜色,也可以使用color=0xff00ff
表示法。
我还需要做问题描述的事情,但是虽然接受的答案中给出的解决方案可以添加我需要的填充,但它没有使图像在该填充中居中。
查看 pad
过滤器的文档揭示了这一点:
x, y
Specify the offsets to place the input image at within the padded
area, with respect to the top/left border of the output image.
The x expression can reference the value set by the y expression, and vice versa.
The default value of x and y is 0.
If x or y evaluate to a negative number, they’ll be changed so the input image is centered on the padded area.
果然,给 -1
的 x
和 y
值可以使我的图像水平(沿 x 轴)和垂直(沿 y 轴)居中:
ffmpeg -i "input.mp4" -c:a copy -c:v libx264 -vf "pad=width=1920:height=1242:x=-1:y=-1:color=black" output2.mp4
假设我有一个特殊分辨率的视频,例如 1280x718,我想将其更改为 1280x720。
但我不想将 718 像素垂直插值到 720,我宁愿只在顶部和底部添加一行。
所以基本上,我正在寻找一种方法来告诉 ffmpeg 创建 1280x720 的输出视频,其中 1280x718 的输入视频覆盖中心,所有未覆盖的区域都是黑色或其他。
我想我们可以称其为裁剪的对立面。我知道如何 调整 视频(带插值),但在这种情况下,我不想重新缩放或弄乱原始内容,只需添加一个小边框。
找到答案,张贴在这里供参考:
ffmpeg -i input.mp4 -vcodec libx264 \
-vf "pad=width=1280:height=720:x=0:y=1:color=black" -acodec copy result.mkv
width
和 height
是预期的输出分辨率,x
和 y
是放置输入的左上角坐标(在新输出中)。 color
(可选)是边框颜色,也可以使用color=0xff00ff
表示法。
我还需要做问题描述的事情,但是虽然接受的答案中给出的解决方案可以添加我需要的填充,但它没有使图像在该填充中居中。
查看 pad
过滤器的文档揭示了这一点:
x, y
Specify the offsets to place the input image at within the padded area, with respect to the top/left border of the output image.
The x expression can reference the value set by the y expression, and vice versa.
The default value of x and y is 0.
If x or y evaluate to a negative number, they’ll be changed so the input image is centered on the padded area.
果然,给 -1
的 x
和 y
值可以使我的图像水平(沿 x 轴)和垂直(沿 y 轴)居中:
ffmpeg -i "input.mp4" -c:a copy -c:v libx264 -vf "pad=width=1920:height=1242:x=-1:y=-1:color=black" output2.mp4