在 Linux 上安裝 FFmpeg
FFmpeg 是一套處理多媒體文件的軟件庫。憑借這些強大的庫,FFmpeg 能夠轉換格式、推流以及處理音頻和視頻文件。許多 Linux 的前端應用都使用 FFmpeg 作為后端支持,所以這些應用對 FFmpeg 的依賴度非常高。舉個例子,錄屏軟件可能會用到 FFmpeg 將錄屏轉換為 gif 動圖。
VLC 多媒體播放器、YouTube、Blender、Kodi、Shotcut 和 Handbrake 等流行的應用與服務都在使用 FFmpeg,這僅僅一小部分。
趣事:NASA 火星 2020 計劃的探測器“毅力”號在將圖像和視頻發(fā)送到地球之前,會先使用 FFmpeg 對其進行處理。
關于 FFmpeg
FFmpeg 本身是一款非常強大的命令行實用程序,在 Linux 發(fā)行版、Windows 以及 macOS 等系統(tǒng)上均可運行,支持多種架構。FFmpeg 是用 C 語言和匯編語言編寫的,性能強大,提供跨平臺支持。
核心
FFmpeg 的核心是命令行實用程序,既可在命令行上使用,也可以經由任何程序語言調用。比如,你可以在 Shell 程序或 python 腳本中使用 FFmpeg。
- ?
?ffmpeg?
?:用于轉換音視頻格式,包括來自視頻直播的信號源。 - ?
?ffplay?
?:FFmpeg 配套使用的媒體播放器 - ?
?ffprobe?
?:顯示媒體文件信息的命令行工具,可將信息輸出為 csv、xml、json 等格式。
FFmpeg 安裝
在 Ubuntu 等 Linux 發(fā)行版上, FFmpeg 的安裝比較簡單。打開終端,運行以下命令安裝即可。
Ubuntu 及與其相似的發(fā)行版
sudo apt install FFmpeg
Fedora
在 Fedora Linux 上安裝 FFmpeg,你需要添加 ??RPM Fusion 倉庫??,因為 Fedora 官方倉庫沒有 FFmpeg 軟件包。
sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
sudo dnf install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-
sudo dnf install ffmpeg
Arch Linux
pacman -S ffmpeg
安裝完成后,可輸入以下命令查看安裝是否成功。
ffmpeg --version
FFmpeg installed in Ubuntu Linux
示例:FFmpeg 的基本操作
首先,我們先來看看 FFmpeg 語法的一個簡單例子。如下,該語法可以將 mp4 文件轉換為 mkv 文件。
1、視頻文件格式轉換
ffmpeg -i big_buck_bunny.mp4 big_buck_bunny.mkv
當然,這種寫法最為簡單易懂,但它并不完整,因為沒有輸入 比特率bit rate、分辨率resolution 以及其他的視頻文件屬性。
2、音頻文件格式轉換
其次,輸入與上面相似的命令可以轉換音頻文件的格式。
ffmpeg -i sunny_day.ogg sunny_day.mp3
3、使用音視頻編解碼器執(zhí)行格式轉換
最后,在下面的例子中,我們可以使用特定的 編解碼器codec 來轉換視頻格式。參數 ??-c?
?? 搭配 ??a?
?? 或者 ??v?
??,可以分別定義音頻和視頻文件。以下轉換命令使用 ??libvpx?
?? 視頻編解碼器和 ??libvorbis?
? 音頻編解碼器。
ffmpeg -i big_buck_bunny.mp4 -c:v libvpx -c:a libvorbis big_buck_bunny.webm
如何確定自己系統(tǒng)中有哪些編碼器和解碼器?
顯示所有編解碼器
輸入以下命令,打印所有編解碼器。
ffmpeg -codecs
該命令可以打印出所有可用的編解碼器,并顯示每個編解碼器對應的功能信息,比如是否支持解碼或編碼。此外,如以下輸出結果所示,打印出來的信息還會按照首字母順序標注出每個編碼器和解碼器的位置。
D..... = 支持解碼
.E.... = 支持編碼
..V... = 視頻編解碼器
..A... = 音頻編解碼器
..S... = 字幕編解碼器
...I.. = 僅限幀內編解碼器
....L. = 有損壓縮
.....S = 無損壓縮
FFmpeg Codec list
顯示所有編碼器
輸入下列命令,打印出所有編碼器
ffmpeg -encoders
顯示所有解碼器
同樣,輸入下列命令,打印出所有解碼器。
ffmpeg -decoders
更多信息
輸入參數 ??-h?
?,獲取更多關于編碼器或解碼器的信息。
ffmpeg -h decoder=mp3
總結
我希望這篇文章可以幫助你了解 FFmpeg 的基本知識及基本命令。若要了解更多信息,可前往 FFmpeg 官方網站瀏覽 ??幫助文檔??。