1、FFmpeg是什么?
引用
百度百科,FFmpeg是一套可以用來
記錄、轉換數字音頻、視頻,並能將其轉化為流的開源計算機程序。采用LGPL或GPL許可證。它提供了錄制、轉換以及流化音視頻的完整解決方案。它包含了非常先進的音頻/視頻編解碼庫libavcodec,為了保證高可移植性和編解碼質量,libavcodec里很多code都是從頭開發的。
FFmpeg在Linux平台下開發,但它同樣也可以在其它操作系統環境中編譯運行,包括Windows、Mac OS X等。這個項目最早由Fabrice Bellard發起,2004年至2015年間由Michael Niedermayer主要負責維護。許多FFmpeg的開發人員都來自MPlayer項目,而且當前FFmpeg也是放在MPlayer項目組的服務器上。項目的名稱來自MPEG
視頻編碼標准,前面的"FF"代表"Fast Forward"。
2、FFmpeg組成
構成FFmpeg主要有三個部分
- 第一部分是四個作用不同的工具軟件,分別是:ffmpeg.exe,ffplay.exe,ffserver.exe和ffprobe.exe。
- ffmpeg.exe:音視頻轉碼、轉換器
- ffplay.exe:簡單的音視頻播放器
- ffserver.exe:流媒體服務器
- ffprobe.exe:簡單的多媒體碼流分析器
- 第二部分是可以供開發者使用的SDK,為各個不同平台編譯完成的庫。如果說上面的四個工具軟件都是完整成品形式的玩具,那么這些庫就相當於樂高積木一樣,我們可以根據自己的需求使用這些庫開發自己的應用程序。這些庫有:
- libavcodec:包含音視頻編碼器和解碼器
- libavutil:包含多媒體應用常用的簡化編程的工具,如隨機數生成器、數據結構、數學函數等功能
- libavformat:包含多種多媒體容器格式的封裝、解封裝工具
- libavfilter:包含多媒體處理常用的濾鏡功能
- libavdevice:用於音視頻數據采集和渲染等功能的設備相關
- libswscale:用於圖像縮放和色彩空間和像素格式轉換功能
- libswresample:用於音頻重采樣和格式轉換等功能
- 第三部分是整個工程的源代碼,無論是編譯出來的可執行程序還是SDK,都是由這些源代碼編譯出來的。FFmpeg的源代碼由C語言實現,主要在Linux平台上進行開發。FFmpeg不是一個孤立的工程,它還存在多個依賴的第三方工程來增強它自身的功能。在當前這一系列的博文/視頻中,我們暫時不會涉及太多源代碼相關的內容,主要以FFmpeg的工具和SDK的調用為主。到下一系列我們將專門研究如何編譯源代碼並根據源代碼來進行二次開發。
3、下載ffmpeg安裝包
官方文檔 下載
解壓文件,進入bin目錄,能看到ffmpeg.exe、ffplay.exe、ffprobe.exe三個文件。
4、設置環境變量
點擊“系統屬性->高級系統設置->環境變量->系統變量”,選擇“Path”條目,點擊“編輯->新建”,把解壓的bin文件夾路徑復制粘貼進去,然后點擊確定即可。
打開cmd命令行窗口,輸入命令“ffmpeg –version”。窗口返回ffmpeg的版本信息,說明安裝成功。