I'm sure it can be a variety of things, but I've noticed it on all major platforms -- Windows, MacOS, several flavors of different Linux distributions, on several programs.
I figure it could be codecs or similar. But that's not yet in my skillset how to determine those (and whether that is a fruitful target for investigation).
It happens on all kinds of internet feeds and connections (wired & wifi).
I'm curious how you as a tinkering hacker would approach this!
For HLS there is a master.m3u8 file that is the index file (accessed over HTTP/HTTPS) that is loaded first. It will have links to the multiresolution streams. You can then find out which resolution stream is actually being loaded and then compare it with the device resolution.
One of the major causes for the video being choppy is due to a suboptimal resolution file being loaded. Another reason is the player that you are using. If it does not have the right adaptive bitrate algorithm implementation, it may be causing the wrong res file to be playing exacerbating the problem.
These are just my guesses.
On Linux you can do this by installing htop and iotop, on Windows you can use this using the Task Manager, I'm not sure about Mac. You can also use something like Fraps (https://fraps.com/) to check your framerate.
Also, what graphics cards and cooling solution do you have? If the computer is not getting adequate ventilation and there is a buildup of heat, then the processor may throttle, resulting in dropped frames.
Are you seeing the video re-buffer (a loading spinner re-appearing), or just the video looking stuttery?
My video engineer gut tells me that this is a frame rate conversion issue - do you know what frame rate your graphics card is outputting to your display, and do you happen to know the frame rate of the content that you're seeing issues with (or more generically, what type of content is it - film? TV) ?