ffmpeg for ios 交叉編譯 (支援i686 armv7 armv7s) 包含lame支援

來源:互聯網
上載者:User

http://www.cppblog.com/Khan/archive/2012/12/13/196216.html

由於項目還需要mp3 音頻編碼,  所以先需要下載lame源碼搭建交叉環境, 在lame目錄下錄入如下編譯指令碼  build.sh 1 #! /bin/sh
 2 
 3 
 4 SDK_VERSION="6.0"
 5 
 6 rm -rf build
 7 mkdir build
 8 
 9 function build_lame()
10 {
11     make distclean
12 
13     ./configure \
14         CFLAGS="-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/${SDK}.platform/Developer/SDKs/${SDK}${SDK_VERSION}.sdk" \
15         CC="/Applications/Xcode.app/Contents/Developer/Platforms/${SDK}.platform/Developer/usr/bin/gcc -arch ${PLATFORM}" \
16         --prefix=/Users/khan/Downloads/lame-3.99.5 \
17         --host="arm-apple-darwin9" \
18         --disable-shared \
19         --enable-static \
20         --disable-decoder \
21         --disable-frontend
22 
23     make
24     cp "libmp3lame/.libs/libmp3lame.a" "build/libmp3lame-${PLATFORM}.a"
25 }
26 
27 PLATFORM="i686"
28 SDK="iPhoneSimulator"
29 build_lame
30 
31 #armv6和armv7 比較難共存
32 #PLATFORM="armv6"
33 #SDK="iPhoneOS"
34 #build_lame
35 
36 PLATFORM="armv7"
37 SDK="iPhoneOS"
38 build_lame
39 
40 PLATFORM="armv7s"
41 SDK="iPhoneOS"
42 build_lame
43 
44 lipo -create build/* -output build/libmp3lame.a首先去https://github.com/yuvi/gas-preprocessor/下載gas-preprocessor.pl, 然後 複製到 /usr/sbin/目錄下(當然, 你可以放在任何目錄下, 只要保證--as='/${path}/gas-preprocessor.pl'路徑正確)

http://ffmpeg.org/download.html 下載ffmpeg源碼, git或者直接下載

終端執行以下指令#armv7s./configure --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffserver --enable-pic --enable-cross-compile --enable-decoder=h264 --enable-libmp3lame \            --arch=arm --disable-asm \            --target-os=darwin --cc=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc \            --as='gas-preprocessor.pl /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc' \            --sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk \            --cpu=cortex-a8 \            --extra-cflags='-arch armv7s -I/Users/khan/Downloads/lame-3.99.5/include ' \            --extra-ldflags='-arch armv7s -L/Users/khan/Downloads/lame-3.99.5/build -lmp3lame  -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk' \            --prefix=/Users/khan/Downloads/ffmpeg/arm7s.lib
make
make install

make clean

#armv7./configure --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffserver --enable-pic --enable-cross-compile --enable-decoder=h264 --enable-libmp3lame \            --disable-asm  --arch=arm \            --target-os=darwin --cc=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc \            --as='gas-preprocessor.pl /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc' \            --sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk \            --cpu=cortex-a8 \            --extra-cflags='-arch armv7 -I/Users/khan/Downloads/lame-3.99.5/include ' \            --extra-ldflags='-arch armv7 -L/Users/khan/Downloads/lame-3.99.5/build -lmp3lame  -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk' \            --prefix=/Users/khan/Downloads/ffmpeg/arm7.lib
make
make install

make clean

#i686./configure --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffserver --enable-pic --enable-cross-compile --enable-decoder=h264 --enable-libmp3lame \            --disable-asm --arch=i686 --cpu=i686 --disable-armv5te \            --target-os=darwin --cc=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc \            --as='gas-preprocessor.pl /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc' \            --sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.0.sdk \            --extra-ldflags=-L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.0.sdk/usr/lib/system \            --extra-cflags='-arch i686 -I/Users/khan/Downloads/lame-3.99.5/include ' \            --extra-ldflags='-arch i686 -L/Users/khan/Downloads/lame-3.99.5/build -lmp3lame ' \            --prefix=/Users/khan/Downloads/ffmpeg/i686.libmake
make install
make clean

--prefix=/Users/khan/Downloads/ffmpeg/i686.lib/裡為編譯後的目標檔案
然後將各個目錄下的lib lipo一下 就可以同時在模擬器和各種該指令集的真機上運行了

lipo -create i686.lib/lib/libavcodec.a arm7.lib/lib/libavcodec.a arm7s.lib/lib/libavcodec.a       -output build/libavcodec.alipo -create i686.lib/lib/libavdevice.a arm7.lib/lib/libavdevice.a arm7s.lib/lib/libavdevice.a    -output build/libavdevice.alipo -create i686.lib/lib/libavfilter.a arm7.lib/lib/libavfilter.a arm7s.lib/lib/libavfilter.a           -output build/libavfilter.alipo -create i686.lib/lib/libavformat.a arm7.lib/lib/libavformat.a arm7s.lib/lib/libavformat.a  -output build/libavformat.alipo -create i686.lib/lib/libavutil.a arm7.lib/lib/libavutil.a arm7s.lib/lib/libavutil.a                 -output build/libavutil.alipo -create i686.lib/lib/libswresample.a arm7.lib/lib/libswresample.a arm7s.lib/lib/libswresample.a   -output build/libswresample.alipo -create i686.lib/lib/libswscale.a arm7.lib/lib/libswscale.a arm7s.lib/lib/libswscale.a         -output build/libswscale.a

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.