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





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 [email protected]: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





    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];
    
    

    고급 설정


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


  • 360° panorama video


  • Cardboard mode



  • macOS


  • Plane video


  • 360° panorama video



  • 커뮤니케이션


  • Email : ぃぼbjc@g마이 l. 이 m
  • Twitter : CoderSingle
  • 좋은 웹페이지 즐겨찾기