package ffmpeg

  1. Overview
  2. Docs
Bindings for the ffmpeg libraries


Dune Dependency






ocaml-ffmpeg is an OCaml interface for the FFmpeg Multimedia framework.

The modules currently available are :

Avutil : base module containing the share types and utilities

Avcodec : the module containing decoders and encoders for audio, video and subtitle codecs.

Av : the module containing demuxers and muxers for reading and writing multimedia container formats.

Avdevice : the module containing input and output devices for grabbing from and rendering to many common multimedia input/output software frameworks.

Avfilter : the module containing audio and video filters.

Swresample : the module performing audio resampling, rematrixing and sample format conversion operations.

Swscale : the module performing image scaling and color space/pixel format conversion operations.

Please read the COPYING file before using this software.


The API documentation is available here.


  • ocaml

  • FFmpeg

  • dune

  • findlib

See dune-project file for versions.


The preferred installation method is via opam:

opam install ffmpeg

This will install the latest release of all ffmpeg-related modules. You can also install individual modules, for instance:

opam install ffmpeg-avcodec ffmpeg-avfilter

If you wish to install the latest code from this repository, you can do:

opam install .

From within this repository.


dune build


The audio_decoding example shows how to read frames from an audio file and convert them into bytes.

The audio_device example shows how to read 500 audio frames from an input audio device or an URL and write them into an output audio device or a file.

The decode_audio example shows how to parse packets from a mapped file, decode them and write the resulting frames into a file.

The demuxing_decoding example shows how to demuxing and decoding audio, video and subtitle frames from a file, converts them into bytes and write them in raw files.

The encode_audio example shows how to convert a float array into stereo frames and encode them into packets.

The encode_video example shows how to create video frames and write them encoded into a file.

The encoding example shows how to create a multimedia file with audio and video streams.

The player example shows how to read a multimedia file and write audio and video frames to output devices.

The remuxing example shows how to remuxing multimedia file packets without decoding them.

The transcode_aac example shows how to transcode an audio file into an AAC audio file.

The transcoding example shows how to transcode audio streams into the AAC codec, video streams into the H264 codec and write them to an output file.


This author of this software may be contacted by electronic mail at the following address:


Innovation. Community. Security.