为什么透明抽屉在某些视频源上不起作用?

时间:2019-05-28 17:21:21

标签: ffmpeg

它适用于smptebars,smtptehdbars,testsrc和testsrc2,但不适用于其他来源。

extras

尝试此操作时,我可以看到透明框。但是,如果我使用颜色,并且使用rgbtestsrc来源,则无法使用。

ffplay -loglevel trace -f lavfi -i testsrc=r=1:d=1:size=800x600 -vf "drawbox=x=0:y=0:w='iw/2':h='ih/2':t=max:c=white@0.5"

在查看跟踪输出之后,看来透明度仅适用于rgb24和yuv格式(yuv444p,yuv420p等),这令人惊讶,因为我们通常认为rgba源可以使用alpha通道。

以下命令将pix_fmt更改为rgb24,然后它可以工作:

ffplay -loglevel trace -f lavfi -i rgbtestsrc=r=1:d=1:size=800x600 -vf "drawbox=x=0:y=0:w='iw/2':h='ih/2':t=max:c=white@0.5"
ffplay -loglevel trace -f lavfi -i color=c=red:r=1:d=1:size=800x600 -vf "drawbox=x=0:y=0:w='iw/2':h='ih/2':t=max:c=white@0.5"

以下命令将pix_fmt更改为rgba,然后它不起作用:

ffplay -loglevel trace -f lavfi -i rgbtestsrc=r=1:d=1:size=800x600 -vf "format=pix_fmts=rgb24,drawbox=x=0:y=0:w='iw/2':h='ih/2':t=max:c=white@0.5"

那是为什么?以及我该如何解决?

1 个答案:

答案 0 :(得分:0)

无法在此处复制。您使用的是ffmpeg的旧版本。抽奖箱中存在一个与透明度有关的错误,但已于2017年12月修复。