ios及android兩個平台下x264編譯指令碼,androidx264

來源:互聯網
上載者:User

ios及android兩個平台下x264編譯指令碼,androidx264
       今年做了一些音視頻編解碼工作,此前做圖形、映像類工作多一些,做了音視頻編解碼才知道,這項工作還是很有趣、很神奇的。比如採集幾十M的視頻資料,經過編碼儲存後,檔案體積僅僅有幾十K大小,這當中就需要x264來發揮神奇了。下面將手機端ios及android兩個平台下x264編譯指令碼分享出來,希望對正在做相關工作的同學有協助。x264源碼地址:http://www.videolan.org/developers/x264.html       1. ios平台下x264編譯。這個編譯指令碼修改自:https://github.com/xlking/build_x264,有時侯真覺得github真是萬能的,上面好東西太多了。這個編譯指令碼功能比較豐富,會同時編譯模擬器和真機兩個靜態庫,最後還會將兩個庫合為一個靜態庫,我在實際應用中發現,x264在視頻編碼過程中有些模組需要硬體指令支援,而模擬器是不提供這種硬體指令的,所以用模擬器調試視頻編碼程式時,均以程式崩潰告終,建議統一用真機調試,可以省很多時間,少走很多彎路。另外要說的是這個編譯指令碼選擇性參數很多,現在ios8已經出來了,我當時編譯時間還是ios7.1呢,所以指令碼中sdk_version選項,可以酌情修改。指令碼內容如下:

#!/bin/shcd x264DEST=installSDK_VERSION="7.1"echo "Building armv7"ARM="armv7"export CC=`xcodebuild -find clang`DEVPATH=/Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS${SDK_VERSION}.sdk./configure                     \    --host=arm-apple-darwin     \    --sysroot=$DEVPATH          \    --prefix=$DEST/$ARM         \    --extra-cflags="-arch $ARM" \    --extra-ldflags="-L$DEVPATH/usr/lib/system -arch $ARM" \    --enable-pic      \    --enable-static   \    --enable-asm    make && make install && make cleanecho "Installed: $DEST/$ARM"echo "Building i386"SIM="i386"CC=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gccDEVPATH=/Applications/XCode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator${SDK_VERSION}.sdk./configure                     \    --host=i386-apple-darwin    \     -sysroot=$DEVPATH          \    --prefix=$DEST/$SIM         \    --extra-cflags="-arch $SIM" \    --extra-ldflags="-L$DEVPATH/usr/lib/system -arch $SIM" \    --enable-pic    \    --enable-static \    --disable-asm    make && make install && make cleanecho "Installed: $DEST/$SIM"echo "Combining library ......"BUILD_LIBS="libx264.a"OUTPUT_DIR="output"ARCHS="armv7 i386"cd installmkdir $OUTPUT_DIRmkdir $OUTPUT_DIR/libmkdir $OUTPUT_DIR/includeLIPO_CREATE=""for ARCH in $ARCHS; do    LIPO_CREATE="$LIPO_CREATE $ARCH/lib/$BUILD_LIBS "donelipo -create $LIPO_CREATE -output $OUTPUT_DIR/lib/$BUILD_LIBScp -f $ARCH/include/*.* $OUTPUT_DIR/include/echo "************************************************************"lipo -i $OUTPUT_DIR/lib/$BUILD_LIBSecho "************************************************************"echo "OK, merge done!"
       2. android平台下x264編譯。除了下載x264源碼外,還要搭建ndk開發環境,這個很容易,只要到官網下載相應平台的ndk包即可。完成ndk環境搭建,下一步就是執行指令碼,編譯x264源碼。首先在x264源碼目錄下建立build_x264.sh指令檔,將下列內容拷貝進檔案並儲存。開啟終端,cd進入x264目錄,執行./build_x264.sh,按照提示輸入make,然後耐心等待編譯結果。指令碼內容如下:
export NDK=/home/mypc/android-ndk-r9dexport PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.8/prebuiltexport PLATFORM=$NDK/platforms/android-8/arch-armexport PREFIX=/home/mypc/x264./configure --prefix=$PREFIX \--enable-static \--enable-pic \--disable-asm \--disable-cli \--host=arm-linux \--cross-prefix=$PREBUILT/linux-x86/bin/arm-linux-androideabi- \--sysroot=$PLATFORM
       有了libx264.a檔案,下一步就可以調用相應api做視頻編碼工作了。當然也可以統一使用ffmpeg做音視頻編碼,只需在編譯ffmpeg時將支援libx264選項開啟即可。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.