1. 程式人生 > >ffmpeg編譯

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 靜態庫配置