Уменьшение scope переменных. Чем ближе объявление переменной к её использованию, тем легче читается код. Представим пограничный сценарий, в котором переменная в большой функции объявлена на первой строке, а используется на 500ой, 1000ой и 2000ой. При чтении такого кода нужно всегда держать в уме эту переменную и вспомнить о ней спустя значительное количество строк кода.
Автор курсов по PostgreSQL Aaron Francis поделился в своем блоге как он дешево раздает видео в 4К. Хранятся его видео в Cloudflare R2, S3-API совместимое облачное хранилище, с высоким бесплатным ярусом на раздачу и бесплатным исходящим трафиком: платишь за хранение 15центов в месяц за Гб. И если не вываливаешься за 10e6 запросов в месяц, то это всё. Готовые сервисы предоставляют обширный функционал, но и берут немало: Vimeo за аналогичные 15Тб отданного видео возьмет с вас ~USD1500 (согласно автору статьи).
Адаптивный стриминг (adaptive bitrate streaming) реализован через
HLS. Для его работы видео нужно разбить на файлы по 3-8Мб, с разным
разрешением и сформировать манифест файл (m3u8). Т.к. Cloudflare поддерживает S3 API, то для загрузки можно
использовать любой совместимый инструмент, например, rclone
.
На клиенте можно использовать hls.js
, указав ему ссылку на .m3u8
файл.