日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

【Android FFMPEG 开发】FFMPEG 交叉编译配置 ( 下载 | 配置脚本 | 输出路径 | 函数库配置 | 程序配置 | 组件配置 | 编码解码配置 | 交叉编译配置 | 最终脚本 )

發布時間:2025/6/17 Android 37 豆豆

文章目錄

  • 一、FFMPEG 源碼下載 解壓
  • 二、交叉編譯工具
  • 三、configure 腳本及幫助命令
  • 四、配置 configure 腳本
  • 五、輸出目錄配置
  • 六、函數庫配置
  • 七、程序配置選項
  • 八、組件配置選項
  • 九、編碼配置
  • 十、交叉編譯配置 ( 重點 )
  • 十一、交叉編譯配置 Shell 腳本 ( 重點 )



一、FFMPEG 源碼下載 解壓



1 . FFMPEG 下載 :


① FFMPEG 源碼下載地址 : http://ffmpeg.org/download.html#releases

② 本博客使用的源碼下載地址 : https://ffmpeg.org/releases/ffmpeg-4.0.2.tar.bz2
( 也可以直接從博客資源中下載 )


2 . 解壓源碼 : 使用 tar xvf ffmpeg-4.0.2.tar.bz2 命令 , 解壓源碼 ;

root@octopus:~# cd FFMPEG/ root@octopus:~/FFMPEG# ls ffmpeg-4.0.2.tar.bz2 root@octopus:~/FFMPEG# tar xvf ffmpeg-4.0.2.tar.bz2 ffmpeg-4.0.2/ ...

解壓后的內容 :

root@octopus:~/FFMPEG/ffmpeg-4.0.2# ls Changelog COPYING.LGPLv3 libavdevice libswscale RELEASE_NOTES compat CREDITS libavfilter LICENSE.md tests configure doc libavformat MAINTAINERS tools CONTRIBUTING.md ffbuild libavresample Makefile VERSION COPYING.GPLv2 fftools libavutil presets COPYING.GPLv3 INSTALL.md libpostproc README.md COPYING.LGPLv2.1 libavcodec libswresample RELEASE

二、交叉編譯工具



1 . NDK 下載 : 使用 NDK 17 版本 ;


① NDK 地址列表 : https://developer.android.google.cn/ndk/downloads/older_releases.html

② 直接下載地址 : https://dl.google.com/android/repository/android-ndk-r17c-linux-x86_64.zip?hl=zh_cn


2 . Ubuntu Linux 操作系統下載 : 使用 18.04.4 版本的系統 ;

Ubuntu 下載地址 : http://releases.ubuntu.com



三、configure 腳本及幫助命令



1 . Shell 腳本 : 由第一行 Shell 解釋器聲明 #!/bin/sh 代碼 , 可以看出 configure 是 Shell 腳本 ;


2 . configure 腳本作用 : 該腳本用于生成 make 工具的構建腳本 Makefile 文件 ;


3 . configure 腳本執行 : 該腳本需要進行配置才能執行 , 如果直接執行 , 肯定會出錯 ;


4 . configure 幫助命令 :


① 腳本復雜 : C/C++ 開源庫都會提供一個 configure 腳本 , 該腳本的配置非常復雜 , 但一般都提供一個幫助選項 ;

② 幫助信息 : 執行 ./configure --help 命令 , 即可查看幫助信息 , 建議先將幫助信息熟悉一遍再進行編譯 ;

博客資源中有一份完整的 configure 幫助信息內容 , 我對使用到的文檔進行了注釋 , 僅做參考



四、配置 configure 腳本



1 . FFMPEG 編譯流程 :


① 配置 : 使用 configure 腳本進行相關參數配置 ; ( 下面會詳細講解 需要配置的 5 個類型的參數 )

② 編譯 : 配置完畢后 , 直接執行 make 命令 , 開始進行編譯 ;


2 . 配置的內容 :


① 輸出配置 : 配置生成的相關文件輸出路徑 ;

