What FFmpeg is

The FFmpeg project publishes three command line programs and the libraries beneath them. ffprobe reads a file and reports its container, streams, codecs, frame rate, duration and timestamps, down to the type and timing of every frame, in text or JSON. ffmpeg decodes, encodes, converts between formats, cuts by time, joins files, remuxes streams into a new container without re-encoding, extracts frames as images and applies filters such as cropping, scaling and deinterlacing. ffplay is a small player. The libraries, libavcodec, libavformat, libavfilter and the rest, are what many players and forensic products build on. FFmpeg is licensed under the GNU Lesser General Public License version 2.1 or later, with the GNU General Public License applying when optional GPL parts are compiled in. The project's About page lists Linux, macOS, Windows, the BSDs and Solaris.

In a laboratory the first command run on any new file is ffprobe, to record what the file is before anything plays it. Remuxing with stream copy keeps the original encoded data and only changes the container, which is the right way to make a stubborn file playable. Exporting frames to a lossless format such as PNG keeps pixel values intact. Any re-encode changes pixels and must be labelled a working copy, never presented as the original. Timestamps deserve care: CCTV exports often have a variable frame rate with gaps, and a conversion to a constant rate can drop or duplicate frames unless the examiner chooses the settings deliberately. Every command line used is written into the notes, together with the FFmpeg version, because builds differ. FFmpeg decodes many formats but not the proprietary wrappers some DVR makers use, which need the vendor's player or a product such as Amped FIVE.

Primary applications

Where it is used

  • Recording the structure and streams of a file before examination
  • Remuxing a file into a playable container without re-encoding
  • Extracting individual frames or frame ranges as lossless images
  • Listing frame types and timestamps to study gaps and frame rate behaviour
  • Making a clearly labelled working copy for playback or presentation
  • Scripting the same inspection across hundreds of files
  • Separating audio from video for audio examination

Who uses it

  • Video and audio forensic analysts
  • CCTV units handling many exports
  • Developers of forensic tools
  • Students of multimedia forensics

Capabilities and limits

Major capabilities

  • Decoding and encoding across a very wide range of containers and codecs
  • ffprobe stream, packet and frame reports in text or JSON
  • Stream copy remuxing that preserves encoded data
  • Frame extraction to lossless image formats
  • Cutting, joining and filtering, including crop, scale and deinterlace
  • Hardware-independent operation on Windows, Linux and macOS
  • Libraries used by many other tools, so behaviour is well understood
  • Fully scriptable from the command line

Technical limitations

  • Command line only. There is no case file, viewer or report
  • Proprietary DVR containers are often unsupported
  • Re-encoding alters pixel values and must never replace the original
  • Default conversions can drop or duplicate frames when frame rates vary
  • Builds differ, so the version and options used must be recorded

Learning with DFRTI

Independent professional education covering the principles and workflows of FFmpeg. DFRTI is not a vendor training centre and its courses are not vendor certifications.

Before you learn it

  • The difference between a container and a codec
  • Command line use
  • Frame types, timestamps and frame rate concepts

Disciplines

Courses that cover this tool

Product names and trademarks belong to their respective owners. DFRTI is an independent educational and research institute. Inclusion in this directory does not imply manufacturer endorsement, partnership or authorisation. Facts are checked against the manufacturer's public documentation on the date shown and may have changed since.

Go deeper with DFRTI

Free pages explain the ground. Structured courses, lab work and a mentor take you from knowing about it to doing it on a case.