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 95 forks source link

[BUG] Internal player stutters #158

Closed ikt32 closed 3 years ago

ikt32 commented 3 years ago

Describe the bug When using the internal player, the video feed stutters and tears. The performance seems fine, but every 0.5 seconds or so, the screen just jerks and tears. This happens regardless of the control bar being onscreen or not, or the player being in fullscreen mode or not.

To Reproduce Steps to reproduce the behavior:

  1. Play any video or live stream with the internal player.

Expected behavior Playback is smooth.

Screenshots

YouTube

Desktop (please complete the following information):

F1TV account

Additional context Other players seem to come with their own caveats - mostly that the stream freezes when selecting audio for another language.

System is a laptop:

robvdpol commented 3 years ago

That's weird, I haven't seen this before and I can't reproduce it either. Maybe @SuRGeoNix can chime in?

By the way, you can use audio tracks in MPV if you set the Default Audio Language under Settings. Or you can create a layout using the internal player and open it in MPV, it should play with the audio tracks that were selected when you saved the layout.

SuRGeoNix commented 3 years ago

I've never seen this happening and not sure how I can reproduce it so I can fix it. Maybe you can send us a 'dxdiag' output. The only thing comes in mind is a hardware issue (gpu probably). @robvdpol might expose the vsync settings to the user, that might fix it

ikt32 commented 3 years ago

Thanks for the default audio suggestion, MPV's good now. (VLC doesn't seem to use the setting).

DxDiag.txt

I also fear it's just specific to my configuration. The laptop is overdue for a fresh complete reinstall anyway.

itapai commented 3 years ago

I am experiencing the same issue. Running windows on KVM with GPU passthrough. Sound is played via pulseaudio server on the host system.

While this setup could be an issue, I don't think it is because everything else works normally (youtube, games, anything really). Any logs I can include, beside dxdiag?

DxDiag.txt

itapai commented 3 years ago

Ok, changed windows playback device to monitor, and the sound is fine. Guess it's an issue with pulseaudio after all.

itapai commented 3 years ago

Another update: crackling present only with using the default player. No crackling when using mpv or vlc.

SuRGeoNix commented 3 years ago

So the video issue exists because of the audio crackling or is it separate (for the internal player)?

ikt32 commented 3 years ago

I had no audio issues, just the stuttering video.

I also couldn't reproduce it on my desktop, so I guess my laptops Windows installation is haunted then. Feel free to close this issue if you have no idea, and also think my laptop is possessed, or something :P

SuRGeoNix commented 3 years ago

Feel free to test the internal player itself if you want https://github.com/SuRGeoNix/Flyleaf/releases/download/v3.1.8/Flyleaf_v3.1.8.7z

I would try to disable hardware/video acceleration and play with vsync (right click -> video). If other players are working fine, my player is possessed and not your laptop I'm afraid :) Probably is the gpu that can't handle the video acceleration which I should be able to predict somehow.

ikt32 commented 3 years ago

