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

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

這篇具有很好參考價值的文章主要介紹了linux NDK交叉編譯rtmp 與 ffmpeg+rtmp交叉編譯(v7a,v8a) 完成流程。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

最近在學(xué)RTMP,記錄一下完成的編譯流程

我是mac 電腦,但是mac上編譯一直通過不了,后來才換到服務(wù)器上編譯,

其實mac也能編譯,只是最開始踩到坑里面了…

這里記錄一下linux編譯完整流程

環(huán)境:

  • NDK: android-ndk-r17c
  • Ffmpeg: ffmpeg4.2.2 (高版本也可以編譯)
  • system: mac

1. 編譯rtmp

首先下載 rtmp https://github.com/yixia/librtmp 導(dǎo)入到linux上

V7a編譯

編寫腳本: rtmp_build32.sh

// 網(wǎng)上copy的命令

#!/bin/bash
// NDK路徑
NDK_ROOT=$NDK
 
CPU=arm-linux-androideabi
 
TOOLCHAIN=$NDK_ROOT/toolchains/$CPU-4.9/prebuilt/linux-x86_64
 
export XCFLAGS="-isysroot $NDK_ROOT/sysroot -isystem $NDK_ROOT/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=17"
export XLDFLAGS="--sysroot=${NDK_ROOT}/platforms/android-17/arch-arm "
export CROSS_COMPILE=$TOOLCHAIN/bin/arm-linux-androideabi-
 
make install SYS=android prefix=`pwd`/android/v7a CRYPTO= SHARED=  XDEF=-DNO_SSL

執(zhí)行命令:

sh rtmp_build32

V8a編譯

編寫腳本: rtmp_build64.sh

#!/bin/bash
 
NDK_ROOT=$NDK
CPU=aarch64-linux-android
TOOLCHAIN=$NDK_ROOT/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64
export XCFLAGS="-isysroot $NDK_ROOT/sysroot -isystem $NDK_ROOT/sysroot/usr/include/aarch64-linux-android -D__ANDROID_API__=21"
export XLDFLAGS="--sysroot=${NDK_ROOT}/platforms/android-21/arch-arm64 "
export CROSS_COMPILE=$TOOLCHAIN/bin/aarch64-linux-android-
 
make clean

make install SYS=android prefix=`pwd`/android/v8a CRYPTO= SHARED=  XDEF=-DNO_SSL

只要看到這種,就是編譯成功了

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

然后就可以看到編譯的結(jié)果:

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

此時一定要把rtmp導(dǎo)出放到as上看看是否可用, 否則ffmpeg + rtmp 一輩子也編譯不出來, 這個坑我踩了2天…

RTMP 使用

在CPP下創(chuàng)建rtmp文件,并導(dǎo)入頭文件測試

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

只要這里編譯通過,能夠運行起項目,那么就說明是編譯是ok的

ffmpeg + RTMP 交叉編譯

下載ffmpeg 4.2.2

wget https://ffmpeg.org/releases/ffmpeg-4.2.2.tar.bz2

解壓FFmpeg4.2.2

tar -xvf ffmpeg-4.2.2.tar.bz2

進入 ffmpeg4.2.2目錄,執(zhí)行 生成makefile

./configure --disable-x86asm

修改 configure:

由clong方式改為GCC方式:

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

注釋掉原本ffmpeg使用的rtmp,采用自己的rtmp

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

V7a編譯

編寫腳本: ffmpeg_with_rtmp_build32.sh

#!/bin/bash
 
 # NDK路徑
NDK_ROOT=$NDK
 
CPU=arm-linux-androideabi
 
TOOLCHAIN=$NDK_ROOT/toolchains/$CPU-4.9/prebuilt/linux-x86_64
 
ANDROID_API=17
 
 # 生成.a文件地址
PREFIX=./android/armeabi-v7a/ffmpeg_rtmp
 
 # 剛才 rtmp 生成的地址
RTMP=/Tools/librtmp-master/android/v7a
 
