plutuss / getid3-laravel
一个围绕 james-heinrich/getid3 的包装,用于从媒体文件中提取各种信息。
1.3.0
2024-09-24 16:33 UTC
Requires
- illuminate/support: ^8.0|^9.0|^10.0|^11.0
- james-heinrich/getid3: ^v2.0.0-beta6
README
Laravel
- GitHub.
- 此包是围绕 james-heinrich/getid3 的包装。
注意
由 James Heinrich 开发的 getID3 包是一款强大的分析音频和视频文件元数据工具。以下是其部分功能:
- 元数据提取:getID3 可以从多媒体文件中提取各种类型的元数据,包括格式、编解码器、时长、比特率、采样率等信息。
- 支持多种格式:该包支持广泛的音频和视频格式,包括 MP3、WAV、FLAC、OGG、AAC、WMA、AVI、MPEG、QuickTime 等。
- 标签处理:它还能够分析和提取元数据标签中的信息,例如 MP3 文件的 ID3 标签或其他格式的类似标签。
- 字符编码检测:getID3 可以自动检测元数据中使用的文本编码,以便正确处理不同语言和特殊字符。
- 流信息检索:此包可以分析多媒体文件的结构,并提供其中包含的音频和视频流信息。
- 灵活性和可定制性:getID3 为用户提供各种选项和设置,允许他们根据项目的具体需求和要求自定义其行为。
注意
这些功能使 getID3 包成为处理多媒体文件的开发者的宝贵工具,同时也是创建需要分析和处理音频和视频数据的应用的理想选择。
composer require plutuss/getid3-laravel
使用 Facade MediaAnalyzer
- uploadFile()
- fromLocalFile()
<?php use Plutuss\Facades\MediaAnalyzer; use Illuminate\Http\Request; class MediaAnalyzerController extends Controller { public function index(Request $request) { // To add a file locally it must be in storage. // So that the Storage facade can read it. // The default disk value is taken from the .env file FILESYSTEM_DISK MediaAnalyzer::fromLocalFile('/video.mov')->getAllInfo(); // OR MediaAnalyzer::fromLocalFile( path: 'files/video.mov', disk: 'public', // "local", "ftp", "sftp", "s3" )->getAllInfo(); // Request file MediaAnalyzer::uploadFile($request->file('video'))->getAllInfo(); } }
- 可用方法列表
$media = MediaAnalyzer::uploadFile($request->file('video'))
$media->getAllInfo();
$media->getDuration();
$media->comments();
$media->getResolution();
$media->getImage();
$media->getTitle();
$media->getAlbum();
$media->getPlaytime();
$media->getGenres();
$media->getArtist();
$media->getComposer();
$media->getTrackNumber();
$media->getCopyrightInfo();
$media->getFileFormat();
$media->getNestedValue('key.array')
- 您还可以参考以下属性
$media = MediaAnalyzer::uploadFile($request->file('video')) "video" => array:11 [▶] "warning" => array:5 [▶] "comments" => array:1 [▶] "encoding" => "UTF-8" "mime_type" => "video/quicktime" "quicktime" => array:11 [▶] "playtime_seconds" => 9.56 "bitrate" => 50294133.891213 "playtime_string" => "0:10" $media->video; $media->playtime_seconds; $media->playtime_string; $media->mime_type;
- getNestedValue() 方法通过“点”符号从深层嵌套数组中检索值
$media = MediaAnalyzer::uploadFile($request->file('video')) "avdataoffset" => 48 "avdataend" => 60101538 "fileformat" => "quicktime" "video" => array:11 [▼ "dataformat" => "quicktime" "resolution_x" => 1920.0 "resolution_y" => 1080.0 "codec" => "H.264" "bits_per_sample" => 24 "frame_rate" => 25.0 "bitrate" => 50294133.891213 "compression_ratio" => 0.040424168829743 ] "warning" => array:5 [▶] "comments" => array:1 [▶] $media->getNestedValue('video.codec') // H.264 $media->getNestedValue('video.resolution_x') // 1920.0