Extract Video Metadata to XML Using FFmpeg

This article provides a quick and direct guide on how to extract video metadata and export it into XML format. By utilizing ffprobe, a powerful command-line tool bundled with FFmpeg, you can gather detailed information about video streams, audio tracks, and container formats, and save it directly into an XML file for easy parsing and integration.

To extract metadata from a video file in XML format, you should use ffprobe rather than the main ffmpeg command. ffprobe is specifically designed to analyze media files and gather format and stream information.

The Basic Command

Open your terminal or command prompt and run the following command:

ffprobe -v quiet -print_format xml -show_format -show_streams input.mp4 > metadata.xml

Command Breakdown

Advanced XML Formatting Options

You can customize the structure of the generated XML by adding specific parameters to the -print_format argument:

1. Fully Qualified XML

To include the official schema definition in your XML header, add fully_qualified=1:

ffprobe -v quiet -print_format xml=fully_qualified=1 -show_format -show_streams input.mp4 > metadata.xml

2. Grouped Elements

To wrap similar elements in a parent tag (such as grouping all streams inside a <streams> tag), add list_of_groups=1 (this is often the default behavior but can be explicitly set):

ffprobe -v quiet -print_format xml=q=1:g=1 -show_format -show_streams input.mp4 > metadata.xml

Adding Chapter Information

If your video file contains chapters and you want to include them in the XML export, add the -show_chapters flag to your command:

ffprobe -v quiet -print_format xml -show_format -show_streams -show_chapters input.mp4 > metadata.xml