国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

FFmpeg開發(fā)筆記(九)Linux交叉編譯Android的x265庫

這篇具有很好參考價(jià)值的文章主要介紹了FFmpeg開發(fā)筆記(九)Linux交叉編譯Android的x265庫。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

?《FFmpeg開發(fā)實(shí)戰(zhàn):從零基礎(chǔ)到短視頻上線》一書的“12.1.2 ?交叉編譯Android需要的so庫”介紹了如何在Windows環(huán)境交叉編譯Android所需FFmpeg的so庫,前文又介紹了如何在Linux環(huán)境交叉編譯Android所需FFmpeg的so庫,接下來介紹如何在Linux環(huán)境交叉編譯Android所需x265的so庫。

1、安裝cmake

執(zhí)行以下命令安裝cmake

yum install cmake git

2、下載Linux版本的android-ndk-r21e(如已下載則忽略)

登錄Linux服務(wù)器(比如華為云的歐拉系統(tǒng)),依次執(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

3、上傳x265的源碼

從下面鏈接下載x265的源碼包
https://bitbucket.org/multicoreware/x265_git/downloads/x265_3.5.tar.gz
解壓x265源碼包,修改x265_3.5/build/aarch64-linux目錄下的crosscompile.cmake,把下面兩行

set(CMAKE_C_COMPILER aarch64-linux-gnu-gcc)
set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++)

改為下面兩行

set(CMAKE_C_COMPILER aarch64-linux-android24-clang)
set(CMAKE_CXX_COMPILER aarch64-linux-android24-clang++)

4、配置x265的源碼

進(jìn)入x265_3.5下的build/aarch64-linux目錄,執(zhí)行以下命令配置x265:

export PATH=$PATH:/usr/local/src/android-ndk-r21e/toolchains/llvm/prebuilt/linux-x86_64/bin
./make-Makefiles.bash

命令行彈出的選項(xiàng)界面中,注意下列三項(xiàng)修改:
(1)把CMAKE_INSTALL_PREFIX這項(xiàng)改為/usr/local/app_x265(按向下鍵定位到該項(xiàng),再按回車鍵,即可按照vi方式編輯路徑)
(2)把ENABLE_ASSEMBLY這項(xiàng)改為OFF(按向下鍵定位到該項(xiàng),再按回車鍵,即可把ON改為OFF)
(3)把ENABLE_CLI這項(xiàng)改為OFF(按向下鍵定位到該項(xiàng),再按回車鍵,即可把ON改為OFF)
接著按c鍵開始配置,再按e鍵退出配置,然后按g鍵開始生成。

5、修改x265的編譯規(guī)則

進(jìn)入x265_3.5源碼下的build/aarch64-linux/CMakeFiles/x265-shared.dir目錄,注意修改下面三個(gè)文件:
(1)修改該目錄的link.txt,把文件中的所有“l(fā)ibx265.so.199”替換為“l(fā)ibx265.so”。同時(shí)刪除文件末尾的“ -lpthread -lrt”。
(2)同目錄的relink.txt修改說明同link.txt。
(3)修改同目錄下面的build.make,把該文件中的所有“l(fā)ibx265.so.199”替換為“l(fā)ibx265.so”,把所有的“l(fā)ibx265.so”替換為“l(fā)ibx265.so.199”。注意A和B互換名稱的時(shí)候,可以設(shè)定第三個(gè)名稱C,比如先把A替換為C,接著B替換為A,然后C替換為B。

6、編譯和安裝x265

進(jìn)入x265_3.5源碼下的build/aarch64-linux目錄,執(zhí)行以下命令編譯和安裝x265:

make
make install

7、調(diào)整x265的pc描述文件

修改/usr/local/app_x265/lib/pkgconfig下面的x265.pc,該文件的“Libs.private”選項(xiàng)里面去掉“-lrt”,也就是改成下面這行:

Libs.private: -lc++ -lm -lgcc -ldl -lgcc -ldl -ldl

8、添加PKG_CONFIG_PATH路徑

Linux的profile文件位于用戶初始目錄的.bash_profile。執(zhí)行以下命令編輯當(dāng)前用戶的profile文件:

cd
vi .bash_profile

往.bash_profile的文件末尾添加下面一行:

export PKG_CONFIG_PATH=/usr/local/app_x265/lib/pkgconfig:$PKG_CONFIG_PATH

保存并退出.bash_profile之后,執(zhí)行以下命令加載環(huán)境變量:

source .bash_profile

然后執(zhí)行下面的環(huán)境變量查看命令,確保x265的環(huán)境變量已經(jīng)成功加載。

env | grep PKG

9、重新編譯FFmpeg啟用x265

