ffmpeg編譯
ffmpeg編譯很早之前就做過,但是就是太早了,今天要做一些新的嘗試,就是禁止一些選項,但是呢?居然編譯不過,因此從頭再來一次
1、下載原始碼 http://ffmpeg.org/
2、檢視幫助資訊 我們都有個慣性思維,文件時doc這樣的問題件,但是ffmpeg的文件不是,是什麼的呢?
是./configure --help|more 這個
3、./configure --list-decoders 這個可以看到的是 支援的解碼
sudo cp -r ffmpeg_build.sh ffmpeg/ffmpeg_build.sh 這個是mac 系統下的拷貝檔案的命令
在編譯成Android 平臺能識別的 so庫 參考文章
https://blog.csdn.net/qq_16265959/article/details/78329555?locationNum=4&fps=1
有一步是必須要的
./configure
不然會報 ffbuild/config.mak: No such file or directory
Makefile:40: /tools/Makefile: No such file or directory
/Users/fujiangren/Library/Android/sdkup/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/arm-linux-androideabi-gcc is unable to create an executable file.
C compiler test failed.
雖然報這個錯的原因很多 但是要指定恩編譯的gcc一定要對 系統可能會自帶一個gcc
我的環境 指定的gcc是 TOOLCHAIN=/Users/fujiangren/Desktop/ijkplayer/lant/android-android1/android-ndk-r10e/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64 注意 這個路徑可能會隨著版本的不同而改動 PLATFORM_VERSION=android-9 這個設定了9 ,當時心血來潮 順手改了10 ndk版本沒有對應的這個版本的,真是踩坑不斷,注意,我當時是怎麼想的呢?就是說版本太低了,看不順眼 改了下
libavformat/udp.c 的錯誤,後來是把ffmpeg講到了3.4.5才編譯通過,以前下載都是通過clone 方式下載的,後來發現這個是版本的管理的,也就是那些大神還真在開發的,哈哈,還是去下載release版本的,More releases 這裡 有每個版本的release版本,其實下載無需選擇哪個平臺對麼,因為關鍵是編譯使用的是麼平臺對麼 還是報錯,報什麼呢?./libavutil/timer.h:38:31: fatal error: linux/perf_event.h: No such file or directory 後來把target-os = android 才編譯通過
./configure --enable-shared --disable-yasm --prefix=/Users/fujiangren/Desktop/ffmpeg/imooc/ffmpeg_4_make/ffmpeg1/libffmpeg 靜態庫配置