② 函數庫配置 : 配置靜態庫 , 動態庫 , 函數庫優化等相關參數 ;

③ 命令行程序配置 : 配置是否生成命令行程序 , FFMPEG 自帶 3 個命令行程序 ;

④ 編譯組件配置 : FFMPEG 有 22 個可選的獨立組件配置 , 可以選擇性編譯或不編譯某些組件 ;

⑤ 編碼解碼配置 : 配置 FFMPEG 編解碼相關功能 ;

⑥ 交叉編譯配置 ( 重點 ) : 配置交叉編譯工具鏈 , 頭文件與庫文件查找路徑參數 , GCC 編譯器參數 , CPU 指令集架構等參數 ;


下面介紹的所有配置命令都是在 FFMPEG 源碼根目錄層級中執行 ;



五、輸出目錄配置



1 . 生成文件的輸出目錄 : FFMPEG 編譯后需要生成一系列的函數庫 , 及頭文件等 ; 需要為這些生成的文件指定輸出目錄 ;


2 . 指定生成的文件輸出位置 :


① 定義變量 : 使用 PREFIX=./android/armeabi-v7a 命令 , 定義輸出目錄根目錄變量 ;

② 路徑配置 : 使用 ./configure --prefix=PREFIX 命令 , 指定輸出文件的根目錄為 ./android/armeabi-v7a ;

# 將輸出目錄存儲到 PREFIX 變量中 PREFIX=./android/armeabi-v7a# 執行 configure 腳本配置輸出文件的根目錄 ./configure --prefix=$PREFIX

3 . 自動生成其它目錄 : 指定了 --prefix 選項 , 那么其它生成 bin 可執行文件目錄 , lib 函數庫目錄 等類型的文件輸出目錄會在 --prefix 配置的目錄基礎上生成 ;


① 根目錄 : 指定了 --prefix 目錄為 ./android/armeabi-v7a ;

② 可執行文件目錄 : 自動生成的可執行文件輸出目錄為 PREFIX/bin , 即 ./android/armeabi-v7a/bin ;

③ 函數庫目錄 : 自動生成的函數庫數據目錄為 PREFIX/lib , 即 ./android/armeabi-v7a/lib ;

其它的標準選項配置 ( Standard options ) 請仔細閱讀下面的 configure 幫助文檔內容 ;

Standard options: # 標準選項--logfile=FILE log tests and output to FILE [ffbuild/config.log]--disable-logging do not log configure debug information--fatal-warnings fail if any configure warning is generated# 生成的文件輸出目錄 , 這里只需要指定一個 PREFIX 即可 # 指定好 PREFIX 后面的一系列目錄就會自動設置好 ;--prefix=PREFIX install in PREFIX [/usr/local]# 生成的可執行文件輸出目錄 , 指定好 PREFIX 后面的一系列目錄就會自動設置好 --bindir=DIR install binaries in DIR [PREFIX/bin] --datadir=DIR install data files in DIR [PREFIX/share/ffmpeg]--docdir=DIR install documentation in DIR [PREFIX/share/doc/ffmpeg]--libdir=DIR install libs in DIR [PREFIX/lib]--shlibdir=DIR install shared libs in DIR [LIBDIR]--incdir=DIR install includes in DIR [PREFIX/include]--mandir=DIR install man page in DIR [PREFIX/share/man]--pkgconfigdir=DIR install pkg-config files in DIR [LIBDIR/pkgconfig]--enable-rpath use rpath to allow installing libraries in pathsnot part of the dynamic linker search pathuse rpath when linking programs (USE WITH CARE)--install-name-dir=DIR Darwin directory name for installed targetsLicensing options:--enable-gpl allow use of GPL code, the resulting libsand binaries will be under GPL [no]--enable-version3 upgrade (L)GPL to version 3 [no]--enable-nonfree allow use of nonfree code, the resulting libsand binaries will be unredistributable [no]

六、函數庫配置



1 . 函數庫配置 : FFMPEG 編譯時 , 可以選擇編譯靜態庫或動態庫 , 及設置編譯函數庫的行為 ;