./configure \
--prefix=$PREFIX \
--enable-small \
--disable-programs \
--disable-avdevice \
--disable-encoders \
--disable-muxers \
--disable-filters \
--enable-librtmp \
--enable-cross-compile \
--cross-prefix=$TOOLCHAIN/bin/$CPU- \
--disable-shared \
--enable-static \
--sysroot=$NDK_ROOT/platforms/android-$ANDROID_API/arch-arm \
--extra-cflags="-isysroot $NDK_ROOT/sysroot -isystem $NDK_ROOT/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=$ANDROID_API -U_FILE_OFFSET_BITS -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Wa,--noexecstack -Wformat -Werror=format-security  -O0 -fPIC -I$RTMP/include" \
--extra-ldflags="-L$RTMP/lib" \
--extra-libs="-lrtmp" \
--arch=arm \
--target-os=android
 
make clean
 
make install

執(zhí)行腳本:

 sh ffmpeg_with_rtmp_build32.sh

編譯時間 可能需要將近5分鐘

V8a編譯

編譯腳本: ffmpeg_with_rtmp_build64.sh

#!/bin/bash
PREFIX=./android/arm64-v8a/ffmpeg_rtmp

NDK_ROOT=$NDK

CPU=aarch64-linux-android

TOOLCHAINS=$NDK_ROOT/toolchains/$CPU-4.9/prebuilt/linux-x86_64

ANDROID_API=21

RTMP=/Tools/librtmp-master/android/v8a

./configure \
--prefix=$PREFIX \
--enable-small \
--disable-avdevice \
--disable-filters \
--disable-encoders \
--disable-muxers \
--disable-yasm \
--disable-programs \
--enable-librtmp \
--enable-cross-compile \
--cross-prefix=$TOOLCHAINS/bin/$CPU- \
--disable-shared \
--enable-static \
--sysroot=$NDK_ROOT/platforms/android-$ANDROID_API/arch-arm64 \
--extra-cflags="-isysroot $NDK_ROOT/sysroot -isystem $NDK_ROOT/sysroot/usr/include/$CPU -D__ANDROID_API__=$ANDROID_API -U_FILE_OFFSET_BITS  -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security  -O0 -fPIC -I$RTMP/include" \
--extra-ldflags="-L$RTMP/lib" \
--extra-libs="-lrtmp" \
--arch=arm64 \
--target-os=android
 
make clean
make install

執(zhí)行腳本:

 sh ffmpeg_with_rtmp_build64.sh

最后生成文件在當(dāng)前目錄 : /android/arm64-v8a/ffmpeg_rtmp 下生成對應(yīng)的.a文件文章來源地址http://www.zghlxwxcb.cn/news/detail-613184.html

