linux - 使用 ffmpeg 叠加黑线或为两个并排视频添加边框

标签 linux video ffmpeg border overlay

我正在使用以下内容生成一个并排的视频。

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

我想在中间的右上角放置一条垂直黑线,或者在左侧的视频中添加一个黑色边框。如果我向左侧视频添加边框,我想保持原始视频的原始总和维度。此解决方案需要从左侧视频宽度中减去边框宽度。我会采取任何一种解决方案。

谢谢

最佳答案

解决方案 |已解决:如果两个视频都没有音频,请使用此方法。

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 像素的新 Canvas 大小来填充左侧影片。这将电影向左移动,在右侧留下一个像素的空间,颜色为“黑色”。

右边的电影我填充并向右移动,露出左边的黑色边框。

pad=1280:720:1:0:black[tmp1]

我对两个视频都这样做了,所以如果视频的尺寸相同,效果仍然居中。

关于linux - 使用 ffmpeg 叠加黑线或为两个并排视频添加边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46454992/

相关文章:

java - 在 Linux 上部署 spring boot 应用程序时,日志文件端点出现错误 404

sql-server - 为什么要在linux下安装sql server?

linux - 如何从 `func`获取 `callq func@PLT`的实际地址

linux - 如何根据执行时间过滤匹配进程?

java - 如何使用Java xuggler合并视频中的两种不同音频

php - 谷歌 YouTube API (v3) : how to access my unlisted/private videos from my server?

ios - 纵向视频在黑屏中播放

android - 如何在 Android Studio 中使用 ffmpeg?我收到一个损坏的文件

python - 如何检索 FFMPEG(从 OpenCV 调用)Python 解码错误

.net - 在 MonoTouch 上即时转换 MPEG 文件