Skip to content

Stream videos in HLS & DASH with Widevine DRM using NexPlayer Video Streaming Player SDK for Unity on Android & iOS devices

Notifications You must be signed in to change notification settings

SiriusUnity3DGameEngine/NexPlayer_Unity_Plugin

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 

Repository files navigation

Unity video player


NexPlayer Unity Video Streaming Player Plugin

NexPlayer™ for Unity is a cross-platform video streaming player for Unity apps that supports both regular and 360 video playback across Android, iOS, Windows, macOS, Nintendo Switch™, VR Headsets and HTML5 Web Browsers/WebGL, with more devices being worked on everyday. NexPlayer's Unity video plugin is the only player supporting Widevine DRM-protected HLS & DASH streaming on all Android & iOS devices.

Nintendo Switch is a trademark of Nintendo.

This repository contains the NexPlayer™ Unity video streaming player plugin features list as well as an installation guide. If you want to get a copy of our fully working demo, contact us at our website.

Demo Examples

Our Unity video plugin allows for the introduction of new exciting scenes within your Unity projects. With our plugin, you can use in-game actions and objects to modify video content.

Play videos on any Unity Game Object


NexPlayer for Unity Video Player Sample Interface

Multi Streaming


Table of Contents


Features

The NexPlayer™ for Unity video streaming player plugin contains the latest features. As our Unity video plugin is developed entirely in-house, we can implement any desired functionalities.

We support the following features:

Overview

  • mp4 download and playback
  • HLS & DASH Streaming with ABR (Adaptive Bitrate)
  • AES-128 HLS
  • Widevine DRM for Streaming and Local Playback for Android & iOS
  • Server-Side & Client-Side Ad Insertion
  • Windows & macOS Editor (Easy to Use)
  • Up to 8K (UHD) Resolution
  • Rendering Videos on 2D & 3D Objects

Basic Features

  • Auto Playback
  • Play / Pause
  • Seek
  • Audio Volume Adjustment
  • Loop Playback
  • Configurable Aspect Ratio
  • Portrait / Landscape Orientation

Advanced Features

  • Adjustable Buffering Time
  • Offline Streaming Playback for HLS & DASH
  • Multi View Streaming (Display Multiple Synchronized Streams)
  • WebVTT Subtitles & CEA-608/708 Closed Captions
  • Multiple Audio & Subtitle Track Selection
  • Spread Video Across Multiple Objects
  • Content Information and Statistics (Audio & Video Bitrate, Codec, Average FPS, etc.)
  • Transparency and Chroma Support

360 Video Playback and Virtual Reality (VR)

  • Touch input which includes movement, and camera rotation
  • Gyroscope input to move the camera
  • Mouse input to move the camera
  • Automatic Ground Leveler to stabilize the video
  • Custom shaders to map 2D, 3D Over/Under and 3D Left/Right 360 videos
  • Compatible with VR libraries for Unity (Google Cardboard, Vive & Oculus)

Supported Platforms

Platform Supported Graphics APIs HLS DASH Local Inside App (Streaming Assets)
Android OpenGLES2, OpenGLES3 ✔️ ✔️ ✔️ ✔️
iOS Metal ✔️ ✔️ ✔️ ✔️
Windows DirectX11 / DirectX12 ✔️ ✔️ ✔️ ✔️
macOS Metal ✔️ ✔️ ✔️
HTML 5 WebGL 1.0 / WebGL 2.0 ✔️ ✔️
Nintendo Switch NVN ✔️ ✔️

Demo Installation Guide

Create or open an Unity project and import the NexPlayer™ Unity video streaming player plugin.

Quickstart_Step_0

Using NexPlayerSimple

NexPlayerSimple is a slimmed down version of our full-featured example player, NexPlayer. You can use it by following this steps:

  1. To add video playback to your scene, you will need to add a NexPlayerSimple component to your scene:
    1. Navigate to the NexPlayer menu and click "Create NexPlayer Simple Object"

      Create NexPlayer Simple
Object

    2. This will add a new GameObject (NexPlayerSimple) to your scene, which will contain the NexPlayerSimple component along with the NexPlayerRenderController component.
  2. NexPlayersimple supports any of the three supported RenderModes (RawImage, RenderTexture and Material Override). Using the inspector in the NexPlayerRenderController component, select the desired Render Mode and set the reference to that Render Object.

    Render Mode settings

Example: Using Raw Image

  1. Set the "Starting Render Mode" to Raw Image:

    Starting Render Mode: Material Override

  2. Create a Raw Image in your scene (GameObject → UI → Raw Image) and drag and drop it onto the Raw Image field of the NexPlayerRenderController component:

    Set the RawImage field

  3. Start the scene and the video will play on the Raw Image.

Example: Using Material Override

  1. Set the "Starting Render Mode" to Material Override:

    Starting Render Mode: Raw Image

  2. Create a cube in your scene (GameObject → 3D Object → Cube) and drag and drop it onto the Material Override field of the NexPlayerRenderController component:

    Create NexPlayer Simple
Object

  3. Start the scene and the video will play on the cube.

Using NexPlayer

NexPlayer is our full-featured example player. You can use it by following this steps:

1) Play Regular Video

Create the NexPlayer_Manager GameObject by either using the NexPlayer Context Menu at the top or right clicking in the Hierarchy (Object Context Menu).

Quickstart_Step_1


Create the NexPlayer_UI GameObject using the NexPlayer™ Context Menu.

Quickstart_Step_2


Set NexPlayer_Manager references to the UI elements by clicking on the button "Set UI References".

Quickstart_Step_2_1


Create the NexPlayer Samples Controller GameObject using the NexPlayer™ Context Menu.

Quickstart_Step_3


Select any of the different samples provided by NexPlayer™.

Quickstart_Step_3_1


Finally, Change the NexPlayer™ component inside NexPlayer_Manager with the desired stream settings.

2) Play a 360 Scene

Select the value Nex Player 360 for the Active Sample setting at the Samples Controller GameObject.

NexPlayer Video Streaming Player Plugin

3) Load Any NexPlayer™ Sample Demo

Select any of the following samples as the Active Sample setting at the Samples Controller GameObject.

- Raw Image
- Render Texture
- Transparency
- Video Spread
- Material Override
- Multiple Renderers 
- Change Render Mode
- NexPlayer360
- Multistream Raw Image  
- Multistream Render Texture  

Add the Scene to the list and switch to the desired platform.

Platform Build Configuration

The NexPlayer™ Plugin for Unity provides the build configuration window to set the build configuration for each platform in a fast and easy way.

Open the window by clicking in the top context menu NexPlayer/Build Configuration Window.

Build Configuration Window

The window automatically detects and informs of any conflicts regarding the build configuration (graphics API, Internet settings...). The following messages will be shown if the build configuration is correct:

Build Configuration Window correct settings

The following warning will be displayed if the build configuration is not correctly configured. The button will change the configuration automatically:

Build Configuration Window incorrect settings

Frequently Asked Questions

To view the FAQ proceed to the Unity Support Page


Contact

[email protected]
+34 914 184 356

About

Stream videos in HLS & DASH with Widevine DRM using NexPlayer Video Streaming Player SDK for Unity on Android & iOS devices

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published