FFmpeg实现双视频1920x1080同屏拼接(取最长时长)技术咨询
单条FFmpeg命令实现视频左右拼接+音频混合+可选分割线
基础版(无分割线)
ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex \ "[0:v]crop=960:1080:0:0[v0]; \ [1:v]crop=960:1080:960:0[v1]; \ [v0][v1]overlay=960:0[v]; \ [0:a][1:a]amix=inputs=2:duration=longest[a]" \ -map "[v]" -map "[a]" -c:v libx264 -c:a aac output.mp4
参数说明:
crop=960:1080:0:0:从视频1左上角(0,0)开始,裁剪出宽960、高1080的左半区域crop=960:1080:960:0:从视频2的(960,0)位置开始,裁剪出宽960、高1080的右半区域overlay=960:0:将裁剪后的视频2叠加到视频1右侧,刚好拼成1920x1080分辨率amix=inputs=2:duration=longest:混合两段音频,以较长视频的时长作为输出时长-c:v libx264-c:a aac:指定通用的视频、音频编码格式,保证输出兼容性
带分割线版本
在基础滤镜链中添加drawbox滤镜,在拼接位置绘制垂直分割线:
ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex \ "[0:v]crop=960:1080:0:0[v0]; \ [1:v]crop=960:1080:960:0[v1]; \ [v0][v1]overlay=960:0[v_temp]; \ [v_temp]drawbox=x=959:y=0:w=2:h=1080:color=black:t=fill[v]; \ [0:a][1:a]amix=inputs=2:duration=longest[a]" \ -map "[v]" -map "[a]" -c:v libx264 -c:a aac output_with_line.mp4
分割线参数说明:
x=959:分割线起始x坐标,精准对齐拼接缝隙w=2:分割线宽度,可按需调整为1、3等数值color=black:分割线颜色,支持RGB色值(如#ff0000为红色)t=fill:填充分割线区域,确保不透明
内容的提问来源于stack exchange,提问作者BlueMatrix
相关产品推荐
相关产品推荐

