一直在電商圈混跡,最近想自己找找視頻圖像方面的項目做做練手,於是打算從FFmpeg這個比較流行的框架開始,但是竟然因爲一個“GNU assembler not found, install/update gas-preprocessor”問題,困擾了我一整天,所以寫篇博客記錄編譯過程。希望能幫到打算做嘗試的朋友們。
下載gas-preprocessor.pl
github地址:https://github.com/libav/gas-preprocessor
官方最新地址,github上也有以下其他的地址,但是其gas-preprocessor是幾年前的,這種日期的gas-preprocessor在編譯的時候會出現文章開始說的“GNU assembler not found, install/update gas-preprocessor”的問題。所以一定要下載最新的。
- 複製gas-preprocessor.pl到/usr/sbin下;
修改文件權限,終端輸入以下信息:chmod 777 /usr/sbin/gas-preprocessor.pl
修改gas-preprocessor, 打開gas-preprocessor根據項目需求進行改動
use strict;
# Apple's gas is ancient and doesn't support modern preprocessing features like
# .rept and has ugly macro syntax, among other things. Thus, this script
# implements the subset of the gas preprocessor used by x264 and ffmpeg
# that isn't supported by Apple's gas.
下載安裝yasm
下載yasm最新版本:http://www.tortall.net/projects/yasm/releases/
cd 進入你的yasm最新版中,執行以下命令行代碼:
MacBook-Pro:FFmpeg-iOS-build-script-master wenzhan$ ./configure
MacBook-Pro:FFmpeg-iOS-build-script-master wenzhan$ make
MacBook-Pro:FFmpeg-iOS-build-script-master wenzhan$ sudo make install
下載FFmpeg最新版本
FFmpeg官方地址:http://ffmpeg.org/download.html#build-mac
下載完成後,將FFmpeg放入到yasm目錄下。
運行build-ffmpeg.sh腳本
下載build-ffmpeg.sh:http://download.csdn.net/detail/perfect_promise/9435587
cd進入下載build-ffmpeg.sh目錄下,執行代碼:
MacBook-Pro:FFmpeg-iOS-build-script-master wenzhan$./build-preprocessor.sh
展示一下編譯結束的命令行:
building fat binaries...
lipo -create /Users/wenzhan/Downloads/FFmpeg-iOS-build-script-master/thin/arm64/lib/libavcodec.a /Users/wenzhan/Downloads/FFmpeg-iOS-build-script-master/thin/armv7/lib/libavcodec.a -output FFmpeg-iOS/lib/libavcodec.a
lipo -create /Users/wenzhan/Downloads/FFmpeg-iOS-build-script-master/thin/arm64/lib/libavdevice.a /Users/wenzhan/Downloads/FFmpeg-iOS-build-script-master/thin/armv7/lib/libavdevice.a -output FFmpeg-iOS/lib/libavdevice.a
lipo -create /Users/wenzhan/Downloads/FFmpeg-iOS-build-script-master/thin/arm64/lib/libavfilter.a /Users/wenzhan/Downloads/FFmpeg-iOS-build-script-master/thin/armv7/lib/libavfilter.a -output FFmpeg-iOS/lib/libavfilter.a
lipo -create /Users/wenzhan/Downloads/FFmpeg-iOS-build-script-master/thin/arm64/lib/libavformat.a /Users/wenzhan/Downloads/FFmpeg-iOS-build-script-master/thin/armv7/lib/libavformat.a -output FFmpeg-iOS/lib/libavformat.a
lipo -create /Users/wenzhan/Downloads/FFmpeg-iOS-build-script-master/thin/arm64/lib/libavutil.a /Users/wenzhan/Downloads/FFmpeg-iOS-build-script-master/thin/armv7/lib/libavutil.a -output FFmpeg-iOS/lib/libavutil.a
lipo -create /Users/wenzhan/Downloads/FFmpeg-iOS-build-script-master/thin/arm64/lib/libswresample.a /Users/wenzhan/Downloads/FFmpeg-iOS-build-script-master/thin/armv7/lib/libswresample.a -output FFmpeg-iOS/lib/libswresample.a
lipo -create /Users/wenzhan/Downloads/FFmpeg-iOS-build-script-master/thin/arm64/lib/libswscale.a /Users/wenzhan/Downloads/FFmpeg-iOS-build-script-master/thin/armv7/lib/libswscale.a -output FFmpeg-iOS/lib/libswscale.a
Done
文件夾中會多出一個FFmpeg-iOS的靜態庫文件,這就是我們編譯要得到的庫,如下
將FFmpeg拖入項目中就可以使用了。