librtmp ios compile

librtmp 需要支持rtmps協(xié)議,所以需要openssl 的支持。

#!/bin/shSDKVERSION="9.3" #這里跟openssl的地方是一個意思CURRENTPATH=`pwd`ARCHS="i386 armv7 armv7s arm64"LIBPATH="${CURRENTPATH}/lib" #這里就是剛才拷貝過來的目錄,不要修改,因為librtmp最后生成的也放到了這個下面INCLUDEPATH="${CURRENTPATH}/include" #這里就是剛才拷貝過來的目錄,不要修改,因為librtmp最后生成的也放到了這個下面LIBRTMPREPO="git://git.ffmpeg.org/rtmpdump"BUILDPATH="${CURRENTPATH}/build"SRCPATH="${CURRENTPATH}/src"LIBRTMP="librtmp.a"DEVELOPER=`xcode-select -print-path`if [ ! -d "$DEVELOPER" ]; thenecho "xcode path is not set correctly $DEVELOPER does not exist (most likely because of xcode > 4.3)"echo "run"echo "sudo xcode-select -switch"

echo "for default installation:"

echo "sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer"

exit 1

fi

# Check whether openssl has already installed on the machine or not.

# libcrypt.a / libssl.a

set -e

echo 'Check openssl installation'

if [ -f "${LIBPATH}/libcrypto.a" ] && [ -f "${LIBPATH}/libssl.a" ] && [ -d "${INCLUDEPATH}/openssl" ]; then

echo 'Openssl for iOS has already installed, no need to install openssl'

else

echo 'Openssl for iOS not found, will install openssl for iOS'

./build-libssl.sh

echo 'Succeeded to install openssl'

fi

# Download librtmp source code from git repository

# We assuem the user already installed git client.

echo 'Clone librtmp git repository'

# Remove the directory if already exist

rm -rf "${SRCPATH}/rtmpdump"

git clone ${LIBRTMPREPO} src/rtmpdump

cd "${SRCPATH}/rtmpdump/librtmp"

LIBRTMP_REPO=""

for ARCH in ${ARCHS}

do

if [ "${ARCH}" == "i386" ];

then

PLATFORM="iPhoneSimulator"

else

PLATFORM="iPhoneOS"

fi

export CROSS_TOP="${DEVELOPER}/Platforms/${PLATFORM}.platform/Developer"

export CROSS_SDK="${PLATFORM}${SDKVERSION}.sdk"

export BUILD_TOOLS="${DEVELOPER}"

echo "Building librtmp for ${PLATFORM} ${SDKVERSION} ${ARCH}"

echo "Please wait..."

# add arch to CC=

sed -ie "s!AR=\$(CROSS_COMPILE)ar!AR=/usr/bin/ar!" "Makefile"

sed -ie "/CC=\$(CROSS_COMPILE)gcc/d" "Makefile"

echo "CC=\$(CROSS_COMPILE)gcc -arch ${ARCH}" >> "Makefile"

export CROSS_COMPILE="${DEVELOPER}/usr/bin/"

export XCFLAGS="-isysroot ${CROSS_TOP}/SDKs/${CROSS_SDK} -miphoneos-version-min=7.0 -I${INCLUDEPATH} -arch ${ARCH}"

if [ "${ARCH}" == "i386" ];

then

export XLDFLAGS="-L${LIBPATH} -arch ${ARCH}"

else

export XLDFLAGS="-isysroot ${CROSS_TOP}/SDKs/${CROSS_SDK} -miphoneos-version-min=7.0 -L${LIBPATH} -arch ${ARCH}"

fi

OUTPATH="${BUILDPATH}/librtmp-${PLATFORM}${SDKVERSION}-${ARCH}.sdk"

mkdir -p "${OUTPATH}"

LOG="${OUTPATH}/build-librtmp.log"

make SYS=darwin >> "${LOG}" 2>&1

make SYS=darwin prefix="${OUTPATH}" install >> "${LOG}" 2>&1

make clean >> "${LOG}" 2>&1

LIBRTMP_REPO+="${OUTPATH}/lib/${LIBRTMP} "

done

echo "Build universal library..."

lipo -create ${LIBRTMP_REPO}-output ${LIBPATH}/${LIBRTMP}

mkdir -p ${INCLUDEPATH}

cp -R ${BUILDPATH}/librtmp-iPhoneSimulator${SDKVERSION}-i386.sdk/include/ ${INCLUDEPATH}/

echo "Building done."

echo "Cleaning up..."

rm -rf ${SRCPATH}/rtmpdump

echo "Done."

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容