C-Play is an open source cluster media player, useful for video playback and presentations in immersive environments (such as domes, powerwalls etc).
https://c-toolbox.github.io/C-Play/
These are just some features that set C-Play apart from others media/video players:
C-Play support media that is:
-
Stereoscopic (Side-by-side or Top-Bottom) and Monoscopic
-
180 fulldome / fisheye
-
360 equirectangular or equiangular cubemap (common on YouTube)
-
Any "flat" media arbitary aspect ratio
Primary media (video and images) is easily opened and configured(through playfiles) and added to playlist for a standard media player setup. An additional powerful feature in C-Play is the presentation tool, where you can be add arbitrary amount of layers within slides, using numerous inputs, such as
-
Images (JPG and PNGs)
-
PDF (Common export format from PPT)
-
Videos (H264, HEVC/H265, AV1/H266, VP9 etc)
-
Audio (WAV, AAC etc)
-
NDI (Live streams form local network)
-
Streams (Youtube etc supported through FFmpeg)
-
Text (With custom font, also used for subtitles.)
With above layers, you can make it as easy as using powerpoint to create an immersive presentation.
-
Runs a QT/QML UI application on master computer and small none-UI GLFW/SGCT application on nodes/clients.
-
Sync playback, loading and other properties between master and clients.
-
Playing audio is usually performed on master (Support for node audio is added in 2.2). Change of audio output is supported, and C-Play is pre-built with "JACK", which opens for multi-channel low-latency output to for instance ASIO devices.
-
Loading external audio files as multiple tracks.
-
Editing and saving playlist and playfiles including all necassary parameters.
-
Configure "sections" in a editor to create bookmarks to jump between clips inside a larger movie.
-
C-Play nodes can run on-top other application. For master, viewing your video (or layer) on secondary monitor is also simple and requires no extra decoding resources.
-
HTTP Web API (Such that you can include control in custom system.)
-
Tested and used on Windows 10/11, in domes and other big arenas.
C-Play is an open source cluster video player, based on these open source projects:
- SGCT - Our own simple graphics cluster toolkit
- LibMPV - command line video player, using FFmpeg
- FFmpeg - The one and only video decoder/encoder
- Haruna - Qt/QML UI for MPV
Optional libraries in C-Play version 2.1 and above.
-
Use Craft Guide to install all dependencies for the UI, from Qt and KDE Frameworks libs.
-
Use the Build FFMPEG and MPV Guide guide to build FFmpeg and MPV with JACK+portaudio support.
-
Install optional libraries through such as NDI and Poppler (for PDF support), either through installers or using vcpkg.
-
Configure C-Play with CMake.
-
Good practice to follow Deploy Guide as well, to copy the build with it's dependencies to single binary folder.
-
Build in Visual Studio 2022 (or what viewer you prefer).