打開《FFmpeg開發(fā)實(shí)戰(zhàn):從零基礎(chǔ)到短視頻上線》隨書源碼的chapter12/config_ffmpeg_full.sh,將該文件另存為config_ffmpeg_x265.sh,并在文件內(nèi)部這行

? --enable-libx264 \

的下面增加如下一行配置

? --enable-libx265 \

接著把config_ffmpeg_x265.sh上傳到服務(wù)器的FFmpeg源碼目錄,執(zhí)行下面命令賦予可執(zhí)行權(quán)限。

chmod +x config_ffmpeg_x265.sh

然后運(yùn)行下列命令配置、編譯和安裝FFmpeg

./config_ffmpeg_x265.sh
make clean
make -j4
make install

10、把so文件導(dǎo)入App工程

(1)把FFmpeg交叉編譯好的include目錄(位于/usr/local/app_ffmpeg/include)整個(gè)復(fù)制到App工程的src/main/cpp目錄下。
(2)在src\main目錄下創(chuàng)建jniLibs目錄,并在jniLibs下面創(chuàng)建子目錄arm64-v8a,把FFmpeg交叉編譯好的8個(gè)so文件(位于/usr/local/app_ffmpeg/lib)全部復(fù)制到arm64-v8a目錄下。
(3)config_ffmpeg_x265.sh里面啟用的幾個(gè)第三方庫的so文件也一塊復(fù)制到arm64-v8a目錄下,包括x264、x265、mp3lame、freetype等。
(4)給App工程的build.gradle的android→defaultConfig→externalNativeBuild→cmake節(jié)點(diǎn)內(nèi)部增加下面配置。

? ? abiFilters "arm64-v8a"
? ? arguments '-DANDROID_STL=c++_shared' // FFmpeg集成x265時(shí)需要

如果不加,App運(yùn)行時(shí)會(huì)報(bào)錯(cuò)“java.lang.UnsatisfiedLinkError: dlopen failed: library "libc++_shared.so" not found”。
(5)在Android Studio上編譯運(yùn)行App工程,觀察App是否正常運(yùn)行。?文章來源地址http://www.zghlxwxcb.cn/news/detail-844202.html

