Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 23 additions & 5 deletions tutorials/animation/playing_videos.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ Godot supports video playback with the :ref:`class_VideoStreamPlayer` node.
Supported playback formats
--------------------------

The only supported format in core is **Ogg Theora** (not to be confused with Ogg
Vorbis audio). It's possible for extensions to bring support for additional
formats, but no such extensions exist yet as of July 2022.
The only supported format in core is **Ogg Theora** (not to be confused with
Ogg Vorbis audio) with optional Ogg Vorbis audio tracks. It's possible for
extensions to bring support for additional formats.

H.264 and H.265 cannot be supported in core Godot, as they are both encumbered
by software patents. AV1 is royalty-free, but it remains slow to decode on the
Expand Down Expand Up @@ -156,6 +156,7 @@ There are several limitations with the current implementation of video playback
- Changing playback speed is not supported. VideoStreamPlayer also won't follow
:ref:`Engine.time_scale<class_Engine_property_time_scale>`.
- Streaming a video from a URL is not supported.
- Only mono and stereo audio output is supported.

.. _doc_playing_videos_recommended_theora_encoding_settings:

Expand Down Expand Up @@ -195,6 +196,15 @@ below with almost any input video format (AVI, MOV, WebM, …).
You can check this by running ``ffmpeg`` without any arguments, then looking
at the ``configuration:`` line in the command output.

.. warning::

All FFmpeg releases before Feb 20th, 2025 could produce bad video streams
due to a couple of bugs. It's highly recommended to use one of the latest
static daily builds, or build FFmpeg from their master branch where they're
already fixed. More details in `FFmpeg issue #11451
<https://trac.ffmpeg.org/ticket/11451>`__ and `FFmpeg issue #11454
<https://trac.ffmpeg.org/ticket/11454>`__.

Balancing quality and file size
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Expand All @@ -217,6 +227,14 @@ dropouts in case of high system load. See
for a table listing Ogg Vorbis audio quality presets and their respective
variable bitrates.

The **GOP (Group of Pictures) size** (``-g:v``) is the max interval between
keyframes. Increasing this value can improve compression with almost no impact
on quality. The valid range goes from ``0`` to ``2,147,483,648``, although
compression benefits will fade away and even be reversed as the GOP size
increases. The default size (``12``) is too low for most types of content, it's
therefore recommended to test higher GOP sizes before reducing video quality.
Values between ``64`` and ``512`` usually give the best compression.

FFmpeg: Convert while preserving original video resolution
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Expand All @@ -227,7 +245,7 @@ static scenes).

::

ffmpeg -i input.mp4 -q:v 6 -q:a 6 output.ogv
ffmpeg -i input.mp4 -q:v 6 -q:a 6 -g:v 64 output.ogv

FFmpeg: Resize the video then convert it
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Expand All @@ -238,7 +256,7 @@ significantly if the source is recorded at a higher resolution than 720p:

::

ffmpeg -i input.mp4 -vf "scale=-1:720" -q:v 6 -q:a 6 output.ogv
ffmpeg -i input.mp4 -vf "scale=-1:720" -q:v 6 -q:a 6 -g:v 64 output.ogv


.. Chroma Key Functionality Documentation
Expand Down
Loading