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

一、目的

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

二、下载并安装ffmpeg

1、下载地址:https://www.ffmpeg.org/

2、解压放到项目下,文件夹下有三个exe

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

三、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获取音频、视频的详细信息的详细内容,更多关于PHP ffmpeg获取音频信息的资料请关注其它相关文章!

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容