1.安裝 LAME
LAME 是用來將聲音壓成 MP3 格式,並加入 --enable-shared 以供 ffmpeg 使用
網址:http://lame.sourceforge.net/
下載完成後,輸入下列命令:
[root@localhost ~]# tar -zxvf lame-3.98.4.tar.gz
[root@localhost ~]# cd lame-3.98.4
[root@localhost ~]# ./configure --enable-shared -prefix=/usr
[root@localhost ~]# make
[root@localhost ~]# make install
2.安裝 ffmpeg
ffmpeg 影片轉檔系統,其 libavcodec 涵蓋大部分影片格式,不過仍有轉換 FLV 上的問題,須另外安裝 FLVTools 來修正。
網址:http://www.ffmpeg.org/
下載完成後,輸入下列命令:
[root@localhost ~]# tar -zxvf ffmpeg-0.5.1.tar.gz
[root@localhost ~]# cd ffmpeg-0.5.1
[root@localhost ~]# ./configure --enable-gpl --enable-libmp3lame --enable-shared --prefix=/usr
[root@localhost ~]# make clean && make
[root@localhost ~]# make install
3.安裝 Ruby
FLVTool2 可以修正 ffmpeg 不正確儲存 FLV metadata 的問題,不過它是用 Ruby 寫的,須先安裝 Ruby。
網址:http://www.ruby-lang.org/en/
下載完成後,輸入下列命令:
[root@localhost ~]# tar -zxvf ruby-1.9.1-p376.tar.gz
[root@localhost ~]# cd ruby-1.9.1-p376
[root@localhost ~]# ./configure
[root@localhost ~]# make
[root@localhost ~]# make install
4.安裝 FLVTool2
FLVTool2 是一個用來編輯FLV檔的套件,透過它來儲存FLV檔,確保 FLV 檔裡有正確的 metadata。
網址:http://rubyforge.org/projects/flvtool2/
下載完成後,輸入下列命令:
[root@localhost ~]# tar -xvf flvtool2-1.0.6.tar
[root@localhost ~]# cd flvtool2-1.0.6
[root@localhost ~]# ruby setup.rb config
[root@localhost ~]# ruby setup.rb setup
[root@localhost ~]# ruby setup.rb install
5.安裝 ffmpeg-php
為了讓 PHP 取得影片的資料,要安裝 ffmpeg-php 插件。
網址:http://ffmpeg-php.sourceforge.net/
下載完成後,輸入下列命令:
[root@localhost ~]# tar -xvf ffmpeg-php-0.6.0.tbz2
[root@localhost ~]# cd ffmpeg-php-0.6.0
[root@localhost ~]# phpize
[root@localhost ~]# ./configure && make
[root@localhost ~]# make install
如果 Apache 是使用 XAMPP 請參考這篇:
[Linux] 在 XAMPP 上安裝 PHP extension (以 ffmpeg-php 為例)
編譯完成後就可以製作出一個 ffmpeg.so 的檔案,即可設定 PHP 載入這個插件。
6.設定 php.ini
[root@localhost ~]# vi /opt/lampp/etc/php.ini
加入以下內容:
[ffmpeg]
extension=ffmpeg.so
最後重啟 Apache
7.開始轉檔
以下是一個簡單的範例:
PHP程式碼
//ffmpeg 的執行路徑 $ffmpegPath = "/usr/bin/ffmpeg"; //來源影片路徑 $srcFile = '/var/www/html/ffmpeg/upload/test_in.wmv'; //輸出影片路徑 $outFile = '/var/www/html/ffmpeg/upload/test_out.flv'; //輸出縮圖路徑 $outImg = '/var/www/html/ffmpeg/upload/test.jpg'; //取得影片資訊 $ffmpegObj = new ffmpeg_movie($srcFile); //取得音頻比特率 $srcAB = intval($ffmpegObj->getAudioBitRate()/1000); //將影片轉換為FLV檔 exec("$ffmpegPath -i $srcFile -f flv -s 436x324 -acodec libmp3lame -ar 22050 -ac 2 -ab $srcAB -y $outFile"); //從影片產生縮圖 exec("$ffmpegPath -itsoffset -1 -i $srcFile -vcodec mjpeg -vframes 1 -an -f rawvideo -s 436x324 $outImg");
2 意見:
如果要從中取出三到五張圖案有辦法設定嗎
這段語法執行5次就可以了
ffmpeg -itsoffset -[秒數] -i [來源路徑] -vcodec mjpeg -vframes 1 -an -f rawvideo -s [寬度]x[高度] [圖示檔檔名]
張貼留言