почему прозрачный ящик не работает на некоторых видеоисточниках? - PullRequest
0 голосов
/ 28 мая 2019

Работает на 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"

Почему это? и как я могу это исправить?

1 Ответ

0 голосов
/ 28 мая 2019

Не могу воспроизвести здесь.Вы используете старую сборку ffmpeg.В drawbox была ошибка, связанная с прозрачностью, но она была исправлена ​​в декабре 2017 года.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...