Skip to content

safwanghamrawi/php-fpcalc

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PHP-fpcalc

Software License Build Status

This package is a wrapper for the fpcalc command-line tool.

Installation

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

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 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 setTimeout method (default is 60 seconds).

Feel free to open an issue in case of bugs or improvement requests!

About

PHP fpcalc wrapper

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%