robvdpol / RaceControl

Race Control is a standalone, open source F1TV client for Windows, written in C# on the .NET platform.
GNU General Public License v3.0
1.19k stars 93 forks source link

[FEATURE] Use the English/International commentary feed to sync streams? #440

Open Petarkco opened 2 years ago

Petarkco commented 2 years ago

Is your feature request related to a problem? Please describe. The getting streams in sync problem. As a F1 TV Access viewer my experience is more with non-live races.

Describe the solution you'd like The international commentary audio feed could be used to sync streams together because it's available on every stream. The feed could be opened temporarily for initial syncing or if possible loaded in the background for constant syncing if possible. This would probably require audio analysis of some kind?

sidewinder94 commented 2 years ago

I noticed a sync issue with the international channel audio during live sessions of FP1 & 2 of the Miami GP, and they might not have fixed the issue for the replays, not sure there is anything RaceControl can do in this case

JJWatMyself commented 2 years ago

I love the idea behind syncing streams. The time for the sync to propagate into the processes might be part of this issue. Might be worth using system clock at time of sync init vs system time at time of sync, to build in an auto calibrating offset (self heal) when the sync action to the individual streams. This means that when the process harvests the sync time, if it performs this calculation it would self calibrate. So far, I have found that the time stamp on the feed matches across all streams. But I'll admit I have not studied extensively. The point being there are clever ways to get things to synchronize. As time drifts across streams, due to whatever situation, to re-sync may also be beneficial. To designate the 'sync master' would potentially be the window that the user initiates the sync.