视频流媒体播放器EasyPlayerPro-iOS版本如何扩展Ijkplayer解码方式?

ijkplayer播放器原本是开源比较便捷的播放器,是一个基于FFmpeg的轻量级Android/iOS视频播放器。Ijkplayer框架中,解码方式的选择只有智能硬解(硬解失败,自动转软解)、软解两种,功能上讲,两种方式已够用,但偶尔也有需求让扩展成用户自选的三种解码方式:智能、硬解、软解。

EasyPlayerPro-iOS如何扩展Ijkplayer解码方式?

下面讲解如何在原框架中,扩展出“硬解”的选项,及其失败后对应的消息处理:

1、在 ff_ffplay_options.h 文件下修改“videotoolbox”的最大值,范围由0 ~ 1,扩展到0 ~ 2:

{ "videotoolbox",
	"VideoToolbox: enable",
	OPTION_OFFSET(videotoolbox),
	OPTION_INT(0, 0, 2)
}

2、在工程中创建播放器时,设置options选项,来选择视频的解码方式(默认是软解):

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

3、在实现选择解码方式的方法之前,需要先创建一个硬解失败的标志位,通过判断它来决定是否需要发送硬解失败的错误提示:
在 ff_ffpipeline.h 中,修改结构体:IJKFF_Pipeline 添加布尔值 * bool video_decoder_from_ios_videotoolbox_failed;*

EasyPlayer播放器播放效果:

EasyPlayerJS.png

猜你喜欢

转载自blog.csdn.net/TsingSee/article/details/107682559