This package is a wrapper for the fpcalc command-line tool.
First you need to get installed fpcalc
on your system.
OS X
brew install chromaprint
Ubuntu
apt-get install libchromaprint-tools
Arch Linux
pacman -Sy chromaprint
Or you can get the latest version from AcoustId site
Than you just need to require this package via Composer
$ composer require mrfeathers/php-fpcalc
Usage is pretty simple. First you create a FpcalcProcess
using factory class.
$factory = new FpcalcFactory();
$fpcalcProcess = $factory->create();
Than just call generateFingerPrint
with array of file paths (or web stream uri - more info)
$result = $fpcalcProcess->generateFingerPrint(['myfile.mp3']);
//or you can generate fingerprints for more than one file
$result = $fpcalcProcess->generateFingerPrint(['myfile.mp3', 'mysecondfile.mp3']);
//using online stream radio
$result = $fpcalcProcess->generateFingerPrint(['http://icecast2.play.cz/radio1.mp3']);
As a result you'll get output string with generated fingerprint or fingerprints.
You're able to set some options:
format
- input format namealgorithm
- algorithm method (default 2). Available since fpcalc version 1.4.3rate
- sample rate of the inputchannels
- number of channels in the input audiolength
- restricts the duration of the processed input audio (default 120, in seconds)chunk
- splits the input audio into chunks of given duration (in seconds)overlap
- overlap the chunks slightly to make sure audio on the edge id fingeprintedts
- output UNIX timestamps for chunked results, useful when fingerprinting real-time audio streamraw
- output fingerprints in the uncompressed formatoutputFormat
- format of result output. Available: json, text, plain
Sometimes fingerprint generation can be a long process, sou you can set the process timeout using
setTimeout
method (default is 60 seconds).
Feel free to open an issue in case of bugs or improvement requests!