bhutanio/mediainfo-parser

Parse MediInfo text into PHP array.

v1.0.0 2018-04-18 14:01 UTC

This package is auto-updated.

Last update: 2024-04-27 07:08:13 UTC


README

Parse mediainfo text into PHP Array

Latest Version on Packagist Software License Build Status Quality Score Total Downloads

Requirement

Installation

Via Composer

$ composer require bhutanio/mediainfo-parser

Usage

<?php

$parser = new \Bhutanio\MediaInfo\Parser;

$media_info = '
General
Complete name               : Video.mp4
Format                      : MPEG-4
Format profile              : Base Media
Codec ID                    : isom (isom/iso2/avc1/mp41)
File size                   : 322 MiB
Duration                    : 17 min 27 s
Overall bit rate            : 2 577 kb/s
Writing application         : Lavf57.82.100

Video
ID                          : 1
Format                      : AVC
Format/Info                 : Advanced Video Codec
Format profile              : High@L5
Format settings, CABAC      : Yes
Format settings, ReFrames   : 5 frames
Codec ID                    : avc1
Codec ID/Info               : Advanced Video Coding
Duration                    : 17 min 27 s
Bit rate                    : 2 440 kb/s
Width                       : 1 920 pixels
Height                      : 1 080 pixels
Display aspect ratio        : 16:9
Frame rate mode             : Constant
Frame rate                  : 30.000 FPS
Color space                 : YUV
Chroma subsampling          : 4:2:0
Bit depth                   : 8 bits
Scan type                   : Progressive
Bits/(Pixel*Frame)          : 0.039
Stream size                 : 305 MiB (95%)
Writing library             : x264 core 148
Encoding settings           : cabac=1 / ref=5 / deblock=1:0:0 / analyse=0x3:0x113 / me=hex / subme=8 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=34 / lookahead_threads=5 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=90 / keyint_min=46 / scenecut=0 / intra_refresh=0 / rc_lookahead=50 / rc=crf / mbtree=1 / crf=22.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / vbv_maxrate=4000 / vbv_bufsize=133 / crf_max=25.0 / nal_hrd=none / filler=0 / ip_ratio=1.40 / aq=1:1.00

Audio
ID                          : 2
Format                      : AAC
Format/Info                 : Advanced Audio Codec
Format profile              : LC
Codec ID                    : 40
Duration                    : 17 min 27 s
Duration_LastFrame          : -11 ms
Bit rate mode               : Constant
Bit rate                    : 128 kb/s
Channel(s)                  : 2 channels
Channel positions           : Front: L R
Sampling rate               : 44.1 kHz
Frame rate                  : 43.066 FPS (1024 spf)
Compression mode            : Lossy
Stream size                 : 16.0 MiB (5%)
Default                     : Yes
Alternate group             : 1
';

$data = $parser->parse($text);

print_r($data);
/**
Array
(
    [general] => Array
        (
            [file_name] => video.mp4
            [format] => mpeg-4
            [file_size] => 337641472
            [duration] => 17 min 27 s
            [bit_rate] => 2577kb/s
        )

    [video] => Array
        (
            [0] => Array
                (
                    [format] => avc
                    [codec] => avc1
                    [bit_rate] => 2440kb/s
                    [width] => 1920
                    [anamorphic_width] =>
                    [height] => 1080
                    [anamorphic_height] =>
                    [aspect_ratio] => 16:9
                    [framerate_mode] => constant
                    [frame_rate] => 30.000 fps
                    [bit_depth] => 8 bits
                    [bit_pixel_frame] => 0.039
                    [stream_size] => 319815680
                    [writing_library] => x264 core 148
                    [encoding_settings] => cabac=1 / ref=5 / deblock=1:0:0 / analyse=0x3:0x113 / me=hex / subme=8 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=34 / lookahead_threads=5 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=90 / keyint_min=46 / scenecut=0 / intra_refresh=0 / rc_lookahead=50 / rc=crf / mbtree=1 / crf=22.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / vbv_maxrate=4000 / vbv_bufsize=133 / crf_max=25.0 / nal_hrd=none / filler=0 / ip_ratio=1.40 / aq=1:1.00
                )

        )

    [audio] => Array
        (
            [0] => Array
                (
                    [format] => aac
                    [format_profile] => lc
                    [codec] => 40
                    [bit_rate] => 128kb/s
                    [channels] => 2.0ch
                    [stream_size] => 16777216
                )

        )

    [text] =>
)
**/

Testing

$ vendor/bin/phpunit tests

License

The MIT License (MIT). Please see License File for more information.