[iOS]FFmpeg框架在iOS平臺上的編譯和使用
阿新 • • 發佈:2017-06-28
_id hex ips selector 文件 str content pat tps 使用編譯完成的
使用框架
使用環境
- Mac OS Yosemite 10.10.5
開發工具
-
Xcode 7.0
-
Terminal
需要的文件鏈接
- gas-preprocessor
- yasm
- FFmpeg-iOS-build-script
- ffmpeg-2.8
- kxmovie
編譯適用於iOS平臺的FFmpeg靜態庫
-
打開終端
Terminal
進入下載後的gas-preprocessor
文件夾-
將文件夾內的
gas-preprocessor.pl
文件拷貝到/usr/sbin/
目錄下 -
修改
/usr/sbin/gas-preprocessor.pl
的文件權限為可執行權限chmod 777 /usr/sbin/gas-preprocessor.pl
-
-
執行
FFmpeg-iOS-build-script-master
文件夾內的build-ffmpeg.sh
-
編譯所有的版本
arm64
、armv7
、x86_64
的靜態庫./build-ffmpeg.sh
-
編譯支持
arm64
架構的靜態庫./build-ffmpeg.sh arm64
-
編譯適用於
armv7
和x86_64(64-bit simulator)
的靜態庫./build-ffmpeg.sh armv7 x86_64
-
編譯合並的版本
./build-ffmpeg.sh lipo
-
編譯靜態庫遇到的問題
-
yasm
沒有安裝的情況-
解決方案
1
-
進入下載後的
yasm
yasm
./configure && make -j 4 && sudo make install
-
-
解決方案
2
-
使用Homebrew包管理器,進行安裝
brew install yasm
-
-
測試是否安裝成功
yasm --verision
-
-
c test failed
的情況-
xcode
環境安裝過多,使用xcode-select
選擇默認的工具路徑/Applications/Xcode-beta.app
sudo xcode-select -s /Applications/Xcode-beta.app
-
使用編譯完成的FFmpeg
靜態庫
-
編譯成功後,即可將FFmpeg-iOS文件夾(包含include和lib)引入到Xcode內
-
加入依賴庫libz.lib
-
加入依賴庫libbz2.lib
-
加入依賴庫libiconv.lib
-
如有編譯錯誤,鏈接文件不存在
修改Build Setting Header Search Paths = $(SRCROOT)/LOFFmpegSample/FFmpeg-iOS/include
使用框架kxmovie
播放視頻
NSString *path = @"";
NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
// increase buffering for .wmv, it solves problem with delaying audio frames
if ([path.pathExtension isEqualToString:@"wmv"])
parameters[KxMovieParameterMinBufferedDuration] = @(5.0);
// disable deinterlacing for iPhone, because it‘s complex operation can cause stuttering
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
parameters[KxMovieParameterDisableDeinterlacing] = @(YES);
KxMovieViewController *vc = [KxMovieViewController movieViewControllerWithContentPath:path
parameters:parameters];
[self presentViewController:vc animated:YES completion:nil];
實例工程:
LOFFmpeg
[iOS]FFmpeg框架在iOS平臺上的編譯和使用