我正在使用以下内容生成并排的视频。
ffmpeg -i left.mp4 -i right.mp4 -filter_complex "[0:v]setpts=PTS-STARTPTS, pad=iw*2:ih[bg]; [1:v]setpts=PTS-STARTPTS[fg]; [bg][fg]overlay=w" -y final.mp4
看起来像这样。
http://www.mo-de.net/d/partnerAcrobatics.mp4
我想在中间的右上方放置一条垂直黑线,或者在左侧的视频中添加黑色边框。如果我在左侧视频中添加边框,我希望保留原始视频的原始总和尺寸。此解决方案需要从左视频宽度中减去边框宽度。我会采取任何解决方案。
由于
答案 0 :(得分:1)
解决方案|解决:如果两个视频都没有音频,请使用此功能。
ffmpeg -i left.mp4 -i right.mp4 -filter_complex "[0:v]crop=639:720, pad=640:720:0:0:black[tmp0]; [1:v]crop=639:720, pad=640:720:1:0:black[tmp1]; [tmp0][tmp1]hstack[v] " -map [v] -y o.mp4
如果两个视频都有音频,请使用以下内容。
ffmpeg -i c2.mov -i c1.mov -filter_complex "[0:v]crop=1279:720, pad=1280:720:0:0:black[tmp0]; [1:v]crop=1279:720, pad=1280:720:1:0:black[tmp1]; [tmp0][tmp1]hstack[v];[0:a][1:a]amerge=inputs=2[a]" -map [v] -map [a] -ac 2 -y o.mp4
两个视频必须具有相同的高度。
crop=1279:720
我使用裁剪从右侧的视频宽度中删除一个像素。它原本是1280像素。
pad=1280:720:0:0:black[tmp0]
我通过声明一个1280像素的新画布大小来填充左边的电影。这将电影向左移动,在右侧留下一个空格像素,其中有彩色"黑色"。
正确的电影我填充并向右移动,露出左边的黑色边框。
pad=1280:720:1:0:black[tmp1]
我对两个视频都这样做,因此如果视频尺寸相同,则影响仍然居中。
答案 1 :(得分:0)
使用
ffmpeg -i left.mp4 -i right.mp4 -filter_complex "[0:v]setpts=PTS-STARTPTS,crop=iw-10:ih:0:0, pad=2*(iw+10):ih[bg]; [1:v]setpts=PTS-STARTPTS[fg]; [bg][fg]overlay=w" -y final.mp4
答案 2 :(得分:0)
由于您已经加入了视频,因此您似乎想用垂直的黑线将它们分开。
由于这条线是静止的(无生命),因此此覆盖图可以是静止图片,例如。 black.png(宽度为10px,与视频高度相同)
如果要使这条线具有动画效果或运动图像,则叠加层可以是其他视频。
如果尚未加入视频,则可以先加入左侧的第二个视频或右侧的第一个视频
例如。 ffmpeg -i 1.mp4 -vf "pad=width=<new width>:height=<same height>:color=black" out.mp4
下面的代码回答了您的问题,中间有一条宽度为10像素的垂直线,将2个视频分开:
ffmpeg -i in.mp4 -i black.png -filter_complex "overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2" out.mp4