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