Get Started
1. Installation
To begin, install the Freakout SDK package into your Unity project. This SDK is specifically designed for compatibility with the WebGL build target.
2. SDK Structure and File Locations
After installation, the following key directories and files will be available:
π /Assets/FreakoutSDK/
/Assets/FreakoutSDK/
Contains scripts and prefabs.
Prefabs can be reused or modified directly in your scene.
π /Packages/FreakoutSDK/WebGL Templates/
/Packages/FreakoutSDK/WebGL Templates/
Contains:
FreakoutSDK.js
hls/hls.min.js
index.html
(Example template showing how to integrate scripts)Dash/dash.all.min.js
Make sure to include
FreakoutSDK.js
,hls.min.js
,dash.all.min.js
in your WebGL template for proper video streaming support.
3. License Activation
The SDK license is activated per domain.
Testing on
localhost
is always free.For activation steps, follow the [License Activation Instructions].
4. Quick Start: Using the Video Player Prefab
The SDK includes ready-to-use prefabs for rapid integration.
Location
After importing the Freakout SDK Unity package, youβll find the sample prefab located at: Packages/FreakoutSDK/Samples.
To install it:
Double-click the Unity package file inside the Samples folder.
This will import a new folder into your Assets directory (usually under
/Assets/FreakoutSDK/Prefabs
..).The sample contains ready-to-use prefabs and example scenes you can drag into your own project.
Prefab
With UI β Includes UI player controls (play, pause, stop, volume, etc.).
Without UI β Suitable if you'd like to design your own controls. Just remove the unneeded
Canvas
component from the prefab.
Note: For UI-enabled prefabs, ensure your scene includes an EventSystem to enable UI interaction.
Adding to Scene
Add SDK manager to any GameObject in the scene.
Add the desired number of video entries in the Video Contents list by clicking the β+β icon. Each entry represents a video that will be linked to a separate video GameObject in your scene.
For example, if you plan to display 3 different videos simultaneously, add 3 entries.
For each entry, configure the following:
Name β for easy reference
Video URL β supports .mp4, HLS .m3u8, or DASH .mpd formats
Start on Init β whether the video should begin playing automatically once ready
Important: Each video is assigned an index based on its position in the list (e.g., 0, 1, 2). Youβll need to reference these indexes when assigning the correct video source to each player in the next step.
Drag and drop the prefab into your Unity scene. Specify VideoSource index from step 2.
Make sure to set the correct video index in the SdkVideoUIControl.cs component on the VideoControlPanel GameObject. This links the UI controls (play, pause, mute, etc.) to the appropriate video source by index.
π‘ Tip: We recommend using SdkVideoUIControl.cs as a starting point if you plan to build your own custom video UI.
π§© If UI controls are not needed, you can simply disable or remove the UI elements from the prefab.
- DONE.
Important: In step 2, avoid enabling the StartOnInit flag unless a corresponding Video Source Index is assigned in step 3 for that specific entry. Enabling StartOnInit without a valid index reference may cause the video player to initialize without proper configuration.

Prefab structure
Video_NUMBER (Root GameObject with VideoSDKSource)
βββ Canvas
β βββ VideoControlPanel // Contains built-in UI controls in SdkVideoUIControl
β βββ State
β βββ Play_Pause_Button
β βββ Stop
β βββ Mute
β βββ Slider
The following methods are available via VideoPlayerController. You can inspect SdkVideoUIControl.cs to see an example of usage with UI controls:
private VideoPlayerController PlayerController { get { return SdkManager.Instance.GetPlayerControllerAtIndex(PlayerIndex); } } private VideoPlayerController PlayerController { get { return SdkManager.Instance.GetPlayerControllerAtIndex(PlayerIndex); } } // accessing the controller
PlayerController.StartPlayer(); // Starts playback using assigned VideoContent
PlayerController.StartPlayer("url"); // Starts playback with custom URL
PlayerController.StopPlayer(); // Stops playback
PlayerController.PausePlayer(); // Pauses playback
PlayerController.ResumePlayer();
PlayerController.SetMuted(bool); // Set mute or unmute
PlayerController.SetVolume(0.5f); // Sets volume (0.0 to 1.0)
PlayerController.Shutdown(); // Releases and cleans up the video player
π¨ The following methods to control material are available via SdkVideoSource:
SdkVideoSource.SetGamma(1.2f); // Adjusts gamma level of the video material
SdkVideoSource.SetBrightness(0.8f); // Adjusts brightness level of the video material
SdkVideoSource.SetContrast(1.0f); // Adjusts contrast level of the video material
SdkVideoSource.SetShaderParams(gamma, brightness, contrast);
// Convenience method to set all three at once
The url in the 1st step of integration is a public field in the script. If you know the video URL in advance, you can assign it directly in the Inspector. Alternatively, you can set it at runtime and call the PlayerController.StartPlayer("url") in the specific PlayerIndex component.
By inspecting the prefab, you can make your own way of utilizing our SDK.
Please note that the video preview does not work in the Editor mode.
If you need any help, do not hesitate to reach us!
Last updated