Download the PHP package wapmorgan/mp3info without Composer
On this page you can find all versions of the php package wapmorgan/mp3info. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package mp3info
Mp3Info
The fastest PHP library to get mp3 tags&meta.
This class extracts information from mpeg/mp3 audio:
- Audio information:
- Duration
- Bit Rate
- Sample Rate
- Channels mode
- Codec and Layer version
- Frames count
- Audio image (cover)
- Audio tags:
tag | id3v1 | id3v2 |
---|---|---|
song | song | TIT2 |
artist | artist | TPE1 |
album | album | TALB |
year | year | TYER |
comment | comment | COMM |
track | track | TRCK |
genre | genre | TCON |
Content
- Usage
- Performance
- Console scanner
- API
- Audio information
- Class methods
- Settings
- Technical information
Usage
After creating an instance of Mp3Info
with passing filename as the first argument to the constructor, you can retrieve data from object properties (listed below).
And after that access object properties to get audio information:
To access id3v1 tags use $tags1
property.
To access id3v2 tags use $tags2
property.
Also, you can use combined list of tags $tags
, where id3v2 and id3v1 tags united with id3v1 keys.
Performance
- Typically it parses one mp3-file with size around 6-7 mb in less than 0.001 sec.
- List of 112 files with constant & variable bitRate with total duration 5:22:28 are parsed in 1.76 sec. getId3 library against exactly the same mp3 list works for 8x-10x slower - 9.9 sec.
- If you want, there's a very easy way to compare. Just install
nass600/get-id3
package and run console scanner against any folder with audios. It will print time that Mp3Info spent and that getId3.
Console scanner
To test Mp3Info you can use built-in script that scans dirs and analyzes all mp3-files inside them. To launch script against current folder:
API
Audio information
Property | Description | Values |
---|---|---|
$codecVersion |
MPEG codec version | 1 or 2 |
$layerVersion |
Audio layer version | 1 or 2 or 3 |
$audioSize |
Audio size in bytes. Note that this value is NOT equals file size. | int |
$duration |
Audio duration in seconds.microseconds | like 3603.0171428571 (means 1 hour and 3 sec) |
$bitRate |
Audio bit rate in bps | like 128000 (means 128kb/s) |
$sampleRate |
Audio sample rate in Hz | like 44100 (means 44.1KHz) |
$isVbr |
Contains true if audio has variable bit rate |
boolean |
$hasCover |
Contains true if audio has a bundled image |
boolean |
$channel |
Channel mode | 'stereo' or 'dual_mono' or 'joint_stereo' or 'mono' |
$tags1 |
Audio tags ver. 1 (aka id3v1). | ["song" => "Song name", "year" => 2009] |
$tags2 |
Audio tags ver. 2 (aka id3v2), only text ones. | ["TIT2" => "Long song name", ...] |
$tags |
Combined audio tags (from id3v1 & id3v2). Keys as in tags1. | ["song" => "Long song name", "year" => 2009, ...] |
$coverProperties |
Information about a bundled with audio image. | ["mime_type" => "image/jpeg", "picture_type" => 1, ...] |
$_parsingTime |
Contains time spent to read&extract audio information in sec.msec |
Class methods
-
$audio = new Mp3Info($filename, $parseTags = false)
Creates new instance of object and initiate parsing. If you need to parse audio tags (id3v1 and id3v2), passtrue
as second argument is. -
$audio->getCover()
Returns raw content of bundled with audio image. Mp3Info::isValidAudio($filename)
Static method that checks if file$filename
looks like a mp3-file. Returnstrue
if file looks like a mp3, otherwise false.
Settings
You can adjust some variables to reconfigure before instantiating of object:
Mp3Info::$headerSeekLimit
- count of bytes to search for the first mpeg header in audio. Default:2048
(bytes).Mp3Info::$framesCountRead
- count of mpeg frames to read before compute audio duration. Default:2
(frames).
Technical information
Supporting features:
- id3v1
- id3v2.3.0, id3v2.4.0
- CBR, Variable Bit Rate (VBR)
Used sources:
All versions of mp3info with dependencies
ext-mbstring Version *