Если вы используете HTML5 в браузере, то есть набор событий, которые воспроизводит видео HTNL5 на разных этапах и которые вы можете зарегистрировать для мониторинга, а затем выполнить любое действие, которое вы хотите - например, изменить язык и т. Д.
Здесь есть очень хорошая иллюстрация различных событий и их значений, когда видео воспроизводится (на момент написания) здесь:
Стоит отметить, что тип описываемых вами функций обычно встроен в видеоплеер HTMl5, если он находится на веб-сайте, или нативный проигрыватель, если он находится на мобильном телефоне.
Например, в браузере с открытым исходным кодомDASH, если player, https://reference.dashif.org/dash.js/latest/samples/dash-if-reference-player/index.html, изменит разрешение для потоков ABR и предоставит пользователю элементы управления, чтобы изменить его вручную и установить язык.
В Android с открытым исходным кодом ExoPlayer, https://github.com/google/ExoPlayer, обеспечивает аналогичную функциональность, а в iOS встроенная медиатека https://developer.apple.com/documentation/avfoundation?language=objc, обеспечивает аналогичную функциональность.
Чтобы понять потоки ABR и узнать, как и почему они меняют разрешение, этот ответ может помочь: (https://stackoverflow.com/a/42365034/334402)