Существует несколько конкурирующих технологий, но сегодня, если вы хотите, чтобы любые файлы были совместимы для потоковой передачи на устройствах Apple (iPhone, iPad и т. Д.), Тогда HLS - это путь. Кстати, он также поддерживается большинством браузеров и Android, так что неплохое место для начала. Однако обратите внимание, что он не подходит для потоковой передачи живого контента, несмотря на название.
Если вам не нужно живое видео, вам действительно не нужно red5, wowza, fms или что-то в этом роде. HLS - это, в основном, набор коротких сегментов видео (например, по 5 минут каждый), закодированных с различными битрейтами, и список воспроизведения m3u, который вы даете своему проигрывателю на базе flash или HTML5 в браузере. Это зависит от вас, чтобы определить длину сегмента или то, как вы его кодируете.
Это лучшая статья, которую я видел о том, как выбирать разрешение, битрейт, размеры сегментов и т. Д .: http://www.streamingmedia.com/Articles/Editorial/Featured-Articles/Adaptive-Streaming-in-the-Field-73017.aspx
Оттуда вы просто, например, создаете структуру каталогов, например,
/data/video/video_id/original.mp4
/data/video/video_id/quality1/chunk1.mp4
/data/video/video_id/quality1/chunk2.mp4
/data/video/video_id/quality2/chunk1.mp4
etc..
Затем вам нужно сгенерировать список воспроизведения m3u для всех кусков и качеств, и сам игрок должен переключиться между качествами и воспроизвести следующий файл (который уже есть у большинства современных игроков).
Я также настоятельно рекомендую проверить: https://developer.apple.com/streaming/ - Apple предоставляет набор бесплатных инструментов для подготовки видео и списков воспроизведения для HTTP Live Streaming.