Для обеспечения высокой производительности потокового видео должен быть набор из нескольких вариантов видеопотоков. Другими словами, видео, закодированные с различными битрейтами и разрешениями, на которые все ссылаются из файла списка воспроизведения (.m3u8)
Видеопроигрыватели, которые поддерживают потоки с адаптивным битрейтом, затем выберут поток, который соответствует вашему сетевому соединению, и смогут плавно переключать потоки при изменении условий сети. Причиной того, что видео, которое я пытался транслировать, потребовалось так много времени, чтобы начать воспроизведение, было то, что у меня был только один поток с разрешением 720p, поэтому проигрывателю потребовалось очень много времени для буферизации, прежде чем он начал воспроизводиться.
Я использовал стандарт Http Live Streaming (HLS), созданный Apple, для создания адаптивного потока битрейта с 5 потоками (который я сгенерировал с помощью ffmpeg), и мое видео начинает воспроизводиться практически сразу.
Бесстыдный плагин: чтобы сделать это проще для разработчиков и других пользователей, я упаковал инфраструктуру, которую мы собрали для генерации потоков HLS, с iOS SDK, который вы можете проверить здесь: https://github.com/Storie/StorieCloudSDK