Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Media Info Bundle Laravel Package

ac/media-info-bundle

Symfony bundle wrapping the mediainfo CLI to extract multimedia metadata. Configure the mediainfo binary path, then scan files to get a normalized, structured PHP array (keys lowercased). Includes a console command to export scan results (e.g., YAML).

View on GitHub
Deep Wiki
Context7

MediaInfoBundle

This bundle provides a wrapper around the command line utility 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

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 is very simple, you only need to provide the path to the mediainfo executable:

ac_media_info:
    path: /usr/bin/mediainfo

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
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
craftcms/url-validator
directorytree/privacy-filter-classifier
directorytree/privacy-filter
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
develia/geo-bundle
dreamzy/livewire-charts
touchestate-sdk/php-sdk
22h/doctrine-garbage-collection-bundle
agtp/agtp-php
agtp/mod-php
splash/sonata-admin
splash/metadata
splash/openapi
splash/scopes
splash/toolkit
testo/output-teamcity
testo/bridge-symfony