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秒处。