2 . 默認編譯的函數庫 : FFMPEG 默認編譯靜態庫 , 此處也推薦在 Android 中使用 FFMPEG 靜態庫開發音視頻功能 , 保持默認狀態即可 ;


3 . 優化函數庫 :


① 設置后效果 : FFMPEG 編譯時可以選擇優化函數庫大小 , 讓編譯出來的函數庫盡可能小 , 但相應的編譯速度會降低很多 ;

② 設置的要性 : 由于是在 Android 中進行開發 , 為了使打包后的 APK 文件盡可能小 , 這里我們需要開啟該選項 ;

③ 設置命令 : 調用 ./configure --enable-small 命令 , 啟用優化函數庫大小的功能 ;

# 啟用函數庫大小優化 ./configure --enable-small

其它的配置選項 ( Configuration ) 請仔細閱讀下面的 configure 幫助文檔內容 ;

Configuration options: #配置選項# 是否關閉靜態庫編譯 , 默認值是 no 會編譯靜態庫# 如果設置該選項 , 編譯時不會編譯靜態庫 ; # 這里使用默認值 , 即要編譯出靜態庫在 Android 中使用 ; --disable-static do not build static libraries [no]# 是否編譯動態庫 , 默認 no 即不會編譯動態庫 ; 這里也使用默認值--enable-shared build shared libraries [no] # 優化函數庫大小 , 但是編譯速度很慢 ; # 如果設置該選項 , 因為 Android 中的函數庫越小越好 --enable-small optimize for size instead of speed --disable-runtime-cpudetect disable detecting CPU capabilities at runtime (smaller binary)--enable-gray enable full grayscale support (slower color)--disable-swscale-alpha disable alpha channel support in swscale--disable-all disable building components, libraries and programs--disable-autodetect disable automatically detected external libraries [no]

七、程序配置選項



程序配置選項 :


① FFMPEG 命令行程序 : FFMPEG 提供了一些可執行的命令行程序 , 如 ffmpeg.exe , ffplay.exe , ffprobe.exe 等程序 ;

② 使用情況 : 在 Android 開發中只需要 FFMPEG 的函數庫 , 不需要這些程序 , 建議關閉命令行程序編譯選項 ;

③ 配置命令 : 調用 ./configure --disable-programs 命令 , 關閉編譯命令行程序的功能 ;

# 關閉編譯命令行程序 ./configure --disable-programs

其它的配置選項 ( Configuration ) 請仔細閱讀下面的 configure 幫助文檔內容 ;

Program options: #程序選項#關閉命令行程序編譯 : FFMPEG 提供了一些可執行的命令行程序 # 如 ffmpeg.exe , ffplay.exe , ffprobe.exe 等程序 ; # 但是我們只需要 FFMPEG 的函數庫 , 不需要這些程序# 建議關閉編譯命令行程序選項 ; --disable-programs do not build command line programs# 下面是分別設置 3 個命令行程序是否進行編譯--disable-ffmpeg disable ffmpeg build--disable-ffplay disable ffplay build--disable-ffprobe disable ffprobe build

八、組件配置選項



1 . 組件配置選項 :

默認狀態 : FFMPEG 組件選項 , 默認都是打開的 , 如果需要關閉某一個需要單獨配置 ;


2 . FFMPEG 常用組件 :


① avdevice 組件 : 操作攝像頭等視頻設備 , Android 中是不支持該操作 , 需要手動關閉 ;

② avcodec 組件 : 聲音 / 圖像編解碼組件 ;

③ avformat 組件 : 音視頻封裝格式生成或解析 ;

④ swresample 組件 : 音頻重采樣 , 修改音頻參數 ;

⑤ swscale 組件 : 視頻場景比例縮放 , 色彩映射轉換 ;

⑥ postproc 組件 : 后期效果處理 , 這里不需要 , 需要手動關閉 ;

⑦ avfilter 組件 : 過濾器 , 添加字幕水印 ;


