SGPlayer- 跨平台媒体播放器框架

网友投稿 1777 2022-10-23

SGPlayer- 跨平台媒体播放器框架

SGPlayer- 跨平台媒体播放器框架

SGPlayer

SGPlayer 是一款基于 AVPlayer、FFmpeg 的媒体资源播放器框架。支持360°全景视频,VR视频,RTMP、RTSP 等直播流;同时支持 iOS、macOS、tvOS 三个平台。

功能特点

支持播放360°全景视频。支持手势、传感器操控360°全景视频。支持双眼模式,具有畸变校正、色散校正。支持 iOS、macOS、tvOS。支持 H.264 硬件解码(VideoToolBox)。支持 RTMP、RTSP 等直播流。支持后台播放。支持选择音频轨道。支持控制音频输出音量。支持无损视频截图。支持近所有常用媒体格式。支持 Bitcode。极简的事件通知机制。

编译方式(2选1即可)

1.脚本编译

// iOSgit clone https://github.com/libobjc/SGPlayer.gitcd SGPlayersh compile-build.sh iOS// macOSgit clone https://github.com/libobjc/SGPlayer.gitcd SGPlayersh compile-build.sh macOS// tvOSgit clone https://github.com/libobjc/SGPlayer.gitcd SGPlayersh compile-build.sh tvOS

2.手动编译

步骤1 - 克隆项目并安装子模块git clone git@github.com:libobjc/SGPlayer.gitcd SGPlayergit submodule update –init –recursive步骤2 - 手动编译 FFmpeg 并放在指定目录下// 将FFmpeg编译出的.a静态库分别放在对应目录/SGPlayer/Classes/Core/SGFFPlayer/ffmpeg/lib-iOS        // iOS/SGPlayer/Classes/Core/SGFFPlayer/ffmpeg/lib-macOS      // macOS/SGPlayer/Classes/Core/SGFFPlayer/ffmpeg/lib-tvOS       // tvOS

使用示例

详细使用示例参见 demo

iOS依赖

SGPlayer.frameworkSGPlatform.framework OptionalCoreMedia.frameworkAudioToolBox.frameworkVideoToolBox.frameworklibiconv.tbdlibbz2.tbdlibz.tbd

macOS依赖

SGPlayer.frameworkSGPlatform.framework OptionalCoreMedia.frameworkAudioToolBox.frameworkVideoToolBox.frameworkVideoDecodeAcceleration.frameworklibiconv.tbdlibbz2.tbdlibz.tbdlibizma.tbd

基础视屏播放

高级设置

// 三种预设播放内核选择策略self.player.decoder = [SGPlayerDecoder defaultDecoder];     // 默认配置,混合使用 AVPlayer和FFmpeg,根据容器格式动态选择播放内核self.player.decoder = [SGPlayerDecoder AVPlayerDecoder];    // 仅使用 AVPlayerself.player.decoder = [SGPlayerDecoder FFmpegDecoder];      // 仅使用 FFmpeg// 单个容器格式单独配置示例self.player.decoder.decodeTypeForMPEG4 = SGDecoderTypeFFmpeg;      // 使用 FFmpeg 播放 mp4 文件// 开启 FFmpeg 硬解self.player.decoder.hardwareAccelerateEnableForFFmpeg = YES;// 进入 VR眼镜 模式self.player.displayMode = SGDisplayModeBox;// 设置后台播放模式// 如果需要后台播放,需将项目的 Background Modes 打开并勾选 Audio 选项, 并将 AVAudioSession 的 Category 设为AVAudioSessionCategoryPlaybackself.player.backgroundMode = SGPlayerBackgroundModeAutoPlayAndPause;  // 自动暂停及恢复self.player.backgroundMode = SGPlayerBackgroundModeContinue;          // 继续播放

演示

iOS

Plane video

360° panorama video

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:布隆过滤器面试如何快速判断元素是否在集合里
下一篇:聊聊Mybatis的类型转换注册类TypeHandlerRegistry
相关文章

 发表评论

暂时没有评论,来抢沙发吧~