到了這里,關(guān)于FFmpeg開發(fā)筆記(九)Linux交叉編譯Android的x265庫的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Linux 下編譯和交叉編譯FFmpeg、OpenCV(contrib )庫

    Linux 下編譯和交叉編譯FFmpeg、OpenCV(contrib )庫

    目錄 一、Linux下FFmpeg庫的編譯 1.1 yasm庫 1.2 安裝X264 1.3 安裝FFmepg 1.4 實(shí)驗(yàn) 報(bào)錯(cuò) 二、Linux 下OpenCV庫的編譯 三、環(huán)境變量設(shè)置 四、FFmpeg Linux交叉編譯 4.1 FFmpeg不依賴其他庫編譯 4.2 FFmpeg編譯依賴庫(如X264) 以上3部分驗(yàn)證過得,是正確的,第四步?jīng)]驗(yàn)證 五、OpenCV的交叉編譯 hkx@ubun

    2024年01月22日
    瀏覽(44)
  • linux NDK交叉編譯rtmp 與 ffmpeg+rtmp交叉編譯(v7a,v8a) 完成流程

    linux NDK交叉編譯rtmp 與 ffmpeg+rtmp交叉編譯(v7a,v8a) 完成流程

    最近在學(xué)RTMP,記錄一下完成的編譯流程 我是mac 電腦,但是mac上編譯一直通過不了,后來才換到服務(wù)器上編譯, 其實(shí)mac也能編譯,只是最開始踩到坑里面了… 這里記錄一下linux編譯完整流程 環(huán)境: NDK: android-ndk-r17c Ffmpeg: ffmpeg4.2.2 (高版本也可以編譯) system: mac 首先下載 rtmp https://gith

    2024年02月15日
    瀏覽(23)
  • 安裝x265

    一、編譯libx265源碼 libx265是用CMAKE編譯的,故先下cmake,我是centos系統(tǒng),命令: 進(jìn)入目錄./x265_1.9/build/linux/下,執(zhí)行腳本: 選擇好之后,輸入g退出. 此時(shí)在該目錄下生成了makefile腳本,你只要執(zhí)行以下make,庫便在當(dāng)前目錄下生成了。執(zhí)行make install安裝x265。 二、重新編譯ffmpe

    2024年02月15日
    瀏覽(21)
  • 音視頻開發(fā)之旅——音頻基礎(chǔ)概念、交叉編譯原理和實(shí)踐(LAME的交叉編譯)(Android)

    音視頻開發(fā)之旅——音頻基礎(chǔ)概念、交叉編譯原理和實(shí)踐(LAME的交叉編譯)(Android)

    本文章已授權(quán)微信公眾號(hào)郭霖(guolin_blog)轉(zhuǎn)載。 本文主要講解的是 音頻基礎(chǔ)概念 、 交叉編譯原理和實(shí)踐(LAME的交叉編譯) ,是基于 Android平臺(tái) ,示例代碼如下所示: AndroidAudioDemo 另外, iOS平臺(tái) 也有相關(guān)的文章,如下所示: 音視頻開發(fā)之旅——音頻基礎(chǔ)概念、交叉編譯

    2024年04月25日
    瀏覽(34)
  • 支持 flv+h265 的ffmpeg編譯安裝

    ffmpeg 官方分支沒有支持flv+h265,國內(nèi)金山云發(fā)了補(bǔ)丁版本,地址: 1. h264 2. h265 更多操作可參考:https://blog.csdn.net/xundh/article/details/100760114 3. 編譯ffmpeg 如果不成功,可以嘗試在最后添加: --pkg-config=\\\"pkg-config --static\\\" 4. 截屏命令示例 1. x264_bit_depth 未定義 原因:應(yīng)該是x264的x26

    2023年04月12日
    瀏覽(24)
  • Android-NDK的linux交叉編譯環(huán)境

    Android-NDK的linux交叉編譯環(huán)境

    NDK 下載 ?|? Android NDK ?|? Android Developers https://github.com/android/ndk/wiki/Unsupported-Downloads 以android-ndk-r26c下載為例,下載后將壓縮包解壓至/usr目錄下 編譯平臺(tái)變量判斷條件中增加一下android條件下CMake的變量 詳細(xì)變量設(shè)置參考 C++ 庫支持 ?|? Android NDK ?|? Android Developers 編譯出的程

    2024年04月10日
    瀏覽(23)
  • NDK交叉編譯FFmpeg安卓編譯ffmpeg

    編譯工具下載 參考這個(gè):https://blog.csdn.net/gaoliang0/article/details/81913291 或者官網(wǎng) NDK編譯工具下載: https://developer.android.google.cn/ndk/downloads?hl=zh-cn 官網(wǎng)老版本: https://github.com/android/ndk/wiki/Unsupported-Downloads 或者從我的百度網(wǎng)盤: 鏈接:https://pan.baidu.com/s/1FEtM6mVNgER_DvC2myHB5Q?pwd=28l9 提

    2024年02月08日
    瀏覽(30)
  • ARM_Linux的交叉開發(fā)以及交叉編譯器

    ARM_Linux的交叉開發(fā)以及交叉編譯器

    目錄 為什么要使用交叉開發(fā) 為什么要使用交叉編譯 交叉編譯器的安裝 交叉編譯器的使用 交叉開發(fā)是指在通用的電腦上吧程序編寫,編譯,調(diào)試好,再下載到嵌入式產(chǎn)品中去運(yùn)行,對于一些簡單的程序的話,直接在電腦上編譯調(diào)試好即可,但是對于一些需要操作硬件的開發(fā)

    2024年01月23日
    瀏覽(26)
  • 虛擬機(jī)-Linux開發(fā)板交叉編譯問題記錄

    虛擬機(jī)-Linux開發(fā)板交叉編譯問題記錄

    遇到一堆很久之前見過的問題,重新解決一次。 1、虛擬機(jī)沒法上網(wǎng) 發(fā)現(xiàn)虛擬機(jī)瀏覽器上不了網(wǎng),運(yùn)行ifconfig查看,發(fā)現(xiàn)要么沒有IP地址,要么只有IPv6的地址。最后發(fā)現(xiàn)是昨天VMware卡死了,啟動(dòng)任務(wù)管理器把相關(guān)任務(wù)全停了,dhcp服務(wù)沒啟動(dòng)。于是點(diǎn)進(jìn)計(jì)算機(jī)-管理-服務(wù),重新

    2024年04月12日
    瀏覽(28)
  • FFmpeg開發(fā)筆記(七)歐拉系統(tǒng)編譯安裝FFmpeg

    FFmpeg開發(fā)筆記(七)歐拉系統(tǒng)編譯安裝FFmpeg

    FFmpeg支持Linux、macOS、Windows、Android等操作系統(tǒng),其中Linux系列包括Ubuntu、Debian、Mint、CentOS、RHEL、Fedora等分支。FFmpeg官網(wǎng)的編譯入口地址為 https://trac.ffmpeg.org/wiki/CompilationGuide,在這里可以找到FFmpeg對各系統(tǒng)的編譯說明。更多詳細(xì)的FFmpeg開發(fā)知識(shí)參見《FFmpeg開發(fā)實(shí)戰(zhàn):從零基礎(chǔ)到

    2024年03月23日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包