php使用getid3获取视频,图片等媒体文件信息

一,介绍

因项目需要获取上传音频时长,网上找的都是用ffmpeg,嫌弃安装太麻烦,使用起来也不是太方便,在github找到这个库,能满足需求,毕竟能简单解决的问题没必要太复杂,哈哈哈哈~

具体可前往Github:https://github.com/JamesHeinrich/getID3/

(1)支持的音频格式

Ogg,WMA,WMV,ASF,WAV,AVI,AAC,VQF,FLAC,MusePack,Real,QuickTime,Monkey’s Audio,MIDI等

(2)支持的视频格式

ASF: ASF, Windows Media Audio (WMA), Windows Media Video (WMV),AVI (RIFF),Flash,Matroska (MKV),MPEG-1 / MPEG-2,NSV (Nullsoft Streaming Video),Quicktime (including MP4),RealVideo等

(3)支持的图片格式

BMP,GIF,JPEG,PNG,TIFF,SWF (Flash),PhotoCD等

二,类库下载

  1. 官方下载

官方网址:https://www.getid3.org/

  1. 通过composer引入

composer require james-heinrich/getid3

三,使用测试

使用的TthinkPHP5.1版本进行测试,getID3版本为1.9.20,测试本地文件:

namespace app\index\controller;

use think\Controller;
use getID3;

class Index extends Controller
{
    public function index()
    {
        $getID3 = new getID3;
        $path = env('root_path') . "public/";

        // 音频文件
        $audioFile = $path . "Kalimba.mp3";
        // 视频文件
        $videoFile = $path . "Wildlife.wmv";

        // 分析文件
        $audioFileInfo = $getID3->analyze($audioFile);
        $videoFileInfo = $getID3->analyze($videoFile);

        // 测试获取视频,音频时长信息
        // 获取秒数
        $audioSecond = $audioFileInfo['playtime_seconds'];
        // 获取格式化时长
        $audioFormat = $audioFileInfo['playtime_string'];

        dump($audioSecond);
        dump(gmdate("H:i:s", $audioSecond));
        dump($audioFormat);
    }
}
测 试 数 据 \color{#FF0000}{测试数据}
thinkphp\library\think\Debug.php:226:float 348.0555
thinkphp\library\think\Debug.php:226:string '00:05:48' (length=8)
thinkphp\library\think\Debug.php:226:string '5:48' (length=4)
数 据 对 比 \color{#FF0000}{数据对比}

原始数据

五,分析远程文件使用

$remotefilename = 'http://www.example.com/filename.mp3';
if ($fp_remote = fopen($remotefilename, 'rb')) {
    $localtempfilename = tempnam('/tmp', 'getID3');
    if ($fp_local = fopen($localtempfilename, 'wb')) {
        while ($buffer = fread($fp_remote, 8192)) {
            fwrite($fp_local, $buffer);
        }
        fclose($fp_local);
        // Initialize getID3 engine
        $getID3 = new getID3;
        $ThisFileInfo = $getID3->analyze($localtempfilename);
        // Delete temporary file
        unlink($localtempfilename);
    }
    fclose($fp_remote);
}

总结:视频或者其他文件获取信息类似,其他文件信息可打印数组,这里只是简单获取了一下时长数据。里面也内置了一些其他使用方法,有其它需求的可以研究下下载的文件夹内的文件

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值