3 . 關閉 avdevice 配置命令 : 調用 ./configure --disable-avdevice 命令 , 關閉 avdevice 模塊編譯 ;

# 關閉編譯命令行程序 ./configure --disable-avdevice

其它的組件配置選項 ( Configuration ) 請仔細閱讀下面的 configure 幫助文檔內容 ;

Component options: # FFMPEG 組件選項 , 默認都是打開的 , 如果需要關閉某一個需要單獨配置# FFMPEG 由以下組件構成 , 可以定制是否編譯這些組件 ;# 操作攝像頭等視頻設備 , Android 中是不支持該操作 , 需要手動關閉 ;--disable-avdevice disable libavdevice build# 聲音 / 圖像編解碼--disable-avcodec disable libavcodec build# 音視頻封裝格式生成或解析--disable-avformat disable libavformat build# 音頻重采樣 , 修改音頻參數--disable-swresample disable libswresample build# 視頻場景比例縮放 , 色彩映射轉換--disable-swscale disable libswscale build# 后期效果處理 , 這里不需要 , 需要手動關閉 ;--disable-postproc disable libpostproc build# 過濾器 , 添加字幕水印--disable-avfilter disable libavfilter build--enable-avresample enable libavresample build (deprecated) [no]--disable-pthreads disable pthreads [autodetect]--disable-w32threads disable Win32 threads [autodetect]--disable-os2threads disable OS/2 threads [autodetect]--disable-network disable network support [no]--disable-dct disable DCT code--disable-dwt disable DWT code--disable-error-resilience disable error resilience code--disable-lsp disable LSP code--disable-lzo disable LZO decoder code--disable-mdct disable MDCT code--disable-rdft disable RDFT code--disable-fft disable FFT code--disable-faan disable floating point AAN (I)DCT code--disable-pixelutils disable pixel utils in libavutil

九、編碼配置



1 . 提供的編碼配置 :


① 編碼器 : 關閉指定編碼器 , 關閉所有編碼器 , 打開指定編碼器 ;

# 關閉指定編碼--disable-encoder=NAME disable encoder NAME# 打開指定編碼--enable-encoder=NAME enable encoder NAME# 關閉所有編碼--disable-encoders disable all encoders

② 解碼器 : 關閉指定解碼器 , 關閉所有解碼器 , 打開指定解碼器 ;

# 關閉指定解碼--disable-decoder=NAME disable decoder NAME# 打開指定解碼--enable-decoder=NAME enable decoder NAME# 關閉所有解碼--disable-decoders disable all decoders

2 . 關閉編碼配置命令 : 調用 ./configure --disable-encoders 命令 , 關閉編碼器模塊編譯 ;

# 關閉編譯編碼器 ./configure --disable-encoders

3 . 關閉混合封裝配置命令 : 調用 ./configure --disable-muxers 命令 , 關閉混合封裝模塊編譯 ;

# 關閉混合封裝 ./configure --disable-muxers

2 . 關閉視頻濾鏡配置命令 : 調用 ./configure --disable-filters 命令 , 關閉視頻濾鏡模塊編譯 ;

# 關閉視頻濾鏡 ./configure --disable-filters

其它的單個組件配置選項 ( Configuration ) 請仔細閱讀下面的 configure 幫助文檔內容 ;

