codememory / media-file-fork
音频和视频文件的统一元数据读取器
v1.0
2022-06-17 21:10 UTC
Requires
- php: >=5.5
- bluemoehre/flac-php: 1.0.2
- codememory/wave-fork: 1.0
- wapmorgan/binary-stream: ~0.4.0
- wapmorgan/file-type-detector: ^1.0.2
- wapmorgan/mp3info: ~0.0
Requires (Dev)
- james-heinrich/getid3: ^1.9
- phpunit/phpunit: ~4.8
Suggests
- boyhagemann/wave: Wav support
README
允许您通过统一界面轻松获取任何媒体文件的元信息。该库不需要外部库或系统单元。
支持的格式
目录
- 用法
- API
- 为什么不使用getID3?
- 技术细节
用法
use wapmorgan\MediaFile\MediaFile; try { $media = MediaFile::open('123.mp3'); // for audio if ($media->isAudio()) { $audio = $media->getAudio(); echo 'Duration: '.$audio->getLength().PHP_EOL; echo 'Bit rate: '.$audio->getBitRate().PHP_EOL; echo 'Sample rate: '.$audio->getSampleRate().PHP_EOL; echo 'Channels: '.$audio->getChannels().PHP_EOL; } // for video else { $video = $media->getVideo(); // calls to VideoAdapter interface echo 'Duration: '.$video->getLength().PHP_EOL; echo 'Dimensions: '.$video->getWidth().'x'.$video->getHeight().PHP_EOL; echo 'Framerate: '.$video->getFramerate().PHP_EOL; } } catch (wapmorgan\MediaFile\Exceptions\FileAccessException $e) { // FileAccessException throws when file is not a detected media } catch (wapmorgan\MediaFile\Exceptions\ParsingException $e) { echo 'File is propably corrupted: '.$e->getMessage().PHP_EOL; }
API
MediaFile
wapmorgan\wapmorgan\MediaFile
AudioAdapter
wapmorgan\MediaFile\AudioAdapter
VideoAdapter
wapmorgan\MediaFile\VideoAdapter
ContainerAdapter
wapmorgan\MediaFile\ContainerAdapter
为什么不使用getID3?
getID3库非常流行,功能丰富,但它很旧且速度太慢。
以下表格显示了MediaFile首次发布时与 fixtures 分析速度的比较