Я работаю над проектом iOS, который использует AV-Out для отображения содержимого в окне 1280x720 на втором экране.
У меня есть представление MPMoviePlayerController
в качестве фона и поверх других других элементов, таких как UIImages
и UILabels
. Фоновый фильм воспроизводится в цикле.
Теперь я хочу наложить на весь вид, включая все видимые элементы, другую полноэкранную анимацию с прозрачностью, чтобы были видны только части основного вида.
Сначала я попробовал анимацию png с UIImageView
. Я был удивлен, обнаружив, что это действительно работает на iPhone5, но, конечно, PNG настолько велики по размеру, что для этого используется слишком много оперативной памяти, и он дает сбой на всем, что ниже iPhone4s. Так что мне нужен другой способ.
Я понял, как одновременно воспроизводить второй фильм с помощью AVFoundation. Все идет нормально. Теперь я могу воспроизвести наложенное видео, но, конечно, оно еще не прозрачное.
Я также узнал, что с библиотекой GPUImage
я могу использовать GPUImageChromaKeyBlendFilter
, чтобы отфильтровать цвет из видео, чтобы сделать его прозрачным, а затем объединить его с другим видео.
То, что я еще не понимаю, - это лучший способ реализовать это в моем случае, чтобы получить желаемый результат.
Могу ли я использовать всю иерархию представлений под верхним видео в качестве первого входа для GPUImageChromaKeyBlendFilter
и видео в стиле зеленого экрана в качестве второго входа и показывать результат в реальном времени в разрешении 720p? как бы я это сделал?
Или было бы лучше использовать GPUImageChromaKeyFilter
и просто отфильтровать видео в стиле зеленого экрана и воспроизвести его в виде, превосходящем все другие виды? Тогда будет ли фон этого видео прозрачным?
Спасибо за вашу помощь!