可以通過兩種方法安裝。
一,使用brew來安裝
//下載安裝ffmpeg
$ brew install ffmpeg
//刪除ffmpeg
$ brew remove ffmpeg
二,直接通過源碼來安裝
從官方下載源碼
下載完成后,到源碼路徑下,執行如下命令,
$ ./configure --prefix=/usr/local/ffmpeg --enable-debug=3 --disable-static --enable-shared --enable-ffplay
其中 --prefix=
后面跟的是ffmpeg安裝路徑,你也可以自己指定位置。
--enable-debug=3
是打開debug模式,
--disable-static --enable-shared
是指定生成動態庫。
--enable-ffplay
添加ffplay工具,手動編譯新版本默認沒帶ffplay。所以編譯的時候開啟一下。
執行完后如果出現如下提示
要么按它說的更新或者安裝masm/yasm后,再執行剛才的指令
$ brew install yasm
要么使用 --disable-x86asm
,也就是在剛剛的指令后面拼接上這條指令
$ ./configure --prefix=/usr/local/ffmpeg --enable-debug=3 --disable-static --enable-shared --enable-ffplay --disable-x86asm
然后是執行
$ make -j 4//4相當于指定4核去工作
$ make install
當執行了make install
指令后,可能會出現如下錯誤,那是因為權限問題,執行sudo make install
輸入電腦密碼就可以了。這里需要root權限才行。
三,配置環境變量PATH
- 使用brew安裝的軟件都是在/usr/local/Cellar目錄下。
- 刷新配置
source ~/.bash_profile
-
bash_profile
文件是在user目錄下面
1,可以直接命令行編輯
//1,打開bash_profile
$ vim ~/.bash_profile
//2,輸入i,進入編輯模式,配置ffmpeg的環境變量
$ export PATH=/usr/local/ffmpeg/bin:$PATH
//3,點擊esc,退出編輯模式,輸入:wq,保存退出。
$ :wq
//4,執行source,刷新配置
$ source ~/.bash_profile
2,或者可以手動打開bash_profile
文件編輯
//1,如果沒有bash_profile文件創建,
$ touch ~/.bash_profile
//2,打開bash_profile文件
$ open ~/.bash_profile
//3,在文件中追加路徑,`/usr/local/Cellar/ffmpeg/4.3_2`為ffmpeg的路徑。
$ export PATH=/usr/local/Cellar/ffmpeg/4.3_2/bin:$PATH
//4,然后保存并刷新
$ source ~/.bash_profile
如果可以執行ffmpeg -version
了說明可以了。
四,關于ffplay
1,安裝SDL
最新版本編譯默認ffplay是關閉的。如果是直接在./configure
中加--enable-ffplay
,可能會提示SDL的缺失。
那么要先安裝SDL。
4.0之后需要的SDL2.0版本,下載地址。
下載完后直接解壓或者用命令tar -xvf
解壓。
進入到解壓后的文件夾目錄下執行命令。
$ ./configure
$ make -j8
$ sudo make install
安裝完畢之后,再次執行之前編譯./confiure
的命令,并且后面拼接上--enable-ffplay
。也就是如下的樣子
$ ./configure --prefix=/usr/local/ffmpeg --enable-debug=3 --disable-static --enable-shared --enable-ffplay
$ make -j8
$ sudo make install
依次執行完畢后,沒問題的話就算是編譯完成了。
2,編輯的時候遇到的其他問題:
配置環境變量的時候編輯了.bash_profile 文件,然后去執行source .bash_profile
刷新配置的時候報錯如下:
$ .bash_profile:export:30: not valid in this context: https://storage.flutter-io.cn
原因是上一次編輯配置其他環境的時候FLUTTER_STORAGE_BASE_URL=
后面多了個空格,去掉就可以了。
3,直接在命令行輸入ffmpeg指令報錯segmentation fault
,是因為環境變量沒配置成功。重新配置一下就可以了。
segmentation fault ffmpeg -version