Open Source iOS 360 Degree Panorama Video Player.

Overview

๐ŸŽบ ๐ŸŽบ ๐ŸŽบ ๐ŸŽบ ๐ŸŽบ ๐ŸŽบ ๐ŸŽบ ๐ŸŽบ ๐ŸŽบ ๐ŸŽบ ๐ŸŽบ The Metal with Swift 5.0 version is comming ๐ŸŽบ ๐ŸŽบ ๐ŸŽบ ๐ŸŽบ ๐ŸŽบ ๐ŸŽบ ๐ŸŽบ ๐ŸŽบ ๐ŸŽบ ๐ŸŽบ ๐ŸŽบ

360 VR Player

A Open Source, Ad-free, Native and Universal 360 dgree panorama video player for iOS.

SpaceAppStore

screenshot

About

HTY360Player is a 360 degree panorama video player for iOS.

Tutorial (Swift)

How to Create a 360 Video Player with OpenGL ES 3.0 and GLKit in iOS

Features

  • Play Online 360ยฐ Video

screenshot

  • Play Local 360ยฐ Video

screenshot

Todo

  • Metal version.

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add awesome feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

License

HTY360Player is available under the MIT license. See the LICENSE file for more info.

Comments
  • The media data could not be decoded on this device

    The media data could not be decoded on this device

    Getting this issue with SlateVideo360, however I think it is coming from this instead. My video plays fine on an iPhone 6, but on other devices like a 5c and a iPad, I get the error.

    Is this due to my video, or the code? Some sources like stack overflow suggest its an issue with the code http://stackoverflow.com/questions/26209099/error-domain-avfoundationerrordomain-code-11821-cannot-decode

    Thanks

    opened by SteveEdson 3
  • Added targeting area feature

    Added targeting area feature

    • Added HTY360Target class Class that rappresent a Target to acquire int targetId - target id if needed NSString name - target name float roll - the target center roll float yaw - the target center yaw double startTargetingTime - the starting time that the target can be acquired (eg. video length of 1 minute, the target visible from second 15) double endTargetingTime - the starting time that the target can be acquired (eg. video length of 1 minute, the target visible until second 42) float targetingAreaWidth - the width of the target area float targetingAreaHeight - the height of the target area

    • Added in HTY360PlayerVC.xib

      • targetAcquireLbl: Label that indicate whenever the target is acquired
      • targetImageView: Image view of a red target to show the current center position watched
      • currentYawAndRollView: View containing label (currentYawLbl, currentRollLbl) that show to the developer the current yaw and roll ad the center of the red target
    • Added in HTY360PlayerVC class // property for turn on or off the targeting @property (assign, nonatomic) BOOL canTargeting;

      // Hide or show the target image, the target acquire label and the current yaw and roll view

      • (void)setTargetVisiblity:(BOOL)visible;

      // Enable or disable the targeting function (set canTargeting boolean)

      • (void)setTargetingEnabled:(BOOL)enabled;

      // method called by HTYGLKVC for check if the user is acquiring a target passng yaw and roll

      • (void)checkTargetAcquiredInYaw:(float)yaw andRoll:(float)roll;

      // called when a target is acquired

      • (void)onTargetAcquired:(HTY360Target*)target;

      // method for demo, create a target in front of the video (looking straight where the camera is walking)

      • (void)createTarget;
    • Added in HTYGLKVC class // convert the current view matrix to yaw and roll center -(void)convertAngles:(GLKMatrix4)matrix;

    opened by MarkWarriors 1
  • Memory warning before crash

    Memory warning before crash

    Hi, great work! It's ok but some seconds after video starts, app crash with memory wornings!

    Log: HTY360Player[1802:660394] Received memory warning. Message from debugger: Terminated due to memory issue

    opened by marcoiacobelli 1
  • How to play local video like demo?

    How to play local video like demo?

    Hello, I want to play a local 360 video downloaded from Youtube as demo, but it seems that the player will treat it only as a normal video instead of 360 video, i.e. it doesn't support video panning by moving the phone anymore.

    How can I play local video like demo?

    opened by yenchenlin 1
  • Activating Open Collective

    Activating Open Collective

    Hi, I'm making updates for Open Collective. Either you or another core contributor signed this repository up for Open Collective. This pull request adds financial contributors from your Open Collective https://opencollective.com/HTY360Player โค๏ธ

    What it does:

    • adds a badge to show the latest number of financial contributors
    • adds a banner displaying contributors to the project on GitHub
    • adds a banner displaying all individuals contributing financially on Open Collective
    • adds a section displaying all organizations contributing financially on Open Collective, with their logo and a link to their website

    P.S: As with any pull request, feel free to comment or suggest changes.

    Thank you for your great contribution to the Open Source community. You are awesome! ๐Ÿ™Œ And welcome to the Open Collective community! ๐Ÿ˜Š

    Come chat with us in the #opensource channel on https://slack.opencollective.com - great place to ask questions and share best practices with other Open Source sustainers!

    opened by monkeywithacupcake 0
  • Prevent vertical rotation

    Prevent vertical rotation

    Hello Guys! Thanks for the wonderful library.

    I am using this library to play "Stereoscopic 360 Video" that is "Side by Side Stitched" and I don't want vertical rotation like normal "Monoscopic video". How do I prevent vertical rotation?

    Please help me guys! Thanks.

    opened by TeksniOS 0
  • How to get a front and back of a 360 video?

    How to get a front and back of a 360 video?

    Hey Hanton! Your library is very nice. I just love to use it. I am also working on 360 degree videos where your player works great.

    However, I need to render an equirectangular video format in a normal 2D field of view, and need to extract front and back part from equirectangular 360 video.

    For example:

    I am developing a video player that has 3 options to select.

    1. Front Mode
    2. Back Mode
    3. 360 Mode

    Here, "360 Mode" is what your library serves perfectly. However, I also need to know how to separate front and back parts from an equirectangular video.

    I need to split the equirectangular video on the edge and provide a front and back view.

    So my question is,

    In order to do above, what sort of transformation operations are required to be performed on input video (equirectangular format), so that I can get the cropped normal field of view?

    Any help would be much appreciated, Brother. Thanks.

    opened by TeksniOS 0
  • 'Could not load NIB in bundle ... .app (loaded) with name 'HTY360PlayerVC'

    'Could not load NIB in bundle ... .app (loaded) with name 'HTY360PlayerVC'

    Hello I have a question about integration with CocoaPods, I am getting the fatal error listed in the title every time I try to present the player.

    func testHTY360Player() {
    
            guard let hty360Player = HTY360PlayerVC(nibName: "HTY360PlayerVC", bundle: nil, url: url)
                    else { return }
            present(hty360Player, animated: true, completion: nil)
    
        }
    

    Additionally I have tried to get the bundle this way. Unfortunately that gets an empty bundleURL, so you never get to the bundle.

    let podBundle = Bundle(for: HTY360PlayerVC.classForCoder())
    if  let bundleURL = podBundle.url(forResource: "HTY360Player", withExtension: "bundle"),
        let bundle = Bundle(url: bundleURL) {
            // ... never gets to here
    }
    

    Thank you for your consideration in advance with regards to this matter, I really appreciate it.

    Best, Henry

    opened by hdinhof1 1
  • Can we have a Tiny Planet view ( Stereographic )

    Can we have a Tiny Planet view ( Stereographic )

    the way I seem is at esGenSphere, where the pixel vertices holding place..

    But I don't know how to change it, or how it happens, or whats algorithm behinds that.

    Thanks for helping & let me know & learn. please..

    opened by NewCodi 0