Individual component options: # 單個組件配置--disable-everything disable all components listed below# 關閉指定編碼--disable-encoder=NAME disable encoder NAME# 打開指定編碼--enable-encoder=NAME enable encoder NAME# 關閉所有編碼--disable-encoders disable all encoders# 關閉指定解碼--disable-decoder=NAME disable decoder NAME# 打開指定解碼--enable-decoder=NAME enable decoder NAME# 關閉所有解碼--disable-decoders disable all decoders--disable-hwaccel=NAME disable hwaccel NAME--enable-hwaccel=NAME enable hwaccel NAME--disable-hwaccels disable all hwaccels--disable-muxer=NAME disable muxer NAME--enable-muxer=NAME enable muxer NAME# 關閉混合封裝 , 混合封裝就是將音頻與視頻封裝一個視頻文件--disable-muxers disable all muxers--disable-demuxer=NAME disable demuxer NAME--enable-demuxer=NAME enable demuxer NAME--disable-demuxers disable all demuxers--enable-parser=NAME enable parser NAME--disable-parser=NAME disable parser NAME--disable-parsers disable all parsers--enable-bsf=NAME enable bitstream filter NAME--disable-bsf=NAME disable bitstream filter NAME--disable-bsfs disable all bitstream filters--enable-protocol=NAME enable protocol NAME--disable-protocol=NAME disable protocol NAME--disable-protocols disable all protocols--enable-indev=NAME enable input device NAME--disable-indev=NAME disable input device NAME--disable-indevs disable input devices--enable-outdev=NAME enable output device NAME--disable-outdev=NAME disable output device NAME--disable-outdevs disable output devices--disable-devices disable all devices--enable-filter=NAME enable filter NAME--disable-filter=NAME disable filter NAME--disable-filters disable all filters

十、交叉編譯配置 ( 重點 )



1 . 開啟交叉編譯 : 調用 ./configure --enable-cross-compile 命令 , 開啟交叉編譯選項 ;

# 關閉視頻濾鏡 ./configure --enable-cross-compile

2 . 設置交叉編譯工具鏈前綴 :


① 定義 NDK 根目錄變量 :

NDK_ROOT=/root/NDK/android-ndk-r17c

② 定義 TOOLCHAIN 交叉編譯工具鏈目錄變量 :

TOOLCHAIN=$NDK_ROOT/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64

③ 設置交叉編譯工具鏈前綴 :

./configure --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi-

實際的前綴為 : /root/NDK/android-ndk-r17c/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-


3 . 配置頭文件與庫文件查找路勁 :

./configure --sysroot=$NDK_ROOT/platforms/android-21/arch-arm

4 . 配置編譯器參數 :


① 先定義編譯器參數變量 :

FLAGS="-isysroot $NDK_ROOT/sysroot -isystem $NDK_ROOT/sysroot/usr/include/arm-linux-androideabi -isystem $NDK_ROOT/sources/android/support/include -D__ANDROID_API__=21 -g -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"

② 配置編譯器參數 :

./configure --extra-cflags=$FLAGS

5 . 配置編譯平臺 :

./configure --arch=arm

6 . 配置編譯后的應用平臺 : 編譯后的函數庫要在 Android 平臺使用 ;

./configure --target-os=android

其它的編譯工具鏈配置選項 ( Configuration ) 請仔細閱讀下面的 configure 幫助文檔內容 ;

