<<< Как можно реализовать динамическую смену качества видео зависящую от скорости интернет соединения, как на ютюбе?
Если я верно понимаю, то, что Вам нужно это HLS, https://ru.wikipedia.org/wiki/HLS. Суть такова, что изначально один и тот же видос разбивается на несколько копий, каждая из которых хранится в разном качестве, это все передается потоком в конструтор HLS плеера, который сам стримит видео из этого потока, проверяет скорость интернета и переключается в реалттайме между видео файлами разного качества. Вам нужно поресерчить по тегу HLS и полееру hls.js