日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

一分鐘編譯ffmpeg4.2.2并移植到Android添加https和硬編碼

 mediatv 2020-03-24

Android 編譯FFmpeg 添加硬編碼  和https

碼字不易,轉(zhuǎn)載請(qǐng)注明出處!

我們編譯FFmpeg一般在Linux的系統(tǒng)上進(jìn)行編譯(當(dāng)然在WIN上也是可以的加上VM虛擬機(jī)安裝linux)

FFmpeg官網(wǎng)下載,直接DownLoad即可(文檔編輯時(shí)版本 ffmpeg-4.2.2)

編譯環(huán)境Ubuntu 19.10   重點(diǎn)NDK20b  采用 CLANG 則是一個(gè)效率更高的C/C++編譯工具,并且兼容GCC,Google在很早以前就開始建議使用clang進(jìn)行編譯,并且在 ndk 17 以后,把 GCC 移除了,全面推行使用 CLANG

在 ffmpeg-4.2.2 根目錄下新建 shell 腳本,命名為:build_android.sh 創(chuàng)建build_andorid.sh 并授予權(quán)限sudo  chmod   777  build_android.sh 

講已下代碼復(fù)制到所創(chuàng)建的文件中

#!/bin/bash

# 清空上次的編譯

make clean

#你自己的NDK路徑.

export NDK=/home/tt/android-ndk-r20b-linux-x86_64/android-ndk-r20b

TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64/

API=29

function build_android

{

echo "Compiling FFmpeg for $CPU"

./configure \

    --prefix=$PREFIX \

    --enable-neon \

    --enable-hwaccels \

    --enable-gpl \

    --enable-postproc \

    --enable-shared \

    --enable-jni \

    --enable-mediacodec \

    --enable-decoder=h264_mediacodec \

    --disable-decoders \

    --enable-decoder=aac \

    --enable-decoder=aac_latm \

    --enable-decoder=mjpeg \

    --enable-decoder=png \

    --enable-decoder=mpeg4_mediacodec \

    --disable-static \

    --disable-doc \

    --enable-ffmpeg \

    --disable-ffplay \

    --disable-ffprobe \

    --enable-avdevice \

    --disable-doc \

    --disable-symver \

    --cross-prefix=$CROSS_PREFIX \

    --target-os=android \

    --arch=$ARCH \

    --cpu=$CPU \

    --cc=$CC

    --cxx=$CXX

    --enable-cross-compile \

    --sysroot=$SYSROOT \

    --extra-cflags="-Os -fpic $OPTIMIZE_CFLAGS" \

    --extra-ldflags="$ADDI_LDFLAGS" \

    $ADDITIONAL_CONFIGURE_FLAG

make clean

make

make install

echo "The Compilation of FFmpeg for $CPU is completed"

}

#armv8-a

ARCH=arm64

CPU=armv8-a

CC=$TOOLCHAIN/bin/aarch64-linux-android$API-clang

CXX=$TOOLCHAIN/bin/aarch64-linux-android$API-clang++

SYSROOT=$NDK/toolchains/llvm/prebuilt/linux-x86_64/sysroot

CROSS_PREFIX=$TOOLCHAIN/bin/aarch64-linux-android-

PREFIX=$(pwd)/android/$CPU

OPTIMIZE_CFLAGS="-march=$CPU"

build_android

#armv7-a

ARCH=arm

CPU=armv7-a

CC=$TOOLCHAIN/bin/armv7a-linux-androideabi$API-clang

CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi$API-clang++

SYSROOT=$NDK/toolchains/llvm/prebuilt/linux-x86_64/sysroot

CROSS_PREFIX=$TOOLCHAIN/bin/arm-linux-androideabi-

PREFIX=$(pwd)/android/$CPU

OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU "

build_android

#x86

ARCH=x86

CPU=x86

CC=$TOOLCHAIN/bin/i686-linux-android$API-clang

CXX=$TOOLCHAIN/bin/i686-linux-android$API-clang++

SYSROOT=$NDK/toolchains/llvm/prebuilt/linux-x86_64/sysroot

CROSS_PREFIX=$TOOLCHAIN/bin/i686-linux-android-

PREFIX=$(pwd)/android/$CPU

OPTIMIZE_CFLAGS="-march=i686 -mtune=intel -mssse3 -mfpmath=sse -m32"

build_android

#x86_64

ARCH=x86_64

CPU=x86-64

CC=$TOOLCHAIN/bin/x86_64-linux-android$API-clang

CXX=$TOOLCHAIN/bin/x86_64-linux-android$API-clang++

SYSROOT=$NDK/toolchains/llvm/prebuilt/linux-x86_64/sysroot

CROSS_PREFIX=$TOOLCHAIN/bin/x86_64-linux-android-

PREFIX=$(pwd)/android/$CPU

OPTIMIZE_CFLAGS="-march=$CPU -msse4.2 -mpopcnt -m64 -mtune=intel"

build_android

保存等待直接 運(yùn)行./build_android.sh  

然后一步編譯成功!

后續(xù)移植到Android studio 項(xiàng)目中會(huì)發(fā)出來(lái)  目前可以參考移植部分就可以了

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多