ffmpeg视频合并,填充黑色背景

一、ffmpeg视频合并

需要注意的是帧率、尺寸等不同可能会造成视频的合并失败

这里面支持不同尺寸的视频合并,同时不满足尺寸的使用pad进行颜色填充

ffmpeg -i input1.mp4 -i input2.mp4 -i input3.mp4 -i input4.mp4 \
-filter_complex "\
[0:v]scale='min(1280,iw)':min'(720,ih)':force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2:black[v0]; \
[1:v]scale='min(1280,iw)':min'(720,ih)':force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2:black[v1]; \
[2:v]scale='min(1280,iw)':min'(720,ih)':force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2:black[v2]; \
[3:v]scale='min(1280,iw)':min'(720,ih)':force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2:black[v3]; \
[v0][0:a][v1][1:a][v2][2:a][v3][3:a]concat=n=4:v=1:a=1[outv][outa]" \
-map "[outv]" -map "[outa]" output.mp4

在这个命令中,我们假设你有 4 个输入视频文件 input1.mp4, input2.mp4, input3.mp4, 和 input4.mp4。它们可以是不同尺寸的视频。

使用 filter_complex 进行视频的处理。对于每个输入视频,我们使用 scale 过滤器将其缩放到 1280x720 的大小,并使用 pad 过滤器填充为黑边,以使其成为 1280x720 分辨率的视频。

最后,使用 concat 过滤器将所有处理过的视频合并成一个输出视频,并保存为 output.mp4 文件。

二、帧率不同

还需要在命令上增加-fps_mode vfr

三、常规的视频合并

这里面记录的是常规的视频合并(有声音的)

ffmpeg -i assets/video/merge/1634767.mp4 -i assets/video/merge/2204734.mp4 -filter_complex "[0:v]scale=1024:576:force_original_aspect_ratio=1[v0];[1:v]scale=1024:576:force_original_aspect_ratio=1[v1];[v0][0:a][v1][1:a]concat=n=2:v=1:a=1[v][a]" -map [v] -map [a] output.mp4

你可能感兴趣的:(ffmpeg,音视频)