Files
lvgl/docs/details/libs/ffmpeg.rst
Victor Wheeler 377cc5aa80 docs(libs): proofread docs batch18 (#7688)
Co-authored-by: Gabor Kiss-Vamosi <kisvegabor@gmail.com>
Co-authored-by: Liam Howatt <30486941+liamHowatt@users.noreply.github.com>
2025-02-19 08:39:03 -05:00

93 lines
2.0 KiB
ReStructuredText

.. _ffmpeg:
==============
FFmpeg Support
==============
**FFmpeg** is a complete, cross-platform solution to record, convert and stream audio and video.
The FFmpeg is an LVGL extension that interfaces with the official FFmpeg library to help
you add platform-independent recording, converting and streaming audio and video into
your LVGL UI.
The set-up steps below are for Linux, but they can be adapted for other platforms.
For a detailed introduction, see: https://www.ffmpeg.org
Installing FFmpeg
*****************
Download the FFmpeg library from `its official download page
<https://www.ffmpeg.org/download.html>`__, then install it:
.. code-block:: shell
./configure --disable-all --disable-autodetect --disable-podpages --disable-asm --enable-avcodec --enable-avformat --enable-decoders --enable-encoders --enable-demuxers --enable-parsers --enable-protocol='file' --enable-swscale --enable-zlib
make
sudo make install
Adding FFmpeg to Your Project
*****************************
To use the ``FFmpeg`` library in your project, you will need to link against these
libraries:
:libavformat: part of FFmpeg library
:libavcodec: part of FFmpeg library
:libavutil: part of FFmpeg library
:libswscale: part of FFmpeg library
:libm:
:libz:
:libpthread:
If you are using GCC-based toolchain, this can be taken care of by adding the
following command-line options:
.. code-block:: shell
-lavformat -lavcodec -lavutil -lswscale -lm -lz -lpthread
.. _ffmpeg_usage:
Usage
*****
Set the :c:macro:`LV_USE_FFMPEG` in ``lv_conf.h`` to ``1``.
Also set :c:macro:`LV_FFMPEG_PLAYER_USE_LV_FS` in ``lv_conf.h`` to ``1`` if you want
to integrate the LVGL :ref:`file_system` extension into FFmpeg.
See the examples below for how to correctly use this library.
.. _ffmpeg_example:
Events
******
- :cpp:enumerator:`LV_EVENT_READY` Sent when playback is complete and auto-restart is not enabled.
Learn more about :ref:`events`.
Examples
********
.. include:: ../../examples/libs/ffmpeg/index.rst
.. _ffmpeg_api:
API
***