All Projects → adrenak → Gpuvideoplayer

adrenak / Gpuvideoplayer

Licence: mit
Fast video playback on Unity using GPU Decoding

Projects that are alternatives of or similar to Gpuvideoplayer

Nexplayer unity plugin
Stream videos in HLS & DASH with Widevine DRM using NexPlayer Video Streaming Player SDK for Unity on Android & iOS devices
Stars: ✭ 73 (-10.98%)
Mutual labels:  unity3d, video-player
Yuview
The Free and Open Source Cross Platform YUV Viewer with an advanced analytics toolset
Stars: ✭ 665 (+710.98%)
Mutual labels:  video-player, hevc
Unet Controller
A CharacterController based controller for Unity's new Networking system
Stars: ✭ 75 (-8.54%)
Mutual labels:  unity3d
1 Character Movement
The first section of the course. You will learn everything required to build a simple movement system in your RPG, creating the core experience. http://gdev.tv/rpggithub
Stars: ✭ 81 (-1.22%)
Mutual labels:  unity3d
Akvj
Demo project for Akvfx (Azure Kinect plugin for Unity)
Stars: ✭ 79 (-3.66%)
Mutual labels:  unity3d
3dxrayshader unity
Surface shader. Clips a Model with given plane , applies fresnel on clipped part and highlights the cross section.
Stars: ✭ 73 (-10.98%)
Mutual labels:  unity3d
Fancyscrollview
[Unity] A scrollview component that can implement highly flexible animations.
Stars: ✭ 1,216 (+1382.93%)
Mutual labels:  unity3d
Msgpack Unity3d
MessagePack and JSON serializer for Unity3D
Stars: ✭ 74 (-9.76%)
Mutual labels:  unity3d
Larkplayer
🚀 A lightweight & flexible web player :)
Stars: ✭ 82 (+0%)
Mutual labels:  video-player
Rex Diagnostics
Unity extension that enables expression evaluation at runtime to facilitate testing and debugging.
Stars: ✭ 78 (-4.88%)
Mutual labels:  unity3d
Atlasimage
AtlasImage is a graphic component use SpriteAtlas for uGUI. In addition, add useful sprite selector and border editor to the inspector.
Stars: ✭ 81 (-1.22%)
Mutual labels:  unity3d
Weaver
Weaver is a code weaving framework built right into Unity Engine. Based heavily off of Fody.
Stars: ✭ 78 (-4.88%)
Mutual labels:  unity3d
Exoplayer Wrapper
📺 Android library, ExoPlayer wrapper (2017)
Stars: ✭ 77 (-6.1%)
Mutual labels:  video-player
Unitycsvutil
Lightweight but type safe CSV serialise/deserialise of objects
Stars: ✭ 80 (-2.44%)
Mutual labels:  unity3d
Bdframework.core
[中]Simple! Easy! Powerful Unity3d game workflow! Unity3d framework:c# hotfix(ILRuntime)、asset manager、ui workflow、network debug... and so on
Stars: ✭ 1,196 (+1358.54%)
Mutual labels:  unity3d
Brainiac
Behaviour tree editor for Unity3D
Stars: ✭ 81 (-1.22%)
Mutual labels:  unity3d
Unity3d Dynamicallyloadinganimation
👾 Unity3D Loading and unloading animations at runtime (Example)
Stars: ✭ 74 (-9.76%)
Mutual labels:  unity3d
Proceduralcity
Unity demo that uses a few tricks to build random nice-looking 3D cities
Stars: ✭ 77 (-6.1%)
Mutual labels:  unity3d
Abmediaview
Media view which subclasses UIImageView, and can display & load images, videos, GIFs, and audio and from the web, and has functionality to minimize from fullscreen, as well as show GIF previews for videos.
Stars: ✭ 79 (-3.66%)
Mutual labels:  video-player
Temporalreprojectionexample
Temporal reprojection example for Unity
Stars: ✭ 82 (+0%)
Mutual labels:  unity3d

Note .

This repository is not being actively maintained. Issues may not be addressed.

GPUVideoPlayer

Alternative to Unity's VideoPlayer component. Run HEVC/H265 videos with GPU decoding, lower loading times and better performance.

API/Usage

The GPUVideoPlayer class derives from MonoBehaviour and needs to be on the scene. GPUVideoPlayer component also provides some primitive auto play features.

Methods:

  • Load(string) : void
    Where the passed parameter is the URL or path of the video
  • Play() : bool
    Which plays (or resumes) the video playback and returns a boolean based on whether the command was successful
  • Pause() : bool
    Pauses the video and returns if the command was successful
  • Stop() : bool
    Stops the video playback and returns if the command was successful
  • GetPlaybackRate() : double
    Returns the rate at which the video is being played
  • GetDuration() : long
    Returns the length of the video in 1/10^7 seconds
  • SeekByRatio(float ratio) : bool
    Sets the position of the video player at ratio completion stage and returns if the attempt was successful
  • SeekByTime(long position) : bool
    Sets the position of the video player at position time. position is in 1/10^7 second units

C# Properties:

  • MediaTexture
    Returns the Texture2D object that is updated by the plugin with video frames
  • MediaDescription
    Returns some information of the video being played. These include the video width, height, duration and whether it can be seeked on.

States and Events:

The states of a GPUVideoPlayer instance is represented using an enum called `GPUVideoPlayer.State' and has the following values:

  • Idle
  • Loaded
  • Failed
  • Playing
  • Paused
  • Stopped
  • Ended

The current state can be obtained using GPUVideoPlayer.MediaState which derives from UnityEvent<GPUVideoPlayer.State>

Performance

  • GPUVideoPlayer was tested with an 800mb 8192x4096 30FPS H265 MP4 video file. Loading took 195 ms. Video playback was at 30FPS with Unity's framerate at 60.

Getting Started

  • A simple video player app with load, pause, stop, 5sec FWD, 5sec BWD is available inside the Demo folder. The demo should be a good example to see how to get started.

Notes

  • Currently runs only on Microsoft Windows. Tested on 64 bit OS.
  • May require HEVC Video Extensions based on your usage.

Contact

@github
@www

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].