NYT360Video plays 360-degree video streamed from an AVPlayer on iOS.

NYT360Video 360ยบ video playback from The New York Times NYT360Video plays spherical 360ยบ video, allowing the user to explore the video via pan gesture

The New York Times 270 Nov 23, 2022
NYT360Video plays 360-degree video streamed from an AVPlayer on iOS.

NYT360Video 360ยบ video playback from The New York Times NYT360Video plays spherical 360ยบ video, allowing the user to explore the video via pan gesture

The New York Times 270 Nov 23, 2022
360 video player for iOS written in swift - a subset of SceneKit that works

DDDKit An open source library to support 360 videos and pictures. It's designed as a generic 3D library that you can use for much more! Example of use

Guillaume Sabran 123 Aug 9, 2022
Musical Player - A Simple Musical Player For iOS

Musical_Player The app is a musical player. It was written as an task for a mobi

null 1 Nov 26, 2022
BMPlayer - A video player for iOS, based on AVPlayer, support the horizontal, vertical screen

A video player for iOS, based on AVPlayer, support the horizontal, vertical screen. support adjust volume, brightness and seek by slide, support subtitles.

Eliyar Eziz 1.8k Jan 4, 2023
โ–ถ๏ธ video player in Swift, simple way to play and stream media on iOS/tvOS

