Есть несколько решений, которые являются более или менее отраслевым стандартом. Я бы рекомендовал не придумывать другие хакерские решения вашей проблемы.
Во-первых, большие потоковые сайты используют сети доставки контента (CDN), где размещается фактический контент. Эти серверы отличаются от веб-серверов (на которых размещена веб-страница или сценарии) и работают независимо; их основная цель - размещать видеоконтент и хранить его ближе к местоположению пользователя. Работа вашего веб-приложения заключается в замене ссылки на источник видео, который указывает на сервер A, прямой ссылкой на сервер контента - в зависимости от того, что ближе к пользователю, или от того, который отвечает быстрее (типичный случай балансировки нагрузки). В случае ваших серверов второго уровня вы должны настроить на них веб-сервер (например, Nginx) и напрямую связываться с видео.
Обратите внимание, что когда вы проверяете сетевые запросы вашего браузера на YouTube, они используют разные домены. Видеоконтент поступает из совершенно другого источника, нежели реальный веб-сайт - скорее всего, это сервер рядом с вами, с которым у вашего интернет-провайдера есть прямое пиринговое соединение.
Убедитесь, что ваши видео, если они являются файлами MP4, имеют атом MOOV в начале файла. Это уменьшает задержку запуска, так как клиент может начать воспроизведение, даже если весь файл еще не передан. С помощью ffmpeg вы можете сделать это, добавив параметр -movflags +faststart
во время кодирования (используйте ffmpeg -i input.mp4 -c copy -movflags +faststart output.mp4
чтобы просто исправить существующий файл). Или используйте программу qt-faststart
(или ее реализацию ) для существующего файла.
Наилучшим вариантом будет сопряжение подхода CDN с использованием адаптивной потоковой передачи HTTP (DASH или HLS). Здесь вместо простого HTML5-источника видео, который, скорее всего, представляет собой один большой файл, вы бы транслировали отдельные фрагменты видео. Это приводит к более быстрому запуску и лучшей обработке различной пропускной способности клиента. Тем не менее, это гораздо сложнее настроить с нуля. Конечно, есть поставщики, которые предлагают потоковые решения DASH-типа, где вам просто нужно предоставить им исходное видео, и вы можете внедрить их проигрыватель на своем веб-сайте. Они позаботятся о кодировании и CDN. Некоторыми примерами являются Bitmovin, Encoding.com или Wowza.