1. 程式人生 > >centos 6.5 下安裝ffmpeg,並實現自動化轉換 (親測)

centos 6.5 下安裝ffmpeg,並實現自動化轉換 (親測)

最近做專案,需要獲取視訊的縮圖,找了好幾種方式,後來還是直接通過ffmpeg 直接生成視訊縮圖的方案最靠譜,特記錄如下:

首先安裝yasm:

yasm是一個完全重寫的NASM彙編。目前,它支援x86和AMD64指令集。接受NASM和GNU彙編器(gas)語法,產出二進位制,ELF32,ELF64,COFF,Mach-O的(32和64),RDOFF2,的Win32和Win64物件的格式,並生成STABS除錯資訊的來源,DWARF2,CodeView8格式。(抄來的,我也不明白)

wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0
.tar.gz tar -zxvf yasm-1.3.0.tar.gz ./configure make make install

然後選擇安裝lame(這個是處理mp3的,我不需要,所以就沒安裝過,沒有親測)

wget https://sourceforge.net/projects/lame/files/lame/3.99/lame-3.99.5.tar.gz/download
#下載下來的檔名是down重新命名為實際的名字

mv download lame-3.99.5.tar.gz
tar -zxvf lame-3.99.5.tar.gz
cd ./lame-3.99.5
./configure
make
make install
#編譯安裝後並沒有加入系統庫中,新增如下軟連線加入系統庫
ln -s /usr/local/lib/libmp3lame.so.0.0.0 /usr/lib64/libmp3lame.so.0

然後安裝FFmpeg(超級慢,我安裝了至少10分鐘左右,make需要好久)

wget http://www.ffmpeg.org/releases/ffmpeg-4.0.tar.gz
tar -zxvf ffmpeg-4.0.tar.gz
cd ffmpeg-4.0
#編譯配置,使mp3編碼器生效 沒執行第二步的直接./configure
./configure --enable-libmp3lame
make
make install

OK ,安裝完成。

下面是將mp4 格式的檔案獲取縮圖的命令:

ffmpeg -i 8f6abdae5268fd18f3492b4bdd10ed793b81c918.mp4 -y -f image2 -t 0.001 -s 500*400 8f6abdae5268fd18f3492b4bdd10ed793b81c918.jpg

其中500*400是尺寸。(如果沒有強制解析度的話,直接刪除-s w*h 這一部分即可)

獲取第8.01秒的縮圖片:

ffmpeg -i 8f6abdae5268fd18f3492b4bdd10ed793b81c918.mp4 -y -f mjpeg -ss 8 -t 0.001 -s 500*400 8f6abdae5268fd18f3492b4bdd10ed793b81c918.jpg

完成了以上的步驟,那麼意味著我們的MP4獲取縮圖那一部分已經走通了,但是,這樣的commend-line的方式,是沒法使用在我們的檔案伺服器之中的,我們的檔案伺服器需要的是自動化與智慧化,需要在video上傳之後,自動生成jpg,我們通過inotifywait 來實現。

安裝inotify-tools:

yum install inotify-tools

通過inotifywait –help 就可以獲取所有的引數命令,這個inotify-tools 怎麼用,這裡就不詳細介紹,具體請參看:WiKi

然後通過shell指令碼就可以獲取新的檔案,然後執行ffmpeg的命令即可

#!/bin/bash
inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %f %e' -e close_write . |while read date time file event;do
if [ \${file##*.} != "jpg" ];
    then
        ffmpeg -i \${file} -y -f image2 -t 0.001 ${file}.jpg
fi
done

全文完。