.. _arrows_ffmpeg:
FFmpeg
======
The FFmpeg arrow provides importing and exporting of video and image data in KWIVER using
the `FFmpeg `_ library. This includes extracting individual
frames as images and muxing or demuxing metadata to KLV (Key-Length-Value)
data streams of the video. The encoding and decoding of this data is handled by
the :ref:`arrows_klv` arrow. The FFmpeg arrow can be built by enabling the
KWIVER_ENABLE_FFMPEG CMake flag.
How to Use
----------
The primary way to use the FFmpeg arrow is via the :ref:`ffmpeg_video_input`
implementation of the :ref:`vital_video_input ` interface.
Important methods for this interface include the ``open`` method used to open a
video for reading. The ``next_frame`` and ``seek_frame`` allow navigation of
the video and the ``frame_image`` and ``frame_metadata`` can extract data from
the current frame.
The arrow also includes the :ref:`ffmpeg_video_input_clip` implementation of
:ref:`ffmpeg_video_input`, an implementation of the
:ref:`vital_video_output ` interface which can write out
videos, and the :ref:`vital_image_io ` interface which allows
reading and writing of frame images without having to bring in
another arrow as a dependency.
Algorithm Implementations
-------------------------
.. _ffmpeg_video_input:
ffmpeg_video_input
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. doxygenclass:: kwiver::arrows::ffmpeg::ffmpeg_video_input
:project: kwiver
:members:
.. _ffmpeg_video_input_clip:
ffmpeg_video_input_clip
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. doxygenclass:: kwiver::arrows::ffmpeg::ffmpeg_video_input_clip
:project: kwiver
:members:
.. _ffmpeg_video_input_rewire:
ffmpeg_video_input_rewire
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. doxygenclass:: kwiver::arrows::ffmpeg::ffmpeg_video_input_rewire
:project: kwiver
:members:
.. _ffmpeg_image_io:
ffmpeg_image_io
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. doxygenclass:: kwiver::arrows::ffmpeg::ffmpeg_image_io
:project: kwiver
:members:
.. _ffmpeg_video_output:
ffmpeg_video_output
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. doxygenclass:: kwiver::arrows::ffmpeg::ffmpeg_video_output
:project: kwiver
:members: