【ffmpeg】不带透明通道的视频overlay

本文介绍了如何在不支持透明通道的视频上叠加另一个视频,通过FFmpeg的alphamerge过滤器实现。当需要使黑色像素透明时,不能直接使用overlay,而应该使用alphamerge配合alphaextract来重建带有透明信息的完整帧。示例命令展示了如何将两个视频融合,并指定叠加位置和处理EOF标志的方法。
摘要由CSDN通过智能技术生成

场景

不带透明通道的视频,除非是那种图标或者其他小的标志图片,如果想将整个视频覆盖到原视频上,且使黑色像素透明的话,直接overlay就不可以了,会把底层的视频整个覆盖掉;

解决方法一

此时我们要用到:
alphamerge【https://ffmpeg.org/ffmpeg-filters.html#alphamerge】

Add or replace the alpha component of the primary input with the grayscale value of a second input. This is intended for use with alphaextract to allow the transmission or storage of frame sequences that have alpha in a format that doesn’t support an alpha channel.

用第二个输入的灰度值添加或替换主要输入的alpha分量。 旨在与alphaextract一起使用,以允许传输或存储具有alpha格式但不支持alpha通道的帧序列。

For example, to reconstruct full frames from a normal YUV-encoded video and a separate video created with alphaextract, you might use:
例如,要从普通的YUV编码视频和使用alphaextract创建的单独视频中重建完整帧,可以使用:

movie=in_alpha.mkv [alpha]; [in][alpha] alphamerge [out]
./ffmpeg -i x_test.mp4 -i xx.mp4  -filter_complex "[1]split[m][a];[m][a]alphamerge[ovr];[0][ovr]overlay=alpha=1" -y out.mp4

!~

FFmpeg overlay 内置参数:

参数类型说明
x字符串x坐标
y字符串y坐标
eof_action正数遇到eof标志的处理方式,默认为重复;repeat(值为0):重复前一帧;endall(值为1):停止所有的流;pass:(值为2):保留主图层
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值