Используйте YouTube видео для текстуры webgl? - PullRequest
4 голосов
/ 31 марта 2012

Я пытаюсь использовать видео YouTube в качестве текстуры webgl, и в настоящее время я не могу заставить его работать из-за нескольких проблем. У кого-нибудь есть опыт в этом деле, и он может указать мне правильное направление / сказать, что это невозможно?

Я придерживаюсь подхода, подробно описанного здесь: https://developer.mozilla.org/en/webgl/animating_textures_in_webgl, где вы в основном делаете текстуру из видеоэлемента html5 и продолжаете читать кадры в текстуру, используемую в вашей сцене. Это действительно хорошо работает для обычных видео, но YouTube предоставит (AFAIK) видео html5 только через iframe, который, очевидно, находится в их домене, а не в моем. Это означает, что сложно запросить у iframe элемент видео для использования в качестве текстуры (моя быстрая попытка прокси-сервера это не сработает, потому что iframe src использует относительные URL, хотя я не пробовал это тщательно). Я также попытался использовать mediaElement.js, чтобы обернуть элемент в виде html5-видео (например: http://mediaelementjs.com/examples/?name=youtube), хотя я быстро понял, что это только фасад, поэтому на самом деле не работает как вход для текстуры (по крайней мере, я думаю, что это проблема!).

Я не хочу делать ничего, что включает загрузку и перекодирование видео YT или что-то в этом роде, поскольку мне нужно что-то, что может быть сделано программно, хотя на стороне клиента или сервера это хорошо.

Я почти уверен, что проблема заключается в том, чтобы получить элемент видео, содержащий видео на YouTube, но я довольно новичок в webgl и совершенно новичок в видео в webgl, так что открыты для любых идей! Вся помощь с благодарностью получена - спасибо!

1 Ответ

1 голос
/ 31 марта 2012

ОК. В итоге я эмулировал, что делает iframe для встраивания YT, создал элемент видео из URL-адреса, который извлекает iframe, а затем выбросил его через canvas, чтобы обойти проблему текстуры NPOT. Это работает, но не быстро / идеально, поэтому, если у кого-то есть идеи получше, я бы хотел их услышать.

...