codememory / media-file-fork

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

v1.0 2022-06-17 21:10 UTC

This package is auto-updated.

Last update: 2024-08-30 01:34:21 UTC


README

允许您通过统一界面轻松获取任何媒体文件的元信息。该库不需要外部库或系统单元。

Latest Stable Version License Latest Unstable Version Tests

支持的格式

目录

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

用法

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 分析速度的比较

技术信息