首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向ffmpeg视频添加边框[ffmpeg-python]

向ffmpeg视频添加边框[ffmpeg-python]
EN

Stack Overflow用户
提问于 2019-12-16 18:18:41
回答 1查看 539关注 0票数 1

我正在制作一张圣诞卡片,我需要将视频嵌入到右边的卡片中(在边框内),并在左边显示一些文本。

为了简单起见,让我们假设我有一个带有透明孔的盒子。我想把视频显示在那个洞里。

我正在使用ffmpeg-python,很高兴看到如何实现它的例子。发布一个本地的ffmpeg解决方案也不错,不过我相信已经有一些例子了。

据我所知,我需要总是从一个主节点开始,例如最大的节点,并将视频放在洞内。

然而,当我尝试这样的事情时:

代码语言:javascript
复制
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

  • Overlay,

  • 从静态创建无限视频,同时缩放两个流appropriately
  1. Create输出

以下是我想要达到的目标:

透明度的原因是因为它实际上不是一个矩形。我可以把一个视频放在一个心脏形状等。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-17 06:50:45

你的代码应该能用。

在命令行中使用box.pngvideo.mp4构建示例输入FFmpeg

生成分辨率160x120的5秒视频:

代码语言:javascript
复制
ffmpeg -y -r 10 -f lavfi -i mandelbrot=rate=10:size=160x120 -t 5 -c:v libx264 video.mp4

video.mp4的最后一帧(第160x128号决议):

建立分辨率为260x220的单一png图像:

代码语言:javascript
复制
ffmpeg -y -f lavfi -i testsrc=260x220 -frames:v 1 box.png

box.png (第260x228号决议):

用Python执行代码:

代码语言:javascript
复制
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)包执行了测试。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59362239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档