PHPackages                             ac/media-info-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. ac/media-info-bundle

ActiveSymfony-bundle[Utility &amp; Helpers](/categories/utility)

ac/media-info-bundle
====================

Provides a wrapper for the mediainfo command line utility.

1.3.0(11y ago)2441↓100%3MITPHP

Since Jul 26Pushed 11y ago6 watchersCompare

[ Source](https://github.com/AmericanCouncils/MediaInfoBundle)[ Packagist](https://packagist.org/packages/ac/media-info-bundle)[ RSS](/packages/ac-media-info-bundle/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependencies (3)Versions (5)Used By (0)

MediaInfoBundle
===============

[](#mediainfobundle)

This bundle provides a wrapper around the command line utility [mediainfo](http://mediaarea.net/en/MediaInfo). This utility lets you get metadata about various multimedia formats.

For this bundle to work you must, of course, have `mediainfo` installed on your system.

Installation
------------

[](#installation)

Require in your `composer.json`:

```
{
  "require": {
    "ac/media-info-bundle": "~1.2.0"
  }
}
```

Add to your `AppKernel.php`;

```
//app/AppKernel.php

public function registerBundles()
{
    return array(
    //...
        new AC\MediaInfoBundle\ACMediaInfoBundle(),
    //...
    );
}
```

Configuration
-------------

[](#configuration)

Configuration is very simple, you only need to provide the path to the `mediainfo` executable:

```
ac_media_info:
    path: /usr/bin/mediainfo
```

Usage
-----

[](#usage)

Usage is equally simple:

```
$mediainfo = $container->get('ac.mediainfo');

//will return a structured php array with the mediainfo results
$array = $mediainfo->scan('/path/to/file.mp4');
```

It's important to note that the keys under `$array['file']` contain arrays as values, because mediainfo reports many values in a variety of representations. You can see an example below.

All keys returned by `mediainfo` are normalized to lower-case. For example, if you use the `mediainfo:scan` command to export the data in yaml, you would see:

```
app/console mediainfo:scan /path/to/example.webm

version: 0.7.63
file:
    general:
        count:
            - '284'
        count_of_stream_of_this_kind:
            - '1'
        kind_of_stream:
            - General
        unique_id:
            - '94077224337973666327274415816295077565'
            - '94077224337973666327274415816295077565 (0x46C69D45A185A9294D3D0A2F750056BD)'
        count_of_video_streams:
            - '1'
        count_of_audio_streams:
            - '1'
        video_format_list:
            - VP8
        video_format_withhint_list:
            - VP8
        codecs_video:
            - V_VP8
        video_language_list:
            - English
        audio_format_list:
            - Vorbis
        audio_format_withhint_list:
            - Vorbis
        audio_codecs:
            - Vorbis
        audio_language_list:
            - English
        complete_name:
            - /Users/evan/Desktop/trailer.webm
        folder_name:
            - /Users/evan/Desktop
        file_name:
            - trailer
        file_extension:
            - webm
        format:
            - WebM
        format_url:
            - 'http://www.webmproject.org/'
        format_extensions_usually_used:
            - webm
        commercial_name:
            - WebM
        format_version:
            - 'Version 1'
        internet_media_type:
            - video/webm
        codec:
            - WebM
        codec_url:
            - 'http://www.webmproject.org/'
        codec_extensions_usually_used:
            - webm
        file_size:
            - '2165175'
            - '2.06 MiB'
            - '2 MiB'
            - '2.1 MiB'
            - '2.065 MiB'
        duration:
            - '32480'
            - '32s 480ms'
            - '00:00:32.480'
        overall_bit_rate_mode:
            - VBR
            - Variable
        overall_bit_rate:
            - '533294'
            - '533 Kbps'
        stream_size:
            - '121714'
            - '119 KiB (6%)'
            - '119 KiB'
            - '118.9 KiB'
        proportion_of_this_stream:
            - '0.05621'
        encoded_date:
            - 'UTC 2010-05-20 08:21:12'
        file_last_modification_date:
            - 'UTC 2013-07-26 20:20:20'
        file_last_modification_date__local_:
            - '2013-07-26 16:20:20'
        writing_application:
            - 'Sorenson Squeeze'
        writing_library:
            - 'http://sourceforge.net/projects/yamka'
    video:
        '1':
            count:
                - '263'
            count_of_stream_of_this_kind:
                - '1'
            kind_of_stream:
                - Video
            streamorder:
                - '0'
            id:
                - '1'
            unique_id:
                - '38308775201223106'
            format:
                - VP8
            format_url:
                - 'http://www.webmproject.org/'
            commercial_name:
                - VP8
            codec_id:
                - V_VP8
            codec_id_url:
                - 'http://www.webmproject.org/'
            codec:
                - V_VP8
            duration:
                - '32480'
                - '32s 480ms'
                - '00:00:32.480'
            bit_rate:
                - '439316'
                - '439 Kbps'
            width:
                - '640'
                - '640 pixels'
            height:
                - '360'
                - '360 pixels'
            pixel_aspect_ratio:
                - '1.000'
            display_aspect_ratio:
                - '1.778'
                - '16:9'
            frame_rate_mode:
                - CFR
                - Constant
            frame_rate:
                - '25.000'
                - '25.000 fps'
            frame_count:
                - '812'
            compression_mode:
                - Lossy
            bits__pixel_frame_:
                - '0.076'
            delay:
                - '0'
                - '00:00:00.000'
            delay__origin:
                - Container
            stream_size:
                - '1783621'
                - '1.70 MiB (82%)'
                - '2 MiB'
                - '1.7 MiB'
                - '1.70 MiB'
                - '1.701 MiB'
            proportion_of_this_stream:
                - '0.82378'
            language:
                - en
                - English
                - eng
            default:
                - Yes
            forced:
                - No
    audio:
        '1':
            count:
                - '220'
            count_of_stream_of_this_kind:
                - '1'
            kind_of_stream:
                - Audio
            streamorder:
                - '1'
            id:
                - '2'
            unique_id:
                - '110618262945856186'
            format:
                - Vorbis
            format_url:
                - 'http://www.vorbis.com/'
            commercial_name:
                - Vorbis
            format_settings__floor:
                - '1'
            internet_media_type:
                - audio/vorbis
            codec_id:
                - A_VORBIS
            codec_id_url:
                - 'http://www.vorbis.com'
            codec:
                - Vorbis
            codec_family:
                - Vorbis
            codec_url:
                - 'http://www.vorbis.com'
            codec_settings__floor:
                - '1'
            duration:
                - '32480'
                - '32s 480ms'
                - '00:00:32.480'
            bit_rate_mode:
                - VBR
                - Variable
            bit_rate:
                - '64000'
                - '64.0 Kbps'
            channel_s_:
                - '1'
                - '1 channel'
            sampling_rate:
                - '44100'
                - '44.1 KHz'
            samples_count:
                - '1432368'
            compression_mode:
                - Lossy
            delay:
                - '0'
                - '00:00:00.000'
            delay__origin:
                - Container
            delay_relative_to_video:
                - '0'
            video0_delay:
                - '0'
            stream_size:
                - '259840'
                - '254 KiB (12%)'
                - '254 KiB'
                - '253.8 KiB'
            proportion_of_this_stream:
                - '0.12001'
            writing_library:
                - 'Xiph.Org libVorbis I 20100325 (Everywhere)'
                - 'libVorbis (Everywhere) (20100325 (Everywhere))'
            writing_library_name:
                - libVorbis
            writing_library_version:
                - (Everywhere)
            writing_library_date:
                - '20100325 (Everywhere)'
            language:
                - en
                - English
                - eng
            default:
                - Yes
            forced:
                - No
```

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity19

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity66

Established project with proven stability

 Bus Factor1

Top contributor holds 66.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~177 days

Total

4

Last Release

4143d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/da08c6257f53e954fff32423fd8835555bd14bd84316fd8bf126690cd7e1008a?d=identicon)[americancouncils](/maintainers/americancouncils)

---

Top Contributors

[![evillemez](https://avatars.githubusercontent.com/u/318976?v=4)](https://github.com/evillemez "evillemez (4 commits)")[![DavidMikeSimon](https://avatars.githubusercontent.com/u/350396?v=4)](https://github.com/DavidMikeSimon "DavidMikeSimon (2 commits)")

---

Tags

metadatamediainfomultimedia

### Embed Badge

![Health badge](/badges/ac-media-info-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/ac-media-info-bundle/health.svg)](https://phpackages.com/packages/ac-media-info-bundle)
```

###  Alternatives

[symfony/maker-bundle

Symfony Maker helps you create empty commands, controllers, form classes, tests and more so you can forget about writing boilerplate code.

3.4k111.1M568](/packages/symfony-maker-bundle)[mhor/php-mediainfo

PHP wrapper around the mediainfo command

120574.8k7](/packages/mhor-php-mediainfo)[shivas/versioning-bundle

Symfony application versioning, simple console command to manage version (with providers e.g. git tag) of your application using Semantic Versioning 2.0.0 recommendations

1121.2M1](/packages/shivas-versioning-bundle)[pixelopen/cloudflare-turnstile-bundle

A simple package to help integrate Cloudflare Turnstile on Symfony.

31205.8k3](/packages/pixelopen-cloudflare-turnstile-bundle)[netgen/layouts-core

Netgen Layouts enables you to build and manage complex web pages in a simpler way and with less coding. This is the core of Netgen Layouts, its heart and soul.

3689.4k10](/packages/netgen-layouts-core)[netgen/content-browser

Netgen Content Browser is a Symfony bundle that provides an interface which selects items from any kind of backend and returns the IDs of selected items back to the calling code.

14112.1k8](/packages/netgen-content-browser)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
