You can use VideoPlayer.get_video_texture()
to get a video texture, and then simply assign the texture to the material of your mesh and it should work. Here's a basic example using a TestCube
:
extends TestCube
var stream = preload("my_video.ogv")
func _ready():
var player = VideoPlayer.new()
player.set_stream(stream)
add_child(player)
var texture = player.get_video_texture()
var material = FixedMaterial.new()
material.set_texture(FixedMaterial.PARAM_DIFFUSE, texture)
material.set_flag(Material.FLAG_UNSHADED, true)
set_material_override(material)
player.play()