PHP利用ffmpeg獲取音頻、視頻的詳細(xì)信息
一、目的
使用PHP利用ffmpeg獲取音頻、視頻的詳細(xì)信息,音視頻總時長、碼率、視頻分辨率、音頻編碼、音頻采樣頻率、實(shí)際播放時間、文件大小。
二、下載并安裝ffmpeg
1、下載地址:https://www.ffmpeg.org/
2、解壓放到項目下,文件夾下有三個exe

三、PHP代碼
說明:ffmpeg 更換成自己實(shí)際存放地址;
getVideoInfo()方法有三個判斷,分別是獲取音視頻基本信息(音視頻時長、音視頻秒數(shù)、開始時間、碼率等),視頻信息(視頻編碼、視頻格式、視頻分辨率、視頻尺寸),音頻信息(音頻編碼、音頻采樣頻率)、音視頻文件大小
/**
* 獲取音視頻基本信息
*/
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]; //轉(zhuǎn)換播放時間為秒數(shù)
$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']; //實(shí)際播放時間
}
$data['size'] = filesize($file); //文件大小
return $data;
}
/**
* 調(diào)用
*/
public function video()
{
// 定義視頻路徑
$videoPath = 'E:/phpstudy_pro/WWW/test/public/uploads/8秒.mp4';
$video_info = $this->getVideoInfo($videoPath);
echo '<pre>';
print_r($video_info);
}四、運(yùn)行結(jié)果

以上就是PHP利用ffmpeg獲取音頻、視頻的詳細(xì)信息的詳細(xì)內(nèi)容,更多關(guān)于PHP ffmpeg獲取音頻信息的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
PHP實(shí)現(xiàn)的多進(jìn)程控制demo示例
這篇文章主要介紹了PHP實(shí)現(xiàn)的多進(jìn)程控制demo,涉及php信號處理與進(jìn)程控制相關(guān)操作技巧,需要的朋友可以參考下2019-07-07
在PHP中養(yǎng)成7個面向?qū)ο蟮暮昧?xí)慣
在 PHP 編程早期,PHP 代碼在本質(zhì)上是限于面向過程的。過程代碼 的特征在于使用過程構(gòu)建應(yīng)用程序塊。過程通過允許過程之間的調(diào)用提供某種程度的重用。2010-01-01
PHP設(shè)計模式之組合模式定義與應(yīng)用示例
這篇文章主要介紹了PHP設(shè)計模式之組合模式定義與應(yīng)用,結(jié)合實(shí)例形式詳細(xì)分析了PHP組合模式基本原理、定義與使用方法,需要的朋友可以參考下2020-02-02
php數(shù)組函數(shù)序列之a(chǎn)rray_key_exists() - 查找數(shù)組鍵名是否存在
array_key_exists() 函數(shù)判斷某個數(shù)組中是否存在指定的 key,如果該 key 存在,則返回 true,否則返回 false2011-10-10
微信公眾平臺開發(fā)教程⑥ 微信開發(fā)集成類的使用圖文詳解
這篇文章主要介紹了微信公眾平臺開發(fā)之微信開發(fā)集成類的使用,結(jié)合圖文形式詳細(xì)分析了微信開發(fā)集成類的原理、功能、用法及相關(guān)操作注意事項,需要的朋友可以參考下2019-04-04
詳解cookie驗(yàn)證的php應(yīng)用的一種SSO解決辦法
這篇文章主要介紹了詳解cookie驗(yàn)證的php應(yīng)用的一種SSO解決辦法的相關(guān)資料,希望通過本文能幫助到大家讓大家遇到這種類似問題解決,需要的朋友可以參考下2017-10-10

