您的位置:首页 > 移动开发 > IOS开发

FFmpeg框架在iOS平台上的编译和使用

2016-12-05 17:18 519 查看

编译适用于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];

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  FFmpeg