天天看点

ffmpeg 拼接mp4_ffmpeg 拼接视频(不同格式、分辨率、帧率、角度等)

ffmpeg -i 01.mp4 -i 02.mp4 -i 03.mp4 -f lavfi -i color=black -filter_complex "[0:v]format=pix_fmts=yuva420p,rotate=PI*0/180:c=none:ow=rotw(PI*0/180):oh=roth(PI*0/180),pad=1920:1084:(ow-iw)/2:(oh-ih)/2:black,setpts=PTS-STARTPTS+0/TB[va0];[1:v]format=pix_fmts=yuva420p,rotate=PI*0/180:c=none:ow=rotw(PI*0/180):oh=roth(PI*0/180),pad=1920:1084:(ow-iw)/2:(oh-ih)/2:black,setpts=PTS-STARTPTS+3/TB[va1];[2:v]format=pix_fmts=yuva420p,rotate=PI*0/180:c=none:ow=rotw(PI*0/180):oh=roth(PI*0/180),pad=1920:1084:(ow-iw)/2:(oh-ih)/2:black,setpts=PTS-STARTPTS+7/TB[va2];[3:v]scale=1920:1084:force_original_aspect_ratio=decrease,pad=1920:1084:(ow-iw)/2:(oh-ih)/2:black,trim=duration=12[over0];[over0][va0]overlay[over1];[over1][va1]overlay[over2];[over2][va2]overlay=format=yuv420[outv];[0:a][1:a][2:a] concat=n=3:v=0:a=1[outa]" -aspect 1920:1084 -vcodec libx264 -map "[outv]" -map "[outa]" -y out.mp4

描述:

ffmpeg 拼接视频,可以不同格式、分辨率、帧率、角度等,此是有损压缩。

如果想加淡入淡出等效果,可以直接在上面命令行加入。

参数:

只说明几个相关参数,其它不做解释,以免误人子弟:

1、rotate=PI*0/180:c=none:ow=rotw(PI*0/180):oh=roth(PI*0/180)

旋转角度,上面PI*0代表0度,如果90度,全部改成PI*90

2、pad=1920:1084:(ow-iw)/2:(oh-ih)/2:black

1920:1084代表目标视频大小、(ow-iw)/2:(oh-ih)/2代表当前视频在目标中的位置

(中间)、black代表超出部分填充黑色。

注:理论上1920:1084应该是1920:1080,即遵循16:9比例,此处是为了验证此比例

也可以正确拼接图像,但目标分辨的长宽都要大于等于所有拼接视频的

最大宽度或高度。

3、setpts=PTS-STARTPTS+0/TB

+0代表当前视频在目标视频中的位置,以秒为单位,+0代表开始处、+3代表3秒处。