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 chromaprintUbuntu
apt-get install libchromaprint-toolsArch Linux
pacman -Sy chromaprintOr you can get the latest version from AcoustId site
Than you just need to require this package via Composer
$ composer require mrfeathers/php-fpcalcUsage 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 name
- algorithm- algorithm method (default 2). Available since fpcalc version 1.4.3
- rate- sample rate of the input
- channels- number of channels in the input audio
- length- 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 fingeprinted
- ts- output UNIX timestamps for chunked results, useful when fingerprinting real-time audio stream
- raw- output fingerprints in the uncompressed format
- outputFormat- format of result output. Available: json, text, plain
Sometimes fingerprint generation can be a long process, sou you can set the process timeout using
setTimeoutmethod (default is 60 seconds).
Feel free to open an issue in case of bugs or improvement requests!