LoginSignup
0
1

More than 5 years have passed since last update.

SGPlayer - A powerful media player framework for iOS, macOS, and tvOS. Support 360° panorama video, VR video. RTMP streaming.

Last updated at Posted at 2017-04-19

(banner)

Build Status
Platform
Support

View SGPlayer on GitHub
Principle

SGPlayer

  • SGPlayer is a powerful media player framework for iOS, macOS, and tvOS. based on AVPlayer and FFmpeg. Support 360° panorama video, VR video. RTMP streaming.

Features

  • 360° panorama video.
  • Gestures and sensors control vr video.
  • distortion correction in cardboard mode.
  • Support iOS, macOS, and tvOS.
  • H.264 hardware accelerator (VideoToolBox).
  • RTMP, RTSP streamings.
  • Background playback mode.
  • Selected audio track.
  • Adjust the volume.
  • Capture video artwork.
  • Bitcode support.
  • Simplest callback handle.

Build Instructions (Choose one of the way)

Method 1. Using build script


// iOS
git clone https://github.com/libobjc/SGPlayer.git
cd SGPlayer
sh compile-build.sh iOS

// macOS
git clone https://github.com/libobjc/SGPlayer.git
cd SGPlayer
sh compile-build.sh macOS

// tvOS
git clone https://github.com/libobjc/SGPlayer.git
cd SGPlayer
sh compile-build.sh tvOS

Method 2. Manually build

  • Step 1 - clone and init submodule.
git clone git@github.com:libobjc/SGPlayer.git
cd SGPlayer
git submodule update --init --recursive

  • Step 2 - build FFmpeg and add libs to the corresponding directory.

/SGPlayer/Classes/Core/SGFFPlayer/ffmpeg/lib-iOS        // iOS
/SGPlayer/Classes/Core/SGFFPlayer/ffmpeg/lib-macOS      // macOS
/SGPlayer/Classes/Core/SGFFPlayer/ffmpeg/lib-tvOS       // tvOS

check build results

ffmpeg-libs

Usage

  • more examples in the demo applications.

Dependencies


// 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

Basic video playback


self.player = [SGPlayer player];

// register callback handle.
[self.player registerPlayerNotificationTarget:self stateAction:@selector(stateAction:) progressAction:@selector(progressAction:) playableAction:@selector(playableAction:) errorAction:@selector(errorAction:)];

// display view tap action.
[self.player setViewTapAction:^(SGPlayer * _Nonnull player, SGPLFView * _Nonnull view) {
NSLog(@"player display view did click!");
}];

// playback plane video.
[self.player replaceVideoWithURL:contentURL]; // 方式1
[self.player replaceVideoWithURL:contentURL videoType:SGVideoTypeNormal]; // 方式2

// playback 360° panorama video.
[self.player replaceVideoWithURL:contentURL videoType:SGVideoTypeVR];

// start playing
[self.player play];

Advanced settings


// selected playback core.
self.player.decoder = [SGPlayerDecoder defaultDecoder];     // default config,Together with AVPlayer and FFmpeg.
self.player.decoder = [SGPlayerDecoder AVPlayerDecoder];    // only use AVPlayer
self.player.decoder = [SGPlayerDecoder FFmpegDecoder];      // only use FFmpeg

// set the specified format playback core.
self.player.decoder.decodeTypeForMPEG4 = SGDecoderTypeFFmpeg;      // use FFmoeg play mp4 files.

// open FFmpeg hardware accelerate.
self.player.decoder.hardwareAccelerateEnableForFFmpeg = YES;

// enter cardboard mode
self.player.displayMode = SGDisplayModeBox;

// set background mode.
// if allow background mode, you should open 'Background Modes' and check 'Audio' option, and set AVAudioSession Category to AVAudioSessionCategoryPlayback
self.player.backgroundMode = SGPlayerBackgroundModeAutoPlayAndPause;  // auto play and pause.
self.player.backgroundMode = SGPlayerBackgroundModeContinue;          // continue.

Screenshots

iOS

  • Plane video

ios-i-see-fire

  • 360° panorama video

ios-google-vr

  • Cardboard mode

ios-google-vr-box

macOS

  • Plane video

mac-i-see-fire

  • 360° panorama video

mac-google-vr

Communication

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1