FFMPEG加入两个不同宽度的视频

时间:2017-11-21 19:55:22

标签: join ffmpeg command width

我正在尝试并排加入两个视频。 我使用这个命令,但它增加了我需要它的垫子:

ffmpeg -i video_1.mp4 -i video_2.mp4 -filter_complex '[0:v]pad=iw*2:ih:0:0[intv];[intv][1:v]overlay=W/2:0[vid]' -map [vid] -c:v libx264 -crf 22 -preset veryfast output.mp4

有没有办法改变焊盘宽度,所以它是:input1 width + input2 width? 并且还覆盖在第一个输入宽度的最后?

我的意思是,如果video_1宽度为600px,video_2宽度为200px,则输出视频宽度应为800px,video_2应从(600,0)开始。

谢谢

1 个答案:

答案 0 :(得分:0)

使用hstack过滤器:

ffmpeg -i video_1.mp4 -i video_2.mp4 -filter_complex '[0:v][1:v]hstack=2[vid]' -map [vid] -c:v libx264 -crf 22 -preset veryfast output.mp4

hstack过滤器要求所有输入具有相同的高度。

如果输入的高度不同,则需要更长的解决方法。

ffmpeg -i video_1.mp4 -i video_2.mp4 -filter_complex "color=d=0.1[c];
         [c][0]scale2ref[c][v1];[c][1]scale2ref=w=main_w+iw:h=max(main_h,ih)[c][v2];
         [c][v1]overlay=0:0[ol-vid1];[ol-vid1][v2]overlay=W-w:0,setsar=1"   out.mp4

这需要2017年6月中旬或更高版本的ffmpeg。