FFmpeg編譯調(diào)試

一、編譯FFmpeg for Mac

1、下載FFmpeg源碼

git@github.com:FFmpeg/FFmpeg.git

2、configure編譯 for ffmpeg release/5.0

(1)./configure --prefix=/usr/local/ffmpeg --enable-static --enable-shared --enable-debug --enable-gpl --enable-libx264 --enable-nonfree --disable-optimizations
(2)編譯:make -j8
(3)安裝:sudo make install
(4)configure說明
--prefix=/usr/local/ffmpeg # 安裝位置
--enable-debug # 啟動debug調(diào)試
--enable-static # 編譯靜態(tài)庫(默認(rèn)開啟)
--enable-shared # 編譯動態(tài)庫(默認(rèn)關(guān)閉)
--enable-libvpx # VP8/VP9 視頻編碼器
--enable-libvmaf # VMAF視頻質(zhì)量評估工具
--disable-x86asm # 未知
--enable-gpl # 允許使用GPL(默認(rèn)關(guān)閉)
--enable-nonfree # 允許使用非免費(fèi)的代碼, 產(chǎn)生的庫和二進(jìn)制程序?qū)⑹遣豢稍侔l(fā)行的
--enable-libx264 # 啟用H.264編碼(默認(rèn)關(guān)閉)
--enable-libfdk-aac # 使能aac編碼(默認(rèn)關(guān)閉)
--disable-optimizations # 禁用編譯器優(yōu)化
--disable-asm # 禁用全部匯編程序優(yōu)化
--enable-librtmp # 使用librtmp拉流(默認(rèn)關(guān)閉)

3、編譯安裝成功展示

(1)在/usr/local/ffmpeg目錄下展示


截屏2022-05-19 11.39.25.png

(2)在FFmpeg源碼文件夾下會生成可執(zhí)行文件ffmpeg_g、ffprobe_g以及ffplay_g。注意:這幾個文件用于運(yùn)行和調(diào)試。


截屏2022-05-19 11.41.22.png

4、配置環(huán)境變量

vim .bash_profile
添加:export PATH=$PATH:/usr/local/ffmpeg/bin
source .bash_profile

5、編譯后沒有ffplay

(1)因?yàn)闆]有安裝SDL。
安裝:brew install sdl2
(2)更改config.h文件
在ffmpeg根目錄下打開config.h文件,搜索CONFIG_FFPLAY使其值為1,然后在搜索CONFIG_ALSA使其值為1,這是在編譯時打開ffplay和alsa的功能。
(3)更改config.mak文件
在ffmpeg目錄下的build目錄下的config.mak文件,搜索CONFIG_FFPLAY其值設(shè)為yes,搜索CONFIG_ALSA其值設(shè)為1
(4)重新編譯安裝ffmpeg

二、調(diào)試FFmpeg for Mac

1、新建Xcode工程,選擇C語言

66F81EF6-EDF5-4FF9-B6EB-6969CA893212.png

2、將FFmpeg源碼加入工程

E59CB6FA-42BB-447E-A845-3D298C9131D8.png

A12E3D79-E574-4DD8-9CB9-2104B825CADC.png

3、新建target

9E901133-8843-404A-87C5-B895FC367258.png
DAB5F4C3-8565-422E-8669-961226D730E7.png

6374208C-B9C1-4B29-84F5-058522C71D1A.png

23DA3A27-4C70-43FA-ABED-F93E824DA2E6.png

4、調(diào)試

64068513-6100-4717-B590-62CDBFA05375.png

三、修改源碼

在對FFmpeg修改源碼后,
進(jìn)行編譯:make -j8 后,源碼目錄下的ffplay、ffplay_g已生效。
再次安裝:sudo make install 后,環(huán)境變量的/usr/local/ffmpeg下ffplay生效。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容