Toolchain options: # 工具鏈配置選項# 指定編譯 CPU 指令集架構 , arm--arch=ARCH select architecture []--cpu=CPU select the minimum required CPU (affectsinstruction selection, may crash on older CPUs)# 指定交叉編譯工具鏈 , 即 NDK 目錄下的交叉編譯工具目錄 , 其中有一系列的 arm-linux-androideabi-XX 工具# PREFIX 配置完整的路徑/NDK路徑/工具前綴# /root/NDK/android-ndk-r17c/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-# 后面的 gcc , g++ , ar 等工具由腳本自己補充 , 這里我們指定 gcc 前面的前綴內容--cross-prefix=PREFIX use PREFIX for compilation tools []--progs-suffix=SUFFIX program name suffix []# 開啟交叉編譯--enable-cross-compile assume a cross-compiler is used# 頭文件與庫文件查找目錄 , 這里要指定 NDK 中 platform 中的頭文件與庫文件目錄 # 注意 : 每個 NDK 版本的頭文件與庫文件目錄不一致 , 注意靈活配置 , 如果找不到頭文件與庫文件肯定報錯 # 注意版本兼容 , 要配置最低兼容版本的 NDK 頭文件 庫文件 目錄--sysroot=PATH root of cross-build tree--sysinclude=PATH location of cross-build system headers# 指定編譯的庫運行的操作系統 , android--target-os=OS compiler targets OS []--target-exec=CMD command to run executables on target--target-path=DIR path to view of build directory on target--target-samples=DIR path to samples directory on target--tempprefix=PATH force fixed dir/prefix instead of mktemp for checks--toolchain=NAME set tool defaults according to NAME(gcc-asan, clang-asan, gcc-msan, clang-msan,gcc-tsan, clang-tsan, gcc-usan, clang-usan,valgrind-massif, valgrind-memcheck,msvc, icl, gcov, llvm-cov, hardened)--nm=NM use nm tool NM [nm -g]--ar=AR use archive tool AR [ar]--as=AS use assembler AS []--ln_s=LN_S use symbolic link tool LN_S [ln -s -f]--strip=STRIP use strip tool STRIP [strip]--windres=WINDRES use windows resource compiler WINDRES [windres]--x86asmexe=EXE use nasm-compatible assembler EXE [nasm]--cc=CC use C compiler CC [gcc]--cxx=CXX use C compiler CXX [g++]--objcc=OCC use ObjC compiler OCC [gcc]--dep-cc=DEPCC use dependency generator DEPCC [gcc]--nvcc=NVCC use Nvidia CUDA compiler NVCC [nvcc]--ld=LD use linker LD []--pkg-config=PKGCONFIG use pkg-config tool PKGCONFIG [pkg-config]--pkg-config-flags=FLAGS pass additional flags to pkgconf []--ranlib=RANLIB use ranlib RANLIB [ranlib]--doxygen=DOXYGEN use DOXYGEN to generate API doc [doxygen]--host-cc=HOSTCC use host C compiler HOSTCC--host-cflags=HCFLAGS use HCFLAGS when compiling for host--host-cppflags=HCPPFLAGS use HCPPFLAGS when compiling for host--host-ld=HOSTLD use host linker HOSTLD--host-ldflags=HLDFLAGS use HLDFLAGS when linking for host--host-libs=HLIBS use libs HLIBS when linking for host--host-os=OS compiler host OS []# 傳遞給 gcc 編譯器的參數 --extra-cflags=ECFLAGS add ECFLAGS to CFLAGS []# 傳遞給 g++ 編譯器的參數--extra-cxxflags=ECFLAGS add ECFLAGS to CXXFLAGS []--extra-objcflags=FLAGS add FLAGS to OBJCFLAGS []--extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS []--extra-ldexeflags=ELDFLAGS add ELDFLAGS to LDEXEFLAGS []--extra-ldsoflags=ELDFLAGS add ELDFLAGS to LDSOFLAGS []--extra-libs=ELIBS add ELIBS []--extra-version=STRING version string suffix []--optflags=OPTFLAGS override optimization-related compiler flags--nvccflags=NVCCFLAGS override nvcc flags [-gencode arch=compute_30,code=sm_30 -O2]--build-suffix=SUFFIX library name suffix []--enable-pic build position-independent code--enable-thumb compile for Thumb instruction set--enable-lto use link-time optimization--env="ENV=override" override the environment variables

十一、交叉編譯配置 Shell 腳本 ( 重點 )



1 . 將本博客內容匯總后 , 編寫成 Shell 腳本如下 : 在 FFMPEG 源碼根目錄下 , 創建 build_ffmpeg.sh 文件 , 內容如下 ;

#!/bin/bash# NDK 根目錄 NDK_ROOT=/root/NDK/android-ndk-r17c# TOOLCHAIN 變量指向 gcc g++ 等交叉編譯工具所在的目錄 TOOLCHAIN=$NDK_ROOT/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64# gcc 編譯器參數 FLAGS="-isysroot $NDK_ROOT/sysroot -isystem $NDK_ROOT/sysroot/usr/include/arm-linux-androideabi -isystem $NDK_ROOT/sources/android/support/include -D__ANDROID_API__=21 -g -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"# 編譯結果輸出路徑 PREFIX=./android/armeabi-v7a# 執行 configure 腳本生成 Makefile 構建腳本 ./configure \ --prefix=$PREFIX \ --enable-small \ --disable-programs \ --disable-avdevice \ --disable-encoders \ --disable-muxers \ --disable-filters \ --enable-cross-compile \ --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \ --sysroot=$NDK_ROOT/platforms/android-21/arch-arm \ --extra-cflags="$FLAGS" \ --arch=arm \ --target-os=android # 清除之前的編譯內容 make clean# 開啟新的 FFMPEG 編譯 make install

