一、FFmpeg簡介
FFmpeg是一個自由軟體,可以執行音訊和視訊多種格式的錄影、轉換、流功能,包含了libavcodec ─這是一個用於多個專案中音訊和視訊的解碼器庫,以及libavformat——一個音訊與視訊格式轉換庫
"FFmpeg"這個單詞中的"FF"指的是"Fast Forward"。有些新手寫信給"FFmpeg"的專案負責人,詢問FF是不是代表“Fast Free”或者“Fast Fourier”等意思,"FFmpeg"的專案負責人回信說“Just for the record, the original meaning of "FF" in FFmpeg is "Fast Forward"...”
FFmpeg在Linux平臺下開發,但它同樣也可以在其它作業系統環境中編譯執行,包括Windows、Mac OS X等。這個專案最初是由Fabrice Bellard發起的,而現在是由Michael Niedermayer在進行維護。許多FFmpeg的開發者同時也是MPlayer專案的成員,FFmpeg在MPlayer專案中是被設計為伺服器版本進行開發。
2011年3月13日,FFmpeg部分開發人士決定另組libav,網址http://libav.org,同時制定了一套關於專案繼續發展和維護的規則。
組成元件
此計劃由幾個元件組成:
- ffmpeg是一個命令列工具,用來對視訊檔案轉換格式,也支援對電視卡實時編碼
- ffserver是一個HTTP多媒體實時廣播流伺服器,支援時光平移
- ffplay是一個簡單的播放器,基於SDL與FFmpeg庫
- libavcodec包含了全部FFmpeg音訊/視訊編解碼庫
- libavformat包含demuxers和muxer庫
- libavutil包含一些工具庫
- libpostproc對於視訊做前處理的庫
- libswscale對於影象作縮放的庫
引數
FFmpeg可使用眾多引數,引數內容會根據ffmpeg版本而有差異,使用前建議先參考引數及編解碼器的敘述。此外,引數明細可用ffmpeg -h
顯示;編解碼器名稱等明細可用ffmpeg -formats
顯示。
下列為較常使用的引數。
主要引數
- -i設定輸入檔名。
- -f設定輸出格式。
- -y若輸出檔案已存在時則覆蓋檔案。
- -fs超過指定的檔案大小時則退出轉換。
- -ss從指定時間開始轉換。
- -title設定標題。
- -timestamp設定時間戳。
- -vsync增減Frame使影音同步。
影象引數
- -b設定影象流量,預設為200Kbit/秒。(單位請引用下方注意事項)
- -r設定幀率值,預設為25。
- -s設定畫面的寬與高。
- -aspect設定畫面的比例。
- -vn不處理影象,於僅針對聲音做處理時使用。
- -vcodec設定影象影象編解碼器,未設定時則使用與輸入檔案相同之編解碼器。
聲音引數
- -ab設定每Channel(最近的SVN版為所有Channel的總合)的流量。(單位請引用下方注意事項)
- -ar設定取樣率。
- -ac設定聲音的Channel數。
- -acodec設定聲音編解碼器,未設定時與影象相同,使用與輸入檔案相同之編解碼器。
- -an不處理聲音,於僅針對影象做處理時使用。
- -vol設定音量大小,256為標準音量。(要設定成兩倍音量時則輸入512,依此類推。)
注意事項
- 以-b及ab首選項流量時,根據使用的ffmpeg版本,須注意單位會有kbits/sec與bits/sec的不同。(可用ffmpeg -h顯示說明來確認單位。)
- 例如,單位為bits/sec的情況時,欲指定流量64kbps時需輸入‘ -ab 64k’;單位為kbits/sec的情況時則需輸入‘ -ab 64’。
- 以-acodec及-vcodec所指定的編解碼器名稱,會根據使用的ffmpeg版本而有所不同。例如使用AAC編解碼器時,會有輸入aac與libfaac的情況。此外,編解碼器有分為僅供解碼時使用與僅供編碼時使用,因此一定要利用
ffmpeg -formats
確認輸入的編解碼器是否能運作。
二、CentOs7.5下安裝FFmpeg
1.官網下載linux版本的ffmpeg原始碼包 ffmpeg-4.1.tar.xz
(此步驟也可以使用git clone下載原始碼包,本質上是一樣的 )
2.使用xftp將原始碼包ffmpeg-4.1.tar.xz上傳至linux主機(直接使用linux命令下載到linux也可以)
cd /usr/local/ mkdir ffmpeg #在usr/local目錄下建立ffmpeg目錄
3.解壓原始碼包
tar xvJf ffmpeg-4.1.tar.xz
4.切換到ffmpeg-4.1目錄、安裝gcc編譯器
cd ffmpeg-4.1
yum install gcc #安裝gcc編譯器
yum install yasm #安裝yasm編譯器
5.輸入如下命令/usr/local/ffmpeg為自己指定的安裝目錄
./configure --enable-shared --prefix=/usr/local/ffmpeg
6.執行make(非常非常久.......)
make
7.執行make install(安裝)
8.修改檔案/etc/ld.so.conf
vim /etc/ld.so.conf
輸入以下內容
include ld.so.conf.d/*.conf /usr/local/ffmpeg/lib/
輸入ldconfig使修改生效。
9.檢視版本
/usr/local/ffmpeg/ffmpeg-4.1/ffmpeg -version
10.配置環境變數
# vim /etc/profile
在最後PATH新增環境變數:
#set ffmpeg environment PATH=$PATH:/usr/local/ffmpeg/bin export PATH
source /etc/profile #使配置生效
11.檢視環境變數是否配置成功
ffmpeg -version
至此安裝成功
參考文章: