一、目的
使用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[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; } /** * 调用 */ 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获取音频信息的资料请关注其它相关文章!
© 版权声明
THE END
暂无评论内容