2 . 修改 Shell 腳本權限 :

chmod +x build_ffmpeg.sh

3 . 執行 Shell 腳本 :

./build_ffmpeg.sh

4 . 編譯結果 :

總結

以上是生活随笔為你收集整理的【Android FFMPEG 开发】FFMPEG 交叉编译配置 ( 下载 | 配置脚本 | 输出路径 | 函数库配置 | 程序配置 | 组件配置 | 编码解码配置 | 交叉编译配置 | 最终脚本 )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: www.蜜桃av| 欧洲色视频 | 国产又色又爽又高潮免费 | 国产在线观看一区二区三区 | 国产亚洲成人av | 啪啪网视频 | 国产精品1234| 国产成人无码精品久久 | 久久久视屏 | 国产一区二区自拍 | 狠狠爱欧美 | 99在线观看 | 色亚洲色图 | 精品伊人久久 | 污视频网站在线看 | 日韩天堂av| 亚洲wwww| 91美女在线观看 | av十大美巨乳| 日本三级吃奶头添泬 | 国产高清免费av | 亚洲成人一区二区 | 美国黄色网址 | 人妻久久久一区二区三区 | 一区免费视频 | 欧美日韩人妻精品一区二区三区 | 我的丝袜美腿尤物麻麻 | 国产素人自拍 | 成人乱人乱一区二区三区 | 日韩一区二区在线播放 | 精品一区三区 | 好男人www社区 | 黄色网战在线观看 | 免费性网站 | 免费在线观看a视频 | 18禁男女爽爽爽午夜网站免费 | 久久加久久 | 久久久久久久久久久av | 色婷婷中文 | 中文字幕精品在线观看 | 欧美人与性囗牲恔配 | 日韩av免费看 | 亚洲影音| 男人的天堂色偷偷 | 国语对白91 | 久久人人爽人人爽人人av | 日韩中文在线视频 | 欧美少妇xxxxx | 色多多视频污 | 国产女主播在线观看 | 五月综合色婷婷 | 欧美一二三 | 高清视频免费在线观看 | 国产欧美日韩精品一区二区三区 | 91综合精品| 日本久操 | 国产精品一区二区av日韩在线 | 黄大色黄大片女爽一次 | av夜色| 天天综合国产 | 国模二区 | 日本三级中文字幕在线观看 | 日韩伦理av | www.av在线.com| 久久久久久毛片 | 麻豆www| 麻豆网站在线免费观看 | 伊人资源网 | 国产探花视频在线观看 | 一级黄色片在线播放 | 日韩av片在线免费观看 | 欧美日韩中文字幕在线观看 | 天天躁夜夜躁av天天爽 | 50度灰在线 | 午夜天堂视频 | 久久r精品 | 五月天丁香久久 | 91麻豆视频 | 天堂俺去俺来也www久久婷婷 | 四虎成人在线 | 国产成人精品一区二三区四区五区 | 日韩一级在线视频 | 国产地址 | 男生脱女生衣服 | 五月婷婷丁香激情 | 久久国产香蕉视频 | 老熟妇一区二区三区 | 东方影库av| 天天操夜夜操夜夜操 | 青草热视频 | 久久影业| 老熟妇高潮一区二区三区 | 丁香花五月天 | 成人永久免费视频 | 一级黄色录相 | 久久这里有精品 | av网站免费在线播放 | 欧美日韩一区二区区 | 欧美黄色影院 |