chrizus/mediafile

音频和视频文件元数据的统一读取器

维护者

详细信息

github.com/ChriZus/MediaFile

来源

dev-master 2023-10-05 22:39 UTC

This package is auto-updated.

Last update: 2024-09-06 00:58:47 UTC


README

警告

此包是从 wapmorgan/MediaFile 分支出来的,并根据个人喜好和使用进行了调整。我 建议在项目中使用此包,而是使用原始项目 wapmorgan/MediaFile

MediaFile

允许您通过统一的接口轻松获取任何媒体文件的元信息。该库对外部库或系统单元没有要求。

支持的格式

目录

  1. 用法
  2. API
  3. 为什么不使用 getID3?
  4. 技术细节

用法

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 首次发布时随附的固定文件的分析速度比较

技术信息