吕淦 发表于 2024-2-25 01:34:52

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

一、目的

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

二、下载并安装ffmpeg

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


三、PHP代码

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

       ob_start();
       passthru($command);
       $info = ob_get_contents();
       ob_end_clean();

       $data = array();
       if (preg_match("/Duration: (.*?), start: (.*?), bitrate: (\d*) kb\/s/", $info, $match)) {
         $data['duration'] = $match; //播放时间
         $arr_duration = explode(':', $match);
         $data['seconds'] = $arr_duration * 3600 + $arr_duration * 60 + $arr_duration; //转换播放时间为秒数
         $data['start'] = $match; //开始时间
         $data['bitrate'] = $match; //码率(kb)
   }
   if (preg_match("/Video: (.*?), (.*?), (.*?)[,\s]/", $info, $match)) {
         $data['vcodec'] = $match; //视频编码格式
         $data['vformat'] = $match; //视频格式
         $data['resolution'] = $match; //视频分辨率
         $arr_resolution = explode('x', $match);
         $data['width'] = $arr_resolution;
         $data['height'] = $arr_resolution;
   }
   if (preg_match("/Audio: (\w*), (\d*) Hz/", $info, $match)) {
         $data['acodec'] = $match; //音频编码
         $data['asamplerate'] = $match; //音频采样频率
   }
   if (isset($data['seconds']) && isset($data['start'])) {
         $data['play_time'] = $data['seconds'] + $data['start']; //实际播放时间
   }
   $data['size'] = filesize($file); //文件大小
   return $data;
}

/**
* 调用
*/
public function video()
{
        // 定义视频路径
        $videoPath = 'E:/phpstudy_pro/WWW/test/public/uploads/8秒.mp4';
        $video_info = $this->getVideoInfo($videoPath);
        echo '<pre>';
    print_r($video_info);
}
四、运行结果


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

来源:https://www.jb51.net/program/313211px6.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: PHP利用ffmpeg获取音频、视频的详细信息