The internal player seems to be working fine (with/without vsync, with/without HW acceleration) (pasting a random YouTube URL, pasting the link from the RC didn't work).

ikt32 commented 3 years ago

I ended up doing a full reinstall, which also solved my problem with the internal player stuttering.

The installation before this originated somewhere from a Windows 7 install that had been upgraded throughout Windows 8, 8.1 and then 10, so I'll just say there might have been something driver-related, or leftovers from the previous versions.

Since the reinstall leaves me unable to reproduce the issue, I'll close this issue. Thanks for the help!

JJWatMyself commented 2 years ago

I've done some testing on this with 11th gen intel, 32GB RAM, SSD on a 4K display. All seems ok, on the internal player, up to about 12 streams and then the stuttering gets progressively worse The stuttering appears to be audio and video and is simultaneous across all windows. CPU and GPU have average load. Not entirely obvious what the cause of the issue is.

EDIT: Realized this is closed and created new bug #455 here: Here is the layout file I am playing with.


{
  "Instances": [
    {
      "Top": 0.0,
      "Left": 0.0,
      "Width": 640.0,
      "Height": 360.0,
      "FullScreen": false,
      "ResizeMode": 0,
      "VideoQuality": 2,
      "Topmost": false,
      "IsMuted": true,
      "Volume": 100,
      "Zoom": 0,
      "AspectRatio": "Keep",
      "AudioDevice": "Default",
      "AudioTrack": "teamradio",
      "ChannelName": "Yuki Tsunoda"
    },
    {
      "Top": 0.0,
      "Left": 640.0,
      "Width": 640.0,
      "Height": 360.0,
      "FullScreen": false,
      "ResizeMode": 0,
      "VideoQuality": 2,
      "Topmost": false,
      "IsMuted": true,
      "Volume": 100,
      "Zoom": 0,
      "AspectRatio": "Keep",
      "AudioDevice": "Default",
      "AudioTrack": "teamradio",
      "ChannelName": "Sebastian Vettel"
    },
    {
      "Top": 0.0,
      "Left": 1280.0,
      "Width": 1280.0,
      "Height": 720.0,
      "FullScreen": false,
      "ResizeMode": 0,
      "VideoQuality": 2,
      "Topmost": false,
      "IsMuted": true,
      "Volume": 100,
      "Zoom": 0,
      "AspectRatio": "Keep",
      "AudioDevice": "Default",
      "AudioTrack": "eng",
      "ChannelName": "DATA"
    },
    {
      "Top": 0.0,
      "Left": 2560.0,
      "Width": 640.0,
      "Height": 360.0,
      "FullScreen": false,
      "ResizeMode": 0,
      "VideoQuality": 2,
      "Topmost": false,
      "IsMuted": true,
      "Volume": 100,
      "Zoom": 0,
      "AspectRatio": "Keep",
      "AudioDevice": "Default",
      "AudioTrack": "teamradio",
      "ChannelName": "Valtteri Bottas"
    },
    {
      "Top": 0.0,
      "Left": 3200.0,
      "Width": 640.0,
      "Height": 360.0,
      "FullScreen": false,
      "ResizeMode": 0,
      "VideoQuality": 2,
      "Topmost": false,
      "IsMuted": true,
      "Volume": 100,
      "Zoom": 0,
      "AspectRatio": "Keep",
      "AudioDevice": "Default",
      "AudioTrack": "teamradio",
      "ChannelName": "Lando Norris"
    },
    {
      "Top": 360.0,
      "Left": 0.0,
      "Width": 640.0,
      "Height": 360.0,
      "FullScreen": false,
      "ResizeMode": 0,
      "VideoQuality": 2,
      "Topmost": false,
      "IsMuted": true,
      "Volume": 100,
      "Zoom": 0,
      "AspectRatio": "Keep",
      "AudioDevice": "Default",
      "AudioTrack": "teamradio",
      "ChannelName": "Pierre Gasly"
    },
    {
      "Top": 360.0,
      "Left": 640.0,
      "Width": 640.0,
      "Height": 360.0,
      "FullScreen": false,
      "ResizeMode": 0,
      "VideoQuality": 2,
      "Topmost": false,
      "IsMuted": true,
      "Volume": 100,
      "Zoom": 0,
      "AspectRatio": "Keep",
      "AudioDevice": "Default",
      "AudioTrack": "teamradio",
      "ChannelName": "Lance Stroll"
    },
    {
      "Top": 360.0,
      "Left": 2560.0,
      "Width": 640.0,
      "Height": 360.0,
      "FullScreen": false,
      "ResizeMode": 0,
      "VideoQuality": 2,
      "Topmost": false,
      "IsMuted": true,
      "Volume": 100,
      "Zoom": 0,
      "AspectRatio": "Keep",
      "AudioDevice": "Default",
      "AudioTrack": "teamradio",
      "ChannelName": "Guanyu Zhou"
    },
    {
      "Top": 360.0,
      "Left": 3200.0,
      "Width": 640.0,
      "Height": 360.0,
      "FullScreen": false,
      "ResizeMode": 0,
      "VideoQuality": 2,
      "Topmost": false,
      "IsMuted": true,
      "Volume": 100,
      "Zoom": 0,
      "AspectRatio": "Keep",
      "AudioDevice": "Default",
      "AudioTrack": "teamradio",
      "ChannelName": "Daniel Ricciardo"
    },
    {
      "Top": 720.0,
      "Left": 0.0,
      "Width": 1280.0,
      "Height": 720.0,
      "FullScreen": false,
      "ResizeMode": 0,
      "VideoQuality": 1,
      "Topmost": false,
      "IsMuted": false,
      "Volume": 100,
      "Zoom": 0,
      "AspectRatio": "Keep",
      "AudioDevice": "Default",
      "AudioTrack": "teamradio",
      "ChannelName": "Lewis Hamilton"
    },
    {
      "Top": 720.0,
      "Left": 1280.0,
      "Width": 1280.0,
      "Height": 720.0,
      "FullScreen": false,
      "ResizeMode": 0,
      "VideoQuality": 0,
      "Topmost": false,
      "IsMuted": false,
      "Volume": 50,
      "Zoom": 0,
      "AspectRatio": "Keep",
      "AudioDevice": "Default",
      "AudioTrack": "eng",
      "ChannelName": "INTERNATIONAL"
    },
    {
      "Top": 720.0,
      "Left": 2560.0,
      "Width": 1280.0,
      "Height": 720.0,
      "FullScreen": false,
      "ResizeMode": 0,
      "VideoQuality": 1,
      "Topmost": false,
      "IsMuted": true,
      "Volume": 100,
      "Zoom": 0,
      "AspectRatio": "Keep",
      "AudioDevice": "Default",
      "AudioTrack": "teamradio",
      "ChannelName": "George Russell"
    },
    {
      "Top": 1440.0,
      "Left": 0.0,
      "Width": 640.0,
      "Height": 360.0,
      "FullScreen": false,
      "ResizeMode": 0,
      "VideoQuality": 2,
      "Topmost": false,
      "IsMuted": true,
      "Volume": 100,
      "Zoom": 0,
      "AspectRatio": "Keep",
      "AudioDevice": "Default",
      "AudioTrack": "teamradio",
      "ChannelName": "Max Verstappen"
    },
    {
      "Top": 1440.0,
      "Left": 640.0,
      "Width": 640.0,
      "Height": 360.0,
      "FullScreen": false,
      "ResizeMode": 0,
      "VideoQuality": 2,
      "Topmost": false,
      "IsMuted": true,
      "Volume": 100,
      "Zoom": 0,
      "AspectRatio": "Keep",
      "AudioDevice": "Default",
      "AudioTrack": "teamradio",
      "ChannelName": "Charles Leclerc"
    },
    {
      "Top": 1440.0,
      "Left": 1280.0,
      "Width": 1280.0,
      "Height": 720.0,
      "FullScreen": false,
      "ResizeMode": 0,
      "VideoQuality": 2,
      "Topmost": false,
      "IsMuted": true,
      "Volume": 100,
      "Zoom": 0,
      "AspectRatio": "Keep",
      "AudioDevice": "Default",
      "AudioTrack": "eng",
      "ChannelName": "TRACKER"
    },
    {
      "Top": 1440.0,
      "Left": 2560.0,
      "Width": 640.0,
      "Height": 360.0,
      "FullScreen": false,
      "ResizeMode": 0,
      "VideoQuality": 2,
      "Topmost": false,
      "IsMuted": true,
      "Volume": 100,
      "Zoom": 0,
      "AspectRatio": "Keep",
      "AudioDevice": "Default",
      "AudioTrack": "teamradio",
      "ChannelName": "Esteban Ocon"
    },
    {
      "Top": 1440.0,
      "Left": 3200.0,
      "Width": 640.0,
      "Height": 360.0,
      "FullScreen": false,
      "ResizeMode": 0,
      "VideoQuality": 2,
      "Topmost": false,
      "IsMuted": true,
      "Volume": 100,
      "Zoom": 0,
      "AspectRatio": "Keep",
      "AudioDevice": "Default",
      "AudioTrack": "teamradio",
      "ChannelName": "Kevin Magnussen"
    },
    {
      "Top": 1800.0,
      "Left": 0.0,
      "Width": 640.0,
      "Height": 360.0,
      "FullScreen": false,
      "ResizeMode": 0,
      "VideoQuality": 2,
      "Topmost": false,
      "IsMuted": true,
      "Volume": 100,
      "Zoom": 0,
      "AspectRatio": "Keep",
      "AudioDevice": "Default",
      "AudioTrack": "teamradio",
      "ChannelName": "Sergio Perez"
    },
    {
      "Top": 1800.0,
      "Left": 640.0,
      "Width": 640.0,
      "Height": 360.0,
      "FullScreen": false,
      "ResizeMode": 0,
      "VideoQuality": 2,
      "Topmost": false,
      "IsMuted": true,
      "Volume": 100,
      "Zoom": 0,
      "AspectRatio": "Keep",
      "AudioDevice": "Default",
      "AudioTrack": "teamradio",
      "ChannelName": "Carlos Sainz"
    },
    {
      "Top": 1800.0,
      "Left": 2560.0,
      "Width": 640.0,
      "Height": 360.0,
      "FullScreen": false,
      "ResizeMode": 0,
      "VideoQuality": 2,
      "Topmost": false,
      "IsMuted": true,
      "Volume": 100,
      "Zoom": 0,
      "AspectRatio": "Keep",
      "AudioDevice": "Default",
      "AudioTrack": "teamradio",
      "ChannelName": "Fernando Alonso"
    },
    {
      "Top": 1800.0,
      "Left": 3200.0,
      "Width": 640.0,
      "Height": 360.0,
      "FullScreen": false,
      "ResizeMode": 0,
      "VideoQuality": 2,
      "Topmost": false,
      "IsMuted": true,
      "Volume": 100,
      "Zoom": 0,
      "AspectRatio": "Keep",
      "AudioDevice": "Default",
      "AudioTrack": "teamradio",
      "ChannelName": "Mick Schumacher"
    }
  ]
}