• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

SGPlayer: SGPlayer 是一款基于 AVPlayer、FFmpeg 的媒体资源播放器框架。支持360°全 ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

SGPlayer

开源软件地址:

https://gitee.com/libobjc/SGPlayer

开源软件介绍:

(banner)

Build StatusPlatformSupport

原理详解 | 视频下载

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://git.oschina.net/libobjc/SGPlayer.gitcd SGPlayersh compile-build.sh iOS// macOSgit clone https://git.oschina.net/libobjc/SGPlayer.gitcd SGPlayersh compile-build.sh macOS// tvOSgit clone https://git.oschina.net/libobjc/SGPlayer.gitcd SGPlayersh compile-build.sh tvOS

2.手动编译

  • 步骤1 - 克隆项目并安装子模块
git clone https://git.oschina.net/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

编译完成效果(仅目标平台的静态库存在即可)

ffmpeg-libs

使用示例

  • 详细使用示例参见 demo

iOS依赖

  • SGPlayer.framework
  • SGPlatform.framework Optional
  • CoreMedia.framework
  • AudioToolBox.framework
  • VideoToolBox.framework
  • libiconv.tbd
  • libbz2.tbd
  • libz.tbd

macOS依赖

  • SGPlayer.framework
  • SGPlatform.framework Optional
  • CoreMedia.framework
  • AudioToolBox.framework
  • VideoToolBox.framework
  • VideoDecodeAcceleration.framework
  • libiconv.tbd
  • libbz2.tbd
  • libz.tbd
  • libizma.tbd

基础视屏播放

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// 播放360度全景视频、VR视频[self.player replaceVideoWithURL:contentURL videoType:SGVideoTypeVR];// 播放[self.player play];

高级设置

// 三种预设播放内核选择策略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

  • 普通视频

ios-i-see-fire

  • 360度全景视频

ios-google-vr

  • 360度全景视频双眼模式

ios-google-vr-box

macOS

  • 普通视频

mac-i-see-fire

  • VR全景视频

mac-google-vr

联系方式

  • Email : [email protected]
  • Twitter : CoderSingle
  • Weibo : 程序员Single
  • QQ Group : 616349536

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap