Работает на smptebars, smptehdbars, testsrc и testsrc2, но не на других источниках.
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"
Когда я пытаюсь это сделать, я вижу прозрачную коробку. Но если я использую цвет и источники rgbtestsrc, это не сработает.
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"
после просмотра результатов трассировки кажется, что прозрачность работает только для форматов rgb24 и yuv (yuv444p, yuv420p и т. Д.), Это удивительно, поскольку обычно мы предполагаем, что источник rgba может работать с альфа-каналом.
Следующая команда меняет pix_fmt на rgb24, тогда она работает:
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"
Следующая команда меняет pix_fmt на rgba, тогда она не работает:
ffplay -loglevel trace -f lavfi -i rgbtestsrc=r=1:d=1:size=800x600 -vf "format=pix_fmts=rgba,drawbox=x=0:y=0:w='iw/2':h='ih/2':t=max:c=white@0.5"
Почему это? и как я могу это исправить?