使用ffmpeg把2个视频合并一个视频,A放左边B放右边合成C视频

使用ffmpeg把2个视频合并一个视频,A放左边B放右边合成C视频

 ffmpeg -i videoA.mp4 -i  videoB.mp4  -filter_complex "hstack" C.mp4

如果高度不一致:

ffmpeg -i videoA.mp4 -i videoB.mp4 -filter_complex "[0:v]scale=-1:720[vA];[1:v]scale=-1:720[vB];[vA][vB]hstack" output.mp4

[0:v]scale=-1:720[vA] 和 [1:v]scale=-1:720[vB]:将视频 A 和 B 的高度都调整为 720 像素(你可以根据需要调整),宽度保持比例缩放。

要在Windows上使用批处理文件(.bat)通过FFmpeg来实现这个效果,你需要三个步骤:首先提取视频帧,然后将这些帧合并一个新的视频,最后创建一个批处理命令来运行这个过程。以下是一个简单的步骤描述以及对应的批处理命令示例: 1. 提取A视频的第10帧和B视频的第50帧: ```bash FOR /F "tokens=*" %%i IN ('ffmpeg -i video_a.mp4 -vf "select='eq(n\,10)'" -frames:v 1 frame_a_10.png') DO set /A FFmpegCommandA+=1 FOR /F "tokens=*" %%j IN ('ffmpeg -i video_b.mp4 -vf "select='eq(n\,50)'" -frames:v 1 frame_b_50.png') DO set /A FFmpegCommandB+=1 ``` 这会保存每段视频的指定帧到`.png`文件。 2. 将这些帧合成一个“闪烁”视频(这里假设需要交替显示两帧): ```bash ffmpeg -f image2 -framerate 2 -pattern_type glob 'frame_a_*.png frame_b_*.png' -i "%02d.png" -c:v libx264 -pix_fmt yuv420p -crf 23 output_video_flashing.mp4 ``` 这将生成一个名为`output_video_flashing.mp4`的新视频,帧率设置为2(即每秒两个帧),以实现快速切换的效果。 3. 创建.bat批处理文件(例如`flash_video.bat`),包含上述所有命令: ```batch @echo off setlocal enabledelayedexpansion %FFmpegCommandA% (for /L %%k in (1,1,1) do ( ffmpeg -i frame_a_10.png -vf "select='eq(n\,1)' && mod(n\,2)==0" -frames:v 1 frame_to_insert_%(timecode)s.png )) %FFmpegCommandB% ffmpeg -f image2 -framerate 2 -pattern_type glob 'frame_to_insert_*.png' -i "%02d.png" -c:v libx264 -pix_fmt yuv420p -crf 23 output_video_flashing.mp4 echo Flashing video created successfully. endlocal ``` 将以上内容复制到一个名为`flash_video.bat`的文本文件,并双击运行它。注意,如果帧数不足,可能会导致闪烁间隔不均匀,可以根据需求调整帧提取次数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值