chrizus / mediafile
音频和视频文件元数据的统一读取器
dev-master
2023-10-05 22:39 UTC
Requires
- php: >=5.5
- bluemoehre/flac-php: 1.0.2
- boyhagemann/wave: dev-master
- 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
This package is auto-updated.
Last update: 2024-09-06 00:58:47 UTC
README
警告
此包是从 wapmorgan/MediaFile 分支出来的,并根据个人喜好和使用进行了调整。我 不 建议在项目中使用此包,而是使用原始项目 wapmorgan/MediaFile
MediaFile
允许您通过统一的接口轻松获取任何媒体文件的元信息。该库对外部库或系统单元没有要求。
支持的格式
目录
- 用法
- API
- 为什么不使用 getID3?
- 技术细节
用法
use BergPlaza\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
BergPlaza\MediaFile
AudioAdapter
BergPlaza\MediaFile\AudioAdapter
VideoAdapter
BergPlaza\MediaFile\VideoAdapter
ContainerAdapter
BergPlaza\MediaFile\ContainerAdapter
为什么不使用 getID3?
getID3 库非常受欢迎,功能强大,但已经很旧,运行速度太慢。
以下表格显示了 MediaFile 首次发布时随附的固定文件的分析速度比较