使用YouTube视频作为WebGL纹理?

4
我正在尝试将YouTube视频用作WebGL纹理,但目前由于一些问题无法实现。有没有人有这方面的经验,可以指导我正确的方向/告诉我这是不可能的?我正在遵循这里详细介绍的方法:https://developer.mozilla.org/en/webgl/animating_textures_in_webgl ,基本上是从HTML5视频元素创建一个纹理,并在场景中不断读取帧到纹理中使用。这对于普通视频非常有效,但是YouTube只会提供(AFAIK)通过iframe的HTML5视频,而这显然在他们的域上,而不是我的域。这意味着很难查询iframe以获取用作纹理的视频元素(我的快速代理尝试因为iframe src使用相对URL而无法工作,尽管我没有彻底尝试过)。我还尝试使用mediaElement.js包装该元素作为HTML5视频(像这样:http://mediaelementjs.com/examples/?name=youtube),尽管我很快意识到这只是一个外观,因此不能真正作为纹理的输入(至少我认为是这个问题!)。
我不想做任何涉及下载和重新编码YT视频或类似内容的事情,因为我需要可以通过程序完成的东西,但客户端或服务器端都可以。

我相信问题只是获取包含YouTube视频的视频元素,但我对WebGL非常新,并且对WebGL中的视频完全不了解,因此我对任何想法都持开放态度!非常感谢您的帮助!

1个回答

1

好的,我最终模拟了YT嵌入iframe所做的事情,从iframe检索的URL创建了一个视频元素,然后通过canvas将其传递以避免NPOT纹理问题。它可以工作,但速度不快/不理想,所以如果其他人有更好的想法,我很愿意听取。


我对了解你是如何使其工作感兴趣。你可以通过我的个人资料中的电子邮件地址给我发电子邮件吗? - RobotCaleb
3
嗨 @RobotCaleb - 如果可能的话,我想与更多人分享这个内容,所以写了一篇文章。您可以在此处阅读:http://dontglobalmebro.ruhoh.com/webgl/displaying-youtube-video-in-webgl/。如果您有任何问题或反馈,请告诉我,我的 Twitter 句柄也在那里。抱歉耽搁了,我直到现在才有了博客! - user82116
这样做合法吗?每个人都将免费使用类似YT的来源,没有任何商标标志... - Nikola Lukic
完整的项目源代码发布在哪里了吗? - Sipty

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接