Offscreen Media Service
Posted: 29 Dec 2012 18:36
I am curious if an offscreen media service exists for VLC already, or if it is desired/wanted:
* Offscreen decode/render various media formats in a separate/forked child process(es).
* Frame image composition / overlays / color format conversions / image flipping, etc done by the child process.
* Shared Memory interface to access the service for fast frame-based access and to control the offscreen player.
* Running multiple media in a single or more child processes / services simultaneously.
Advantages compared to 'all in one' players:
* Moving CPU and memory load to an external process.
* Efficient use of multicore CPUs.
* Recoverable service / child process in case of a crash, not affecting parent application(s).
* Centralized decoding 'once per stream', multiple viewers.
* Output is available to multiple applications and/or multiple devices.
* In particular 32bit 'all in one' application may run into memory address issues, when running multiple high definition (4k) media streams simultaneously.
Example Usage Scenarios:
* Applications using their own/existing rendering surface, such as games or custom web browsers for example.
* Advanced frame based video editing, or video mixers.
* Deliver already decoded fast video streams over LAN (local area network) in high quality, without additional load (mem and CPU) to end-clients/viewers, e.g. to workstations, as high definition video decoding may cause.
What I got so far:
I am experimenting with an offscreen service for Windows so far. On Windows I use a fixed size 'MapView' of committed memory for the interface. Tbh, I haven't looked any closer into the VLC source code yet. All I did was using the SDK header files that come with the standard distribution. On Windows, MS's DirectShow interfaces, as well native WM-Format-SDK can also be integrated into this media service, e.g as a level of fallback.
If you think this would be either a cool contribution, or even a part of the existing VLC SDK/interfaces/plugins, please let me know (optionally, feel free to reply to the email of the forum account in these regards with the subject 'Offscreen Media Service').
~Chris
* Offscreen decode/render various media formats in a separate/forked child process(es).
* Frame image composition / overlays / color format conversions / image flipping, etc done by the child process.
* Shared Memory interface to access the service for fast frame-based access and to control the offscreen player.
* Running multiple media in a single or more child processes / services simultaneously.
Advantages compared to 'all in one' players:
* Moving CPU and memory load to an external process.
* Efficient use of multicore CPUs.
* Recoverable service / child process in case of a crash, not affecting parent application(s).
* Centralized decoding 'once per stream', multiple viewers.
* Output is available to multiple applications and/or multiple devices.
* In particular 32bit 'all in one' application may run into memory address issues, when running multiple high definition (4k) media streams simultaneously.
Example Usage Scenarios:
* Applications using their own/existing rendering surface, such as games or custom web browsers for example.
* Advanced frame based video editing, or video mixers.
* Deliver already decoded fast video streams over LAN (local area network) in high quality, without additional load (mem and CPU) to end-clients/viewers, e.g. to workstations, as high definition video decoding may cause.
What I got so far:
I am experimenting with an offscreen service for Windows so far. On Windows I use a fixed size 'MapView' of committed memory for the interface. Tbh, I haven't looked any closer into the VLC source code yet. All I did was using the SDK header files that come with the standard distribution. On Windows, MS's DirectShow interfaces, as well native WM-Format-SDK can also be integrated into this media service, e.g as a level of fallback.
If you think this would be either a cool contribution, or even a part of the existing VLC SDK/interfaces/plugins, please let me know (optionally, feel free to reply to the email of the forum account in these regards with the subject 'Offscreen Media Service').
~Chris