Multiple videos at once should be possible with the Linux video player depending of course on resolutions and hardware. With decent machines I have had very good experience with few HD videos and also 4k playback. On Desktop there is no support for HW level decoding currently since this is an area where development is still fluid in GStreamer upstream. There are some elements like gstreamer-vaapi but there are currently under heavy dev and work for some combinations of hardware and not for others. I think we will have to wait a bit more for this…
That said, Cinder’s video player implementation uses the gst-gl plugin which has brought a lot of performance improvements ( i.e color space conversion is happening on the GPU which traditionally has been one of the biggest bottlenecks, pbo’s are used for uploading data to the GPU etc. )
Also, GStreamer is by de facto heavily threaded internally so there is no need to have multiple threads running on your side in order to have multiple players running in parallel.
One thing to note is that the current implementation by default will load synchronously the video files which means that directly after creating/loading your player you can be sure that the first frame of the video has already arrived and is available together with metadata like width, height, fps etc. The upside of this is that you don’t have to check if the video is loaded after creation and you can be sure that its ready to use – the downside is that this will block the main thread until the video its fully loaded.
If you don’t care if you have to check if the video is loaded before using it then you can enable async loading with just a boolean flag and this will keep your main application thread smooth and non-blocking while loading even multiple videos in parallel ( it actually might worth considering to make async loading the default option since this is how it works, I think, with the AVFoundation player on macOS currently ).
I would say give it a spin and lets us know how it works for you!