翼度科技»论坛 编程开发 PHP 查看内容

PHP利用ffmpeg获取音频、视频的详细信息

6

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
一、目的

使用PHP利用ffmpeg获取音频、视频的详细信息,音视频总时长、码率、视频分辨率、音频编码、音频采样频率、实际播放时间、文件大小。

二、下载并安装ffmpeg

1、下载地址:https://www.ffmpeg.org/
2、解压放到项目下,文件夹下有三个exe


三、PHP代码
  1. 说明:ffmpeg 更换成自己实际存放地址;
  2. getVideoInfo()方法有三个判断,分别是获取音视频基本信息(音视频时长、音视频秒数、开始时间、码率等),视频信息(视频编码、视频格式、视频分辨率、视频尺寸),音频信息(音频编码、音频采样频率)、音视频文件大小
复制代码
  1. /**
  2. * 获取音视频基本信息
  3. */
  4. public function getVideoInfo($file)
  5. {
  6.          $command = sprintf('E:/phpstudy_pro/WWW/test/public/ffmpeg/bin/ffmpeg -i "%s" 2>&1', $file);  //你的ffmpeg路径

  7.          ob_start();
  8.          passthru($command);
  9.          $info = ob_get_contents();
  10.          ob_end_clean();

  11.          $data = array();
  12.          if (preg_match("/Duration: (.*?), start: (.*?), bitrate: (\d*) kb\/s/", $info, $match)) {
  13.          $data['duration'] = $match[1]; //播放时间
  14.          $arr_duration = explode(':', $match[1]);
  15.          $data['seconds'] = $arr_duration[0] * 3600 + $arr_duration[1] * 60 + $arr_duration[2]; //转换播放时间为秒数
  16.          $data['start'] = $match[2]; //开始时间
  17.          $data['bitrate'] = $match[3]; //码率(kb)
  18.      }
  19.      if (preg_match("/Video: (.*?), (.*?), (.*?)[,\s]/", $info, $match)) {
  20.          $data['vcodec'] = $match[1]; //视频编码格式
  21.          $data['vformat'] = $match[2]; //视频格式
  22.          $data['resolution'] = $match[3]; //视频分辨率
  23.          $arr_resolution = explode('x', $match[3]);
  24.          $data['width'] = $arr_resolution[0];
  25.          $data['height'] = $arr_resolution[1];
  26.      }
  27.      if (preg_match("/Audio: (\w*), (\d*) Hz/", $info, $match)) {
  28.          $data['acodec'] = $match[1]; //音频编码
  29.          $data['asamplerate'] = $match[2]; //音频采样频率
  30.      }
  31.      if (isset($data['seconds']) && isset($data['start'])) {
  32.          $data['play_time'] = $data['seconds'] + $data['start']; //实际播放时间
  33.      }
  34.      $data['size'] = filesize($file); //文件大小
  35.      return $data;
  36. }

  37. /**
  38. * 调用
  39. */
  40. public function video()
  41. {
  42.         // 定义视频路径
  43.         $videoPath = 'E:/phpstudy_pro/WWW/test/public/uploads/8秒.mp4';
  44.         $video_info = $this->getVideoInfo($videoPath);
  45.         echo '<pre>';
  46.     print_r($video_info);
  47. }
复制代码
四、运行结果


以上就是PHP利用ffmpeg获取音频、视频的详细信息的详细内容,更多关于PHP ffmpeg获取音频信息的资料请关注脚本之家其它相关文章!

来源:https://www.jb51.net/program/313211px6.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具