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

歡迎訪問 生活随笔!

生活随笔

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

Android

Android 编译ffmpeg库

發布時間:2024/3/26 Android 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 编译ffmpeg库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Android 編譯ffmpeg庫

  • 下載ffmpeg源碼
    git clone https://git.ffmpeg.org/ffmpeg.git 或者 git clone https://github.com/FFmpeg/FFmpeg.git。

  • 下載NDK版本, 目前我使用的是NDK21, 下載NDK和查看NDK目錄文件的方法:
    (1) 進入AndroidStudio查看, 勾選Show Package Details ,可以查看當前已經下載的NDK版本, 如果需要下載其他版本可以點擊下載. 存放目錄在自己配置的Android/Sdk目錄下面.
    (2) 在Android開發者文檔可以下載到ndk源碼,ndk下載鏈接。 根據實際需求選擇對應ndk版本,建議下載ndk-r20b穩定版。(這個是github上建議下載)

  • 創建編譯腳本build_ffmpeg.sh

  • #!/bin/bash make clean set -e archbit=64if [ $archbit -eq 64 ];then echo "build for 64bit" ARCH=aarch64 CPU=armv8-a API=21 PLATFORM=aarch64 ANDROID=android CFLAGS="" LDFLAGS=""else echo "build for 32bit" ARCH=arm CPU=armv7-a API=16 PLATFORM=armv7a ANDROID=androideabi CFLAGS="-mfloat-abi=softfp -march=$CPU" LDFLAGS="-Wl,--fix-cortex-a8" fiexport NDK=/home/xzx/Android/Sdk/ndk/21.0.6113669 #這里是自己的NDK路徑 export TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64/bin #注意這里是linux export SYSROOT=$NDK/toolchains/llvm/prebuilt/linux-x86_64/sysroot export CROSS_PREFIX=$TOOLCHAIN/$ARCH-linux-$ANDROID- export CC=$TOOLCHAIN/$PLATFORM-linux-$ANDROID$API-clang export CXX=$TOOLCHAIN/$PLATFORM-linux-$ANDROID$API-clang++ export PREFIX=../ffmpeg-android/$CPUfunction build_android {./configure \--prefix=$PREFIX \--cross-prefix=$CROSS_PREFIX \--target-os=android \ #注意這里是android--arch=$ARCH \--cpu=$CPU \--cc=$CC \--cxx=$CXX \--nm=$TOOLCHAIN/$ARCH-linux-$ANDROID-nm \--strip=$TOOLCHAIN/$ARCH-linux-$ANDROID-strip \--enable-cross-compile \--sysroot=$SYSROOT \--extra-cflags="$CFLAGS" \--extra-ldflags="$LDFLAGS" \--extra-ldexeflags=-pie \--enable-runtime-cpudetect \--disable-static \--enable-shared \--enable-logging \--disable-ffprobe \--enable-ffplay \--disable-ffmpeg \--enable-debug \--disable-doc \--enable-avfilter \--enable-decoders \#--enable-version3 \#--enable-rkmpp \$ADDITIONAL_CONFIGURE_FLAGmakemake install } build_android

    修改文件的權限chmod 777 build_ffmpeg.sh
    執行編譯腳本./build_ffmpeg.sh

  • 編譯完成生成ffmpeg-android文件, 我編譯的arm64版本, 其他版本自己修改腳本編譯.
  • xzx@xzx-Lenovo:~/disk2/project/ffmpeg/ffmpeg-android$ ls armv8-a

    生成的對應模塊的so庫, 還存在對應的頭文件.

    xzx@xzx-Lenovo:~/disk2/project/ffmpeg/ffmpeg-android/armv8-a/lib$ ls libavcodec.so libavdevice.so libavfilter.so libavformat.so libavutil.so libswresample.so libswscale.so pkgconfig
  • 選擇編譯不同版本的ffmpeg, 請使用git checkout release/4.2不同的分支進行卻換源碼.
  • xzx@xzx-Lenovo:~/disk2/project/ffmpeg/ffmpeg$ git branch -amasterrelease/4.0 * release/4.2remotes/origin/HEAD -> origin/masterremotes/origin/masterremotes/origin/oldabiremotes/origin/release/0.10remotes/origin/release/0.11remotes/origin/release/0.5remotes/origin/release/0.6remotes/origin/release/0.7remotes/origin/release/0.8remotes/origin/release/0.9remotes/origin/release/1.0remotes/origin/release/1.1remotes/origin/release/1.2remotes/origin/release/2.0remotes/origin/release/2.1remotes/origin/release/2.2remotes/origin/release/2.3remotes/origin/release/2.4remotes/origin/release/2.5remotes/origin/release/2.6remotes/origin/release/2.7remotes/origin/release/2.8remotes/origin/release/3.0remotes/origin/release/3.1remotes/origin/release/3.2remotes/origin/release/3.3remotes/origin/release/3.4remotes/origin/release/4.0remotes/origin/release/4.1remotes/origin/release/4.2remotes/origin/release/4.3remotes/origin/release/4.4
  • 編譯出來的庫下載鏈接: https://download.csdn.net/download/nihenmeila/35382760

  • 參考編譯鏈接:

  • FFmpeg官方文檔

    查看FFmpeg編譯流程

    查看FFmpeg常用命令行

    https://github.com/xufuji456/FFmpegAndroid/blob/master/doc/FFmpeg_compile_shell.md

    總結

    以上是生活随笔為你收集整理的Android 编译ffmpeg库的全部內容,希望文章能夠幫你解決所遇到的問題。

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