我正在制作一张圣诞卡片,我需要将视频嵌入到右边的卡片中(在边框内),并在左边显示一些文本。
为了简单起见,让我们假设我有一个带有透明孔的盒子。我想把视频显示在那个洞里。
我正在使用ffmpeg-python,很高兴看到如何实现它的例子。发布一个本地的ffmpeg解决方案也不错,不过我相信已经有一些例子了。
据我所知,我需要总是从一个主节点开始,例如最大的节点,并将视频放在洞内。
然而,当我尝试这样的事情时:
import ffmpeg
in_file = ffmpeg.input('video.mp4')
border_box = ffmpeg.input('box.png')
(
ffmpeg.overlay(
border_box, in_file, x=50, y=50
)
.output('out.mp4')
.run()
)它不起作用。反之亦然,例如,在视频中放置边框并不能工作,因为它覆盖了视频的边框。
我认为需要做的事
box.png
以下是我想要达到的目标:

透明度的原因是因为它实际上不是一个矩形。我可以把一个视频放在一个心脏形状等。
发布于 2019-12-17 06:50:45
你的代码应该能用。
在命令行中使用box.png和video.mp4构建示例输入FFmpeg:
生成分辨率160x120的5秒视频:
ffmpeg -y -r 10 -f lavfi -i mandelbrot=rate=10:size=160x120 -t 5 -c:v libx264 video.mp4video.mp4的最后一帧(第160x128号决议):

建立分辨率为260x220的单一png图像:
ffmpeg -y -f lavfi -i testsrc=260x220 -frames:v 1 box.pngbox.png (第260x228号决议):

用Python执行代码:
import os
import ffmpeg
in_file = ffmpeg.input('video.mp4')
border_box = ffmpeg.input('box.png')
(
ffmpeg.overlay(
border_box, in_file, x=50, y=50
)
.output('out.mp4')
.run()
)out.mp4的最后一帧(第260x220号决议):

我使用最新版本的ffmpeg (4.2)和ffmpeg-python (0.2.0)包执行了测试。
https://stackoverflow.com/questions/59362239
复制相似问题