Player Player is a simple iOS video player library written in Swift. Looking for an obj-c video player? Check out PBJVideoPlayer (obj-c). Looking for

patrick piemonte 2k Jan 2, 2023
VGPlayer - ๐Ÿ“บ A simple iOS video player by Vein.

Swift developed based on AVPlayer iOS player,support horizontal gestures Fast forward, pause, vertical gestures Support brightness and volume adjustment, support full screen, adaptive screen rotation direction.

Wen Rong 399 Dec 23, 2022
FWVideoPlayer is video Player for iOS in Swift.

FWVideoPlayer Desc FWVideoPlayer is video Player for iOS in Swift. It can play video and audio. You can use it easy. Example To run the example projec

null 1 Oct 15, 2021
iOS video player for trailer. You can customize layout for the control panel. Support PiP and DRM.

iOS video player for trailer. You can customize layout for the control panel. Support PiP and DRM.

Abe Wang 11 Nov 7, 2022
Yattee: video player for Invidious and Piped built for iOS 15, tvOS 15 and macOS Monterey

Video player with support for Invidious and Piped instances built for iOS 15, tvOS 15 and macOS Monterey.

Yattee 1k Dec 27, 2022
YouTube video player for iOS, tvOS and macOS

About XCDYouTubeKit is a YouTube video player for iOS, tvOS and macOS. Are you enjoying XCDYouTubeKit? You can say thank you with a tweet. I am also a

Cรฉdric Luthi 2.9k Jan 7, 2023
Versatile Video Player implementation for iOS, macOS, and tvOS

News ?? - Since 2.1.3 VersaPlayer now supports iOS, macOS, and tvOS Example Installation Usage Basic Usage Adding Controls Advanced Usage Encrypted Co

Jose Quintero 723 Dec 26, 2022
Yattee: video player for Invidious and Piped built for iOS, tvOS and macOS

Video player for Invidious and Piped instances built for iOS, tvOS and macOS. Features Native user interface built with SwiftUI Multiple instances and

Yattee 1.1k Jan 8, 2023
Overlay alpha channel video animation player view using Metal.

Overlay alpha channel video animation player view using Metal. Example To run the example project, clone the repo, and run pod install from the Exampl

noppefoxwolf 244 Jan 1, 2023
๐Ÿ“ฝ A video player for SwiftUI, support for caching, preload and custom control view.

Features QuickStart Advances Installation Requirements License Demo Clone or download the project. In the terminal, run swift package resolve. Open Vi

Gesen 437 Jan 5, 2023
SuperVideoPlayer is video player in Objc.

SuperVideoPlayer Example To run the example project, clone the repo, and run pod install from the Example directory first. Requirements Installation S

null 1 Oct 19, 2021
IINA is the modern video player for macOS.

IINA IINA is the modern video player for macOS. Website ยท Releases ยท Telegram Group Features Based on mpv, which provides the best decoding capacity o

Jesse Chan 0 Nov 2, 2021
YoutubeKit is a video player that fully supports Youtube IFrame API and YoutubeDataAPI for easily create a Youtube app

YoutubeKit YoutubeKit is a video player that fully supports Youtube IFrame API and YoutubeDataAPI to easily create Youtube applications. Important Ref

Ryo Ishikawa 555 Dec 28, 2022
WatchTube: a standalone WatchOS youtube player utilizing Download API for search data and video streaming

WatchTube is a standalone WatchOS youtube player utilizing Download API for sear

WatchTubeTeam 11 May 30, 2022