1、下載Linux版本的android-ndk-r21e
登錄Linux服務器(比如華為云的歐拉系統),依次執(zhí)行下面的命令。
cd /usr/local/src
curl -O https://dl.google.com/android/repository/android-ndk-r21e-linux-x86_64.zip
unzip android-ndk-r21e-linux-x86_64.zip
2、上傳FFmpeg相關庫的源碼
重新解壓FFmpeg相關庫的源碼,包括FFmpeg、x264、freetype、lame等,并修改FFmpeg相關庫的sh文件(包括config_x264.sh、config_freetype.sh、config_lame.sh、config_ffmpeg_full.sh,這幾個sh文件見《FFmpeg開發(fā)實戰(zhàn):從零基礎到短視頻上線》隨書源碼的chapter12目錄)。修改內容如下:
(1)把幾個sh文件里的下面這行
SYSTEM=windows-x86_64
改為下面這行,也就是把“windows”替換為“l(fā)inux”
SYSTEM=linux-x86_64
(2)去掉幾個sh文件里的回車符
使用文本編輯軟件UltraEdit可以去掉回車符,去除方式有兩種,一種是把“^p”替換為“^n”;另一種是依次選擇菜單:文件→轉換→DOS轉UNIX,因為UNIX文件格式不用回車符。
另外,記得給幾個sh文件賦予可執(zhí)行權限,也就是執(zhí)行下面命令:
chmod +x config_*.sh
3、編譯x264庫的源碼
在編譯x264源碼之前,要先修改x264的configure文件。與在Windows環(huán)境交叉編譯相比,Linux系統在編譯x264前只要修改configure,不用改Makefile。
打開x264-master目錄下的configure文件,把下面這行(一共有一模一樣的兩行,兩行都要改,別漏了)
? ? echo "SONAME=libx264.so.$API" >> config.mak
改為下面這行:
? ? echo "SONAME=libx264.so" >> config.mak
保存并退出configure文件,再依次執(zhí)行下面的編譯命令:
./config_x264.sh
make -j4
make install
4、編譯其他第三方庫的源碼
FFmpeg用到的其他第三方庫包括freetype、lame等,這幾個庫的編譯命令如下(注意把xxx換成對應的庫名):
./config_xxx.sh
make -j4
make install
5、配置環(huán)境變量PKG_CONFIG_PATH
Windows的profile文件位于msys安裝目錄下面的/etc/profile,而Linux的profile文件位于用戶初始目錄的.bash_profile。往.bash_profile的文件末尾添加下面兩行:
export PKG_CONFIG_PATH=/usr/local/app_x264/lib/pkgconfig:$PKG_CONFIG_PATH
export PKG_CONFIG_PATH=/usr/local/app_freetype/lib/pkgconfig:$PKG_CONFIG_PATH
保存并退出.bash_profile之后,執(zhí)行以下命令加載環(huán)境變量:
source .bash_profile
6、編譯FFmpeg庫的源碼
進入FFmpeg的源碼目錄,依次執(zhí)行下面的配置、編譯和安裝命令:文章來源:http://www.zghlxwxcb.cn/news/detail-842947.html
./config_ffmpeg_full.sh
make -j4
make install
編譯完成后,即可在/usr/local/app_xxx/bin(xxx為每個庫的庫名)目錄下找到生成的so文件,把這些so文件復制到App工程的src\main\jniLibs\arm64-v8a目錄下,此后App工程的配置、編譯和運行說明同《FFmpeg開發(fā)實戰(zhàn):從零基礎到短視頻上線》的“12.1.3 ?App工程調用FFmpeg的so庫”。文章來源地址http://www.zghlxwxcb.cn/news/detail-842947.html
?到了這里,關于FFmpeg開發(fā)筆記(八)Linux交叉編譯Android的FFmpeg庫的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!