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

IOS 使用IJKPlayer时进行Options设置方法

2016-01-29 16:09 621 查看
在对ijkplayer进行使用调试的时候(使用FFMoviePlayer),我发现输出栏中有:

===== options =====
player-opts : start-on-prepared            = 1
player-opts : overlay-format               = fcc-i420
player-opts : max-fps                      = 60
player-opts : framedrop                    = 0
player-opts : videotoolbox-max-frame-width = 960
player-opts : videotoolbox                 = 1
player-opts : video-pictq-size             = 3
format-opts : ijkinject-opaque             = 140449007406288
format-opts : user-agent                   = ijkplayer
format-opts : auto_convert                 = 0
format-opts : timeout                      = 30000000
format-opts : reconnect                    = 1
format-opts : safe                         = 0
codec-opts  : skip_frame                   = 0
codec-opts  : skip_loop_filter             = 0
===================


这就是当前player的一些选项,那么我们再看看ffoptions中包含的东西:

typedef enum IJKFFOptionCategory {
kIJKFFOptionCategoryFormat = 1,
kIJKFFOptionCategoryCodec  = 2,
kIJKFFOptionCategorySws    = 3,
kIJKFFOptionCategoryPlayer = 4,
} IJKFFOptionCategory;


这里的category就是对应上面的option的,

那么我们怎么改变这些参数呢,我们继续往下看FFoptions:

我们可以看到,作者提供了这样的设置接口给我们

- (void)setOptionValue:(NSString *)value
forKey:(NSString *)key
ofCategory:(IJKFFOptionCategory)category;

- (void)setOptionIntValue:(int64_t)value
forKey:(NSString *)key
ofCategory:(IJKFFOptionCategory)category;


那么根据这个我们就可以在初始化播放器时对options进行调整:

比如这样:

“`

IJKFFOptions *options = [IJKFFOptions optionsByDefault];

[options setOptionIntValue:IJK_AVDISCARD_DEFAULT forKey:@”skip_frame” ofCategory:kIJKFFOptionCategoryCodec];

[options setOptionIntValue:IJK_AVDISCARD_DEFAULT forKey:@”skip_loop_filter” ofCategory:kIJKFFOptionCategoryCodec];

[options setOptionIntValue:1 forKey:@”videotoolbox” ofCategory:kIJKFFOptionCategoryPlayer];

[options setOptionIntValue:60 forKey:@”max-fps” ofCategory:kIJKFFOptionCategoryPlayer];

_player = [[IJKFFMoviePlayerController alloc] initWithContentURL:self.url withOptions:options];

“`

这里要注意几个地方

Options初始化不能少[IJKFFOptions optionsByDefault],然后可能由于一些误解可能会使用错函数:setvalue forkey,然后忽略了category,导致设置不成功。

至于ffmpeg内部的options呢就只能自己去configure里面设置了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: