GitHub - SGPlayer
SGPlayer是一个强大的媒体资源播放器框架,内核由AVPlayer、FFmpeg组成,开题报告,通过播放内核选择策略动态选择最优播放内核,并且可以自定义内核选择策略。
功能特点支持VR全景视频播放
支持手势、传感器操控VR全景视频
支持VR眼镜双眼模式,并具有边缘畸变校正功能
支持iOS、macOS、TVos
支持H.264硬解解码(VideoToolBox)
支持选择软件解码、硬件解码
支持RTMP、RTSP等直播流
支持所有常见媒体格式
支持选择视频图像缩放方式
支持选择音频轨道
支持后端播放
支持调整音频输出音量
支持无损视频截图
支持Bitcode
极简的时间通知机制
编译方式1.脚本编译 // iOS git clone git@github.com:libobjc/SGPlayer.git cd SGPlayer git submodule update --init --recursive sh build.sh iOS // macOS git clone git@github.com:libobjc/SGPlayer.git cd SGPlayer git submodule update --init --recursive sh build.sh macOS // tvOS git clone git@github.com:libobjc/SGPlayer.git cd SGPlayer git submodule update --init --recursive sh build.sh tvOS 2.手动编译步骤1 - 克隆项目并安装子模块
git clone git@github.com:libobjc/SGPlayer.git cd SGPlayer git submodule update --init --recursive步骤2 - 手动编译FFmpeg并放在指定目录下
// 将FFmpeg编译出的.a静态库分别放在对应目录 // iOS /SGPlayer/Classes/Core/SGFFPlayer/ffmpeg/lib-iOS // macOS /SGPlayer/Classes/Core/SGFFPlayer/ffmpeg/lib-macOS // tvOS /SGPlayer/Classes/Core/SGFFPlayer/ffmpeg/lib-tvOS编译完成效果图(仅目标平台的静态库存在即可)
使用示例详细使用示例参见demo
基础视屏播放 self.player = [SGPlayer player]; // 注册事件通知 [self.player registerPlayerNotificationTarget:self stateAction:@selector(stateAction:) progressAction:@selector(progressAction:) playableAction:@selector(playableAction:) errorAction:@selector(errorAction:)]; // 视频画面点击事件 [self.player setViewTapAction:^(SGPlayer * _Nonnull player, SGPLFView * _Nonnull view) { NSLog(@'player display view did click!'); }]; // 播放普通视频 (2种方式2选1即可) [self.player replaceVideoWithURL:contentURL]; // 方式1 [self.player replaceVideoWithURL:contentURL videoType:SGVideoTypeNormal]; // 方式2 // 播放VR全景视频 [self.player replaceVideoWithURL:contentURL videoType:SGVideoTypeVR]; // 播放 [self.player play]; 高级设置 // 三种预设播放内核选择策略 self.player.decoder = [SGPlayerDecoder defaultDecoder]; // 默认配置,混合使用AVPlayer和FFmpeg,论文,根据容器格式动态选择播放内核 self.player.decoder = [SGPlayerDecoder AVPlayerDecoder]; // 仅使用AVPlayer self.player.decoder = [SGPlayerDecoder FFmpegDecoder]; // 仅使用FFmpeg // 单个容器格式单独配置示例 self.player.decoder.mpeg4Format = SGDecoderTypeFFmpeg; // 使用FFmpeg播放mp4文件 // 开启FFmpeg硬解 self.player.decoder.ffmpegHardwareDecoderEnable = YES; // 进入VR眼镜模式 self.player.displayMode = SGDisplayModeBox; // 设置后端播放模式 self.player.backgroundMode = SGPlayerBackgroundModeAutoPlayAndPause; // 自动暂停及恢复 self.player.backgroundMode = SGPlayerBackgroundModeContinue; // 继续播放 效果演示iOS普通视频
VR全景视频
VR全景视频双眼模式
macOS普通视频
VR全景视频
github地址:
https://github.com/libobjc/SGPlayer