📄 threejs/Core/Textures/VideoTexture

File: VideoTexture.md | Updated: 11/15/2025


title: VideoTexture category: Core layout: docs

VideoTexture

A texture for use with a video.

Note: When using video textures with WebGPURenderer, Texture#colorSpace must be set to THREE.SRGBColorSpace.

Note: After the initial use of a texture, its dimensions, format, and type cannot be changed. Instead, call Texture#dispose on the texture and instantiate a new one.

Code Example

// assuming you have created a HTML video element with id="video"
const video = document.getElementById( 'video' );
const texture = new THREE.VideoTexture( video );

Constructor

new VideoTexture( video : HTMLVideoElement, mapping : number, wrapS : number, wrapT : number, magFilter : number, minFilter : number, format : number, type : number, anisotropy : number )

Constructs a new video texture.

video | The video element to use as a data source for the texture.
---|---
mapping | The texture mapping. Default is Texture.DEFAULT_MAPPING.
wrapS | The wrapS value. Default is ClampToEdgeWrapping.
wrapT | The wrapT value. Default is ClampToEdgeWrapping.
magFilter | The mag filter value. Default is LinearFilter.
minFilter | The min filter value. Default is LinearFilter.
format | The texture format. Default is RGBAFormat.
type | The texture type. Default is UnsignedByteType.
anisotropy | The anisotropy value. Default is Texture.DEFAULT_ANISOTROPY.

Properties

.generateMipmaps : boolean

Whether to generate mipmaps (if possible) for a texture.

Overwritten and set to false by default.

Default is false.

Overrides: Texture#generateMipmaps

.isVideoTexture : boolean (readonly)

This flag can be used for type testing.

Default is true.

Methods

.update()

This method is called automatically by the renderer and sets Texture#needsUpdate to true every time a new frame is available.

Only relevant if requestVideoFrameCallback is not supported in the browser.

Source

src/textures/VideoTexture.js