- Home /
WebGL video texture not working
I want to play a video in WebGL but MovieTextures re not supported. i've tried using Jonas' Simple MoTextures Sample for WebGL and it works great, but only with certain videos. I've deduced that it only works with videos that have a 2:1 aspect ratio. Such as the example one (640x320) or one I did that was 2000x1000.
If I try to use any other video I always have the same warning (hundreds of times):
WARNING: texture bound to texture unit 0 is not renderable. It maybe non-power-of-2 and have incompatible texture filtering. I am completely stuck at this point. The code is 100% the one in the sample.
BTW, in my 2000x1000 video I also get that warning, but only 5 times, and the video plays perfectly.
The code in JSlib for create and update functions:
WebGLMovieTextureCreate: function(url)
{
var str = Pointer_stringify(url);
var video = document.createElement('video');
video.style.display = 'none';
video.src = str;
return videoInstances.push(video) - 1;
},
WebGLMovieTextureUpdate: function(video, tex)
{
if (videoInstances[video].paused)
return;
GLctx.bindTexture(GLctx.TEXTURE_2D, GL.textures[tex]);
GLctx.pixelStorei(GLctx.UNPACK_FLIP_Y_WEBGL, true);
GLctx.texImage2D(GLctx.TEXTURE_2D, 0, GLctx.RGBA, GLctx.RGBA, GLctx.UNSIGNED_BYTE, videoInstances[video]);
GLctx.pixelStorei(GLctx.UNPACK_FLIP_Y_WEBGL, false);
},
And the C# code:
public WebGLMovieTexture (string url)
{
m_Instance = WebGLMovieTextureCreate(url);
m_Texture = new Texture2D(0, 0, TextureFormat.ARGB32, false);
m_Texture.wrapMode = TextureWrapMode.Clamp;
}
public void Update()
{
var width = WebGLMovieTextureWidth(m_Instance);
var height = WebGLMovieTextureHeight(m_Instance);
if (width != m_Texture.width || height != m_Texture.height)
{
m_Texture.Resize(width, height, TextureFormat.ARGB32, false);
m_Texture.Apply();
}
WebGLMovieTextureUpdate(m_Instance, m_Texture.GetNativeTextureID());
}
Is there a way to play any aspect ratio video? or is there something else I'm missing that could be causing this problem?
Answer by unifiedJed · Oct 23, 2018 at 11:48 PM
did you find anything on this? I have the same results as you
Your answer
Follow this Question
Related Questions
Setting Scroll View Width GUILayout 1 Answer
Embedded HTML for Unity WebGL build 0 Answers
Getting Unity WebGL to receive data from a script in a browser extension 0 Answers
WebGl on UC Browser 1 Answer