Work in progress

Godot documentation is being updated to reflect the latest changes in version 4.0. Some documentation pages may still state outdated information. This banner will tell you if you're reading one of such pages.

The contents of this page are up to date. If you can still find outdated information, please open an issue.

VideoStreamPlayer

Inherits: Control < CanvasItem < Node < Object

Control for playing video streams.

Description

Control node for playing video streams using VideoStream resources.

Supported video formats are Ogg Theora (.ogv, VideoStreamTheora) and any format exposed via a GDExtension plugin.

Note: Due to a bug, VideoStreamPlayer does not support localization remapping yet.

Warning: On Web, video playback will perform poorly due to missing architecture-specific assembly optimizations.

Properties

int

audio_track

0

bool

autoplay

false

int

buffering_msec

500

StringName

bus

&"Master"

bool

expand

false

bool

paused

false

VideoStream

stream

float

stream_position

float

volume

float

volume_db

0.0

Methods

String

get_stream_name ( ) const

Texture2D

get_video_texture ( ) const

bool

is_playing ( ) const

void

play ( )

void

stop ( )


Signals

finished ( )

Emitted when playback is finished.


Property Descriptions

int audio_track = 0

  • void set_audio_track ( int value )

  • int get_audio_track ( )

The embedded audio track to play.


bool autoplay = false

  • void set_autoplay ( bool value )

  • bool has_autoplay ( )

If true, playback starts when the scene loads.


int buffering_msec = 500

  • void set_buffering_msec ( int value )

  • int get_buffering_msec ( )

Amount of time in milliseconds to store in buffer while playing.


StringName bus = &"Master"

Audio bus to use for sound playback.


bool expand = false

  • void set_expand ( bool value )

  • bool has_expand ( )

If true, the video scales to the control size. Otherwise, the control minimum size will be automatically adjusted to match the video stream's dimensions.


bool paused = false

  • void set_paused ( bool value )

  • bool is_paused ( )

If true, the video is paused.


VideoStream stream

The assigned video stream. See description for supported formats.


float stream_position

  • void set_stream_position ( float value )

  • float get_stream_position ( )

The current position of the stream, in seconds.

Note: Changing this value won't have any effect as seeking is not implemented yet, except in video formats implemented by a GDExtension add-on.


float volume

  • void set_volume ( float value )

  • float get_volume ( )

Audio volume as a linear value.


float volume_db = 0.0

  • void set_volume_db ( float value )

  • float get_volume_db ( )

Audio volume in dB.


Method Descriptions

String get_stream_name ( ) const

Returns the video stream's name, or "<No Stream>" if no video stream is assigned.


Texture2D get_video_texture ( ) const

Returns the current frame as a Texture2D.


bool is_playing ( ) const

Returns true if the video is playing.

Note: The video is still considered playing if paused during playback.


void play ( )

Starts the video playback from the beginning. If the video is paused, this will not unpause the video.


void stop ( )

Stops the video playback and sets the stream position to 0.

Note: Although the stream position will be set to 0, the first frame of the video stream won't become the current frame.