PHP使用FFmpeg獲取視頻播放總時(shí)長(zhǎng)與碼率等信息
請(qǐng)注意:這篇文章中會(huì)用到passthru,可能部分虛擬主機(jī)會(huì)將此命令禁用。
代碼如下:
PHP
<?php define('FFMPEG_PATH', '/usr/local/ffmpeg2/bin/ffmpeg -i "%s" 2>&1'); function getVideoInfo($file) { $command = sprintf(FFMPEG_PATH, $file); 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]; //播放時(shí)間 $arr_duration = explode(':', $match[1]); $data['seconds'] = $arr_duration[0] * 3600 + $arr_duration[1] * 60 + $arr_duration[2]; //轉(zhuǎn)換播放時(shí)間為秒數(shù) $data['start'] = $match[2]; //開(kāi)始時(shí)間 $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í)際播放時(shí)間 } $data['size'] = filesize($file); //文件大小 return $data; } //用法 $video_info = getVideoInfo('video.mp4'); print_r($video_info); ?>
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容,希望對(duì)大家學(xué)習(xí)或使用PHP的時(shí)候能有所幫助。如果有疑問(wèn)大家可以留言交流。
- PHP中使用FFMPEG獲取視頻縮略圖和視頻總時(shí)長(zhǎng)實(shí)例
- 利用Ffmpeg獲得flv視頻縮略圖和視頻時(shí)間的代碼
- php使用FFmpeg接口獲取視頻的播放時(shí)長(zhǎng)、碼率、縮略圖以及創(chuàng)建時(shí)間
- php 調(diào)用ffmpeg獲取視頻信息的簡(jiǎn)單實(shí)現(xiàn)
- php使用ffmpeg獲取視頻信息并截圖的實(shí)現(xiàn)方法
- PHP基于ffmpeg實(shí)現(xiàn)轉(zhuǎn)換視頻,截圖及生成縮略圖的方法
- php利用ffmpeg提取視頻中音頻與視頻畫(huà)面的方法詳解
- php使用ffmpeg向視頻中添加文字字幕的實(shí)現(xiàn)方法
- php+ffmpeg如何獲取視頻縮略圖、視頻分辨率等相關(guān)信息
相關(guān)文章
CI框架學(xué)習(xí)筆記(二) -入口文件index.php
本文介紹的是CI框架的入口文件index.php的相關(guān)資料,需要的朋友可以參考下2014-10-10在PHP中運(yùn)行Linux命令并啟動(dòng)SSH服務(wù)的例子
這篇文章主要介紹了在PHP中運(yùn)行Linux命令并啟動(dòng)SSH服務(wù)的例子,因?yàn)閂PS的SSH服務(wù)掛了,導(dǎo)致無(wú)法進(jìn)入服務(wù)器,所以想了這么一個(gè)辦法,需要的朋友可以參考下2014-06-06如何解決phpmyadmin導(dǎo)入數(shù)據(jù)庫(kù)文件最大限制2048KB
這篇文章主要介紹了如何解決phpmyadmin導(dǎo)入數(shù)據(jù)庫(kù)文件最大限制2048KB的相關(guān)資料,需要的朋友可以參考下2015-10-10PHP設(shè)計(jì)模式之工廠模式(Factory)入門(mén)與應(yīng)用詳解
這篇文章主要介紹了PHP設(shè)計(jì)模式之工廠模式(Factory),結(jié)合實(shí)例形式詳細(xì)分析了PHP工廠模式的概念、原理、基本應(yīng)用與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-12-12laravel Validator ajax返回錯(cuò)誤信息的方法
今天小編就為大家分享一篇laravel Validator ajax返回錯(cuò)誤信息的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09