Modifying VLC to play two video streams on one output screen

This forum is about all development around libVLC.
I_use_VLC_btw
New Cone
New Cone
Posts: 1
Joined: 16 Feb 2023 14:02

Modifying VLC to play two video streams on one output screen

Postby I_use_VLC_btw » 16 Feb 2023 17:20

Hello!

I'm arriving with a rather strange idea. I want to display two video streams simultaneously, side by side (if possible, timesynced). The streams will be served via MPEG-DASH and additionally, both will be 360° videos. I have already done this using a website with videojs + videojs-vr, but the performance is so low that I started looking in different directions. The solution doesn't need to be of good quality, I need if for a proof of concept showcase.

VLC seems like a great choice - first, unlike videojs it can properly utilize HW acceleration and barely uses any CPU while playing these videos. Second, the codebase is super clean and I have already achieved some success in just a few hours: Image
(the video in the screenshot is a random monoscopic one downloaded from YouTube, I made VLC open the same stream twice).

I was able to achieve this by creating my own version of `picture_CopyPixels` function which copies half of the frame from one rendering thread to the other one (surprisingly, no deadlock nor crashes). This of course doesn't work when I'm using acceleration (VAAPI/opengl in my case) - I need to use the Xvideo output which doesn't support 360° videos.

I experimented with the VAAPI calls a bit, but so far have no idea how to tackle this problem. Do you have any hints how this could be replicated with VAAPI pipeline?

Return to “Development around libVLC”

Who is online

Users browsing this forum: No registered users and 8 guests