#javascript #html #video #webrtc #licode
#javascript #HTML #Видео #webrtc #licode
Вопрос:
Я пытаюсь захватить холст html5 с помощью captureStream API, на котором есть рисунки, и воспроизвести его с помощью тега html5 video.
Проблема, с которой я сталкиваюсь, заключается в том, что когда я захватываю поток и воспроизводю его с помощью тега in video, он воспроизводится точно так же.
Но когда я отправляю этот поток другому узлу (потоковая передача WebRTC с использованием Licode MCU) и воспроизводю его там.
Оно воспроизводится с черным фоном. т. Е. Видео больше не прозрачно.
Кто-нибудь сталкивался с этим раньше?
В чем может быть проблема:
Это проблема с каналом webrtc, может быть, он не способен обрабатывать прозрачные пиксели?
или
Это может быть как-то связано с медиа-сервером? Или что-то еще?
Комментарии:
1. У меня точно такая же проблема, не могли бы вы решить свою проблему?
2. @Solix: Нет, у меня был альтернативный подход для моего варианта использования, когда мне больше не нужно было транслировать прозрачное видео. Поэтому я вернулся к этому подходу. Но все равно будет интересно узнать, есть ли у кого-нибудь ответ на этот вопрос.
Ответ №1:
Похоже, вы отправляете свой холст в виде видеоданных. WebRTC обычно использует либо VP8, либо H264 для передачи видео, и ни один из них не поддерживает альфа-каналы. Поэтому, если вы хотите отправить его как видео, использовать прозрачность невозможно.
Однако вы можете отправить его, используя часть канала передачи данных WebRTC. Вам придется сериализовать и десериализовать его самостоятельно, но поскольку он просто передает байты, вы можете сохранить свой альфа-канал.