分享下 PHP 使用 getID3 来获取音频、视频等媒体文件相关信息
起因
最近在家办公中,碰到需要处理一些视频文件的操作,公司一直使用的某云存储,处理图片的接口倒是挺多,但是视频类的一些处理就需要开通另外的服务了,捣鼓了一圈子还是决定自己处理给公司省点钱吧。
PHP在本地处理视频等媒体文件的时候一般都是借助了 『ffmpeg』,但是代码有点太老,扩展安装又出了幺蛾子,搞了一下午好累。
后面发现还有 getID3
也可以用来处理相关媒体文件信息,这是一个PHP脚本,只需要简单引入项目即可,不需要安装额外的扩展或者工具。但是问题又来了,国外的下载速度死慢,1.4M的东西下载了1个多小时哭死我。
期间找了下发现都是 C*DN 的资源而且都要积分(作为一名常年白嫖党,怎么可能会有这东西),广告满天飞不说,而且越来越不像个技术社区,真的是好讨厌。
为了帮助更多有需要的人可以使用还是来我们社区分享吧!
下载
使用
因为这不是一个标准的符合 PSR-4
规范的包(没有命名空间,类名也不咋地没细看),如果在项目要使用的话直接添加整个文件夹,然后引入 getid3/getid3.php
即可。如果是在 Laravel 中可以这样引入。
- 解压文件,把文件夹放到项目下,我是放到了
vendor
下(包里有很多无用的文件都可以删除) - 编辑
composer.json
文件 - 找到
autoload
在其下面的files
数组中追加引入"vendor/getID3/getid3/getid3.php", "vendor/getID3/getid3/getid3.lib.php"
- 然后执行
composer dump-autoload
- 最后在需要使用的地方引入即可
下面是一个demo
$path = storage_path('uploads/60EB4401-33A3-27AE-F03E-B54E7282CB5F.mp4');
$mediaTool = new \getID3();
$mediaInfo = $mediaTool->analyze($path);
dd($mediaInfo);
里面会有很多的属性,看自己的需要来取吧。比如其中的 playtime_seconds
就是媒体的时长。
最后
其实上面这些都是被逼无奈,终归属于“野路子”处理。反正现在大家都是存云服务,花点钱应该的毕竟人家的服务确实也可以嘛,而且省事什么转码,水印,自动识别之类功能齐全。最后吐槽下最近在家公办真的变成996了,连蹲个坑都得随时待命,不能离开10分钟不回消息,希望疫情早日过去吧,祝愿大家都能健康平安!
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: