一些涉及到視頻的業(yè)務(wù),列表頁顯示視頻列表需要視頻的縮略圖,一些云服務(wù)如七牛云等匈勋,可以再上傳視頻的同時自動生成縮略圖,但很多公司由于各種原因膳叨,需要自己生成視頻縮略圖洽洁,下面提供一種php的實現(xiàn)方法,主要使用了FFMPEG菲嘴。
什么是FFMPEG
FFmpeg是一套可以用來記錄饿自、轉(zhuǎn)換數(shù)字音頻汰翠、視頻,并能將其轉(zhuǎn)化為流的開源計算機程序昭雌。采用LGPL或GPL許可證复唤。它提供了錄制、轉(zhuǎn)換以及流化音視頻的完整解決方案城豁。它包含了非常先進的音頻/視頻編解碼庫libavcodec苟穆,為了保證高可移植性和編解碼質(zhì)量,libavcodec里很多code都是從頭開發(fā)的唱星。
FFmpeg在Linux平臺下開發(fā)雳旅,但它同樣也可以在其它操作系統(tǒng)環(huán)境中編譯運行,包括Windows间聊、Mac OS X等攒盈。這個項目最早由Fabrice Bellard發(fā)起,2004年至2015年間由Michael Niedermayer主要負責維護哎榴。許多FFmpeg的開發(fā)人員都來自MPlayer項目型豁,而且當前FFmpeg也是放在MPlayer項目組的服務(wù)器上。項目的名稱來自MPEG視頻編碼標準尚蝌,前面的"FF"代表"Fast Forward"迎变。
如何安裝FFMPEG
- 下載 ffmpeg
ffmpeg的下載鏈接 http://ffmpeg.org/download.html
- 解壓安裝包
tar -jxvf ffmpeg-x.x.tar.bz2
- 進入目錄
cd ffmpeg-x.x
- 編譯安裝
./configure --enable-shared && make && make install
安裝完成之后 執(zhí)行 ffmpeg -version輸出相關(guān)信息,說明ffmpeg安裝成功飘言。
可能需要的問題
- yasm沒有
解決yum install install yasm
- 報lib不存在
解決ldconfig
php使用FFMPEG
- 首先需要服務(wù)器安裝好FFMPEG 軟件衣形。
- 安裝php擴展或者使用類庫
我選擇了php類庫,因為php FFMPEG 已經(jīng)很久沒有更新了姿鸿,并且安裝起來相對麻煩
安裝類庫方法:composer require php-ffmpeg/php-ffmpeg
- 使用方法具體見github
如下代碼使用了視頻第一秒的畫面作為縮略圖谆吴。
private function getThumb($dir, $fileName, $name)
{
$ffmpeg = FFMpeg::create([
'ffmpeg.binaries' => '/usr/local/bin/ffmpeg',
'ffprobe.binaries' => '/usr/local/bin/ffprobe',
'timeout' => 3600, // The timeout for the underlying process
'ffmpeg.threads' => 12, // The number of threads that FFMpeg should use
]);
$video = $ffmpeg->open($dir . $fileName);
$thumbFile = $dir . $name . "_thumb.jpg";
$video->frame(TimeCode::fromSeconds(1))->save($thumbFile);
return $name . "_thumb.jpg";
}