到了這里,關(guān)于linux NDK交叉編譯rtmp 與 ffmpeg+rtmp交叉編譯(v7a,v8a) 完成流程的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • autox.js的三個版本universal、armeabi-v7a、arm64-v8a的區(qū)別

    universal : 通用版(不在乎安裝包大小/懶得選就用這個版本,包含以下2種CPU架構(gòu)so) armeabi-v7a : 32位ARM設(shè)備(備用機首選) arm64-v8a : 64位ARM設(shè)備(主流旗艦機) ABI 在Android 系統(tǒng)上,每個不同的CPU支持不同的指令集,CPU與指令集的組合都有對應(yīng)的二進制接口,即ABI armeabi 是第5、

    2024年02月05日
    瀏覽(26)
  • android ndk clang交叉編譯ffmpeg動態(tài)庫踩坑

    android ndk clang交叉編譯ffmpeg動態(tài)庫踩坑

    1.ffmpeg默認(rèn)使用gcc編譯,在android上無法使用,否則各種報錯,所以要用ndk的clang編譯 2.下載ffmpeg源碼 修改configure文件,增加命令 cross_prefix_clang 修改以下命令 修改后 3.新建腳本文件,ffmpeg目錄下執(zhí)行腳本文件即可。 編譯32位,則ARCH改為arm,CPU改為armv7-a,TARGET改為armv7a-linux-

    2024年02月13日
    瀏覽(27)
  • Android ffmpeg入門(1)—— 使用NDK交叉編譯ffmpeg集成到Android項目

    Android ffmpeg入門(1)—— 使用NDK交叉編譯ffmpeg集成到Android項目

    最近在學(xué)習(xí)android NDK開發(fā)相關(guān)內(nèi)容,借ffmpeg練練手。ffmpeg是做音視頻方面功能的基礎(chǔ),后面會隨著個人的學(xué)習(xí)更新一系列ffmpeg博客,防止自己遺忘。 這個系列博客主要目的是基于ffmpeg通過NDK開發(fā)的方式完成一個基本的視頻播放器。 本篇博客主要實現(xiàn)了 ffmpeg編譯 以及 引入 a

    2023年04月08日
    瀏覽(24)
  • 手機cpu架構(gòu)查看及armeabi、armeabi-v7a、arm64-v8a及x86等說明

    手機cpu架構(gòu)查看及armeabi、armeabi-v7a、arm64-v8a及x86等說明

    win+R,輸入cmd 填下指令如下 adb shell getprop ro.product.cpu.abi 1.armeabiv-v7a: 第7代及以上的 ARM 處理器。2011年15月以后的生產(chǎn)的大部分Android設(shè)備都使用它. 2.arm64-v8a: 第8代、64位ARM處理器,很少設(shè)備,三星 Galaxy S6是其中之一。 3.armeabi: 第5代、第6代的ARM處理器,早期的手機用的比較多。

    2024年02月07日
    瀏覽(33)
  • Android:Device supports x86, but APK only supports armeabi, armeabi-v7a,arm64-v8a on device

    Android:Device supports x86, but APK only supports armeabi, armeabi-v7a,arm64-v8a on device

    一、前言: 在我運行app的時候出現(xiàn)如下錯誤 二、解決方案: 我也在網(wǎng)上查了很多,經(jīng)過自己的嘗試驗證過的結(jié)論分享給大家。 報錯信息大概意思是:即設(shè)備支持x86,但APK僅支持armeabi, armeabi-v7a,arm64-v8a 原因 模擬機的設(shè)備是 x86,但是運行的這個程序的 apk 卻只支持 armeabi-v7a

    2024年02月04日
    瀏覽(26)
  • 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目錄下 編譯平臺變量判斷條件中增加一下android條件下CMake的變量 詳細(xì)變量設(shè)置參考 C++ 庫支持 ?|? Android NDK ?|? Android Developers 編譯出的程

    2024年04月10日
    瀏覽(23)
  • FFmpeg開發(fā)筆記(八)Linux交叉編譯Android的FFmpeg庫

    ? 《FFmpeg開發(fā)實戰(zhàn):從零基礎(chǔ)到短視頻上線》一書的“12.1.2 ?交叉編譯Android需要的so庫”介紹了如何在Windows環(huán)境交叉編譯Android所需FFmpeg的so庫,接下來介紹如何在Linux環(huán)境交叉編譯Android所需FFmpeg的so庫。 登錄Linux服務(wù)器(比如華為云的歐拉系統(tǒng)),依次執(zhí)行下面的命令。 重

    2024年03月24日
    瀏覽(19)
  • FFmpeg開發(fā)筆記(十六)Linux交叉編譯Android的OpenSSL庫

    ? 《FFmpeg開發(fā)實戰(zhàn):從零基礎(chǔ)到短視頻上線》一書的例程主要測試本地的音視頻文件,當(dāng)然為了安全起見,很多網(wǎng)絡(luò)視頻都采用了https地址。FFmpeg若要訪問https視頻,就必須集成第三方的openssl庫,但編譯FFmpeg時卻默認(rèn)關(guān)閉了openssl。為了讓App能夠播放采用https的在線視頻,需要

    2024年04月22日
    瀏覽(26)
  • Linux 下編譯和交叉編譯FFmpeg、OpenCV(contrib )庫

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

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

    2024年01月22日
    瀏覽(44)
  • FFmpeg開發(fā)筆記(九)Linux交叉編譯Android的x265庫

    ? 《FFmpeg開發(fā)實戰(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庫。 執(zhí)行以下命

    2024年04月08日
    瀏覽(21)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包