摘要:原文鏈接獲取視頻播放時長今天做一個視頻管理系統的時候,客戶要求一個視頻截取張縮略圖。那么就涉及到如何去獲取視頻長度的問題。查找相關資料,最終封裝了如下方法,不僅可以獲取視頻時長,還可以獲取分辨率編碼比特率等信息。
原文鏈接:http://www.fire-rain.com/blog/FFMPEG_VIDEO_TIME
FFMPEG獲取視頻播放時長今天做一個視頻管理系統的時候,客戶要求一個視頻截取20張縮略圖。并且按照視頻長度截取20個不同時間點。那么就涉及到如何去獲取視頻長度的問題。查找相關資料,最終封裝了如下方法,不僅可以獲取視頻時長,還可以獲取分辨率、編碼、比特率等信息。
調用示例&1", $file)); $info = ob_get_contents(); ob_end_clean(); // 通過使用輸出緩沖,獲取到ffmpeg所有輸出的內容。 $ret = array(); // Duration: 01:24:12.73, start: 0.000000, bitrate: 456 kb/s if (preg_match("/Duration: (.*?), start: (.*?), bitrate: (d*) kb/s/", $info, $match)) { $ret["duration"] = $match[1]; // 提取出播放時間 $da = explode(":", $match[1]); $ret["seconds"] = $da[0] * 3600 + $da[1] * 60 + $da[2]; // 轉換為秒 $ret["start"] = $match[2]; // 開始時間 $ret["bitrate"] = $match[3]; // bitrate 碼率 單位 kb } // Stream #0.1: Video: rv40, yuv420p, 512x384, 355 kb/s, 12.05 fps, 12 tbr, 1k tbn, 12 tbc if (preg_match("/Video: (.*?), (.*?), (.*?)[,s]/", $info, $match)) { $ret["vcodec"] = $match[1]; // 編碼格式 $ret["vformat"] = $match[2]; // 視頻格式 $ret["resolution"] = $match[3]; // 分辨率 $a = explode("x", $match[3]); $ret["width"] = $a[0]; $ret["height"] = $a[1]; } // Stream #0.0: Audio: cook, 44100 Hz, stereo, s16, 96 kb/s if (preg_match("/Audio: (w*), (d*) Hz/", $info, $match)) { $ret["acodec"] = $match[1]; // 音頻編碼 $ret["asamplerate"] = $match[2]; // 音頻采樣頻率 } if (isset($ret["seconds"]) && isset($ret["start"])) { $ret["play_time"] = $ret["seconds"] + $ret["start"]; // 實際播放時間 } $ret["size"] = filesize($file); // 文件大小 return $ret; } // 調用方法: print_r( video_info("test.mp4","ffmpeg.exe"));
返回結果
Array ( [duration] => 00:00:30.13 [seconds] => 30.13 [start] => 0.036281 [bitrate] => 5495 [vcodec] => h264 (High) (avc1 / 0x31637661) [vformat] => yuv420p [resolution] => 1280x720 [width] => 1280 [height] => 720 [play_time] => 30.166281 [size] => 20695855 )
注意需要在php.ini文件上把passthru函數的權限打開,否則會報錯!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/20839.html
摘要:背景因為工作中有部分內容是使用來獲取音視頻信息以及對音視頻文件進行處理,遇到了一些問題,所以一路搜過來。因為視頻處理必然離不開,網上抄了一段是領先的多媒體框架。 背景: 因為工作中有部分內容是使用PHP來獲取音/視頻信息以及對音視頻文件進行處理,遇到了一些問題,所以一路搜過來。 FFmpeg 因為視頻處理必然離不開FFmpeg,網上抄了一段: FFmpeg是領先的多媒體框架。 在這個框...
摘要:之前我們介紹了在線短視頻秒播優化的方方面面,從服務器,部署接入,數據連接獲取,客戶端緩存,出幀策略,到視頻文件幀位置等。并不是文件必須的部分,但在我們常見的可在線播放的格式文件中例如中的文件確是重中之重。 showImg(https://segmentfault.com/img/bV0wbG?w=826&h=358);之前我們介紹了在線短視頻秒播優化的方方面面,從服務器,cdn部署接入...
閱讀 1580·2021-11-23 10:01
閱讀 2974·2021-11-19 09:40
閱讀 3220·2021-10-18 13:24
閱讀 3471·2019-08-29 14:20
閱讀 2985·2019-08-26 13:39
閱讀 1280·2019-08-26 11:56
閱讀 2669·2019-08-23 18:03
閱讀 379·2019-08-23 15:35