php ffmpeg获取视频文件码率等信息

宝塔终端安装ffmpeg

wget http://download.bt.cn/install/ext/ffmpeg.sh && sh ffmpeg.sh

检查是否安装成功

ffmpeg -version

php代码

public function getVideoInfo($file) {
      define('FFMPEG_PATH', '/usr/local/bin/ffmpeg -i "%s" 2>&1');//安装地址
      $command = sprintf(FFMPEG_PATH,$file);
      ob_start();
      passthru($command);
      $info = ob_get_contents();
      ob_end_clean();
      //var_dump($info);
      $data =array();
      if (preg_match("/Duration: (.*?), start: (.*?), bitrate: (\d*) kb\/s/",$info,$match)) {
        $data['duration'] =$match[1];//播放时间
        $arr_duration =explode(':',$match[1]);
        $data['seconds'] =$arr_duration[0] * 3600 +$arr_duration[1] * 60 +$arr_duration[2];//转换播放时间为秒数
        $data['start'] =$match[2];//开始时间
        $data['bitrate'] =$match[3];//码率(kb)
      }
      if (preg_match("/Video: (.*?), (.*?), (.*?)[,\s]/",$info,$match)) {
        $data['vcodec'] =$match[1];//视频编码格式
        $data['vformat'] =$match[2];//视频格式
        $data['resolution'] =$match[3];//视频分辨率
        $arr_resolution =explode('x',$match[3]);
        $data['width'] =$arr_resolution[0];//宽
        $data['height'] =$arr_resolution[1];//高
      }
    
      if (preg_match("/Audio: (\w*), (\d*) Hz/",$info,$match)) {
        $data['acodec'] =$match[1];//音频编码
        $data['asamplerate'] =$match[2];//音频采样频率
      }
    
      if (isset($data['seconds']) && isset($data['start'])) {
        $data['play_time'] =$data['seconds'] +$data['start'];//实际播放时间
      }
      $data['size'] =filesize($file);//文件大小
      return $data;
    }

tp5框架调用

$this->getVideoInfo("视频文件地址");

宝塔解除passthru函数
在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值