Как правильно готовить HTTP Live Streaming (HLS) фрагменты?
У меня есть желание использовать HLS для стриминга трех вещей — живого видео, записанного видео файла и плейлиста. Плейлист в моем случае — это некий записанный live stream в файлы по 15 минут. Суммарная длительность плейлиста — 24 часа.
HLS хочется использовать, т.к. нужна поддержка как desktop, так и ipad, ну и android тоже хотелось бы.
Так вот у меня вопрос в том — каким средством на сервере можно готовить HLS фрагменты? Сервер у меня под Windows.
Вопрос касается записанных файлов и плейлистов, т.к. с живым видео вроде всё понятно.
Можно ли как-то делать это на лету? Например плейлист генерить сразу, а HLS фрагмент создавать по запросу? Желательно не сохраняя его на диск.
Насколько я знаю бесплатных решений, которые создают hls на лету, не существует. Это умеет делать nginx plus, но как он будет работать на windows я не берусь сказать.
Наткнулся на https://wmspanel.com/nimble - эта штука умеет hls из mp4 налету создавать, аналогично платному плагину к nginx, как я понимаю. За деньги можно получить красивую веб-панель для управления или пользоваться бесплатно, настраивая через конфиги.
все очень просто, берем nginx и берем к нему модуль nginx-rtmp и все прекрасно работает, сам режет видео файлы и делает плейлист на лету.
Поддержка ios, android, обычных флеш плееров, live stream и т.д. и т.д.
Попробовал nginx-rtmp-module. Получилось запустить вещание файла в HLS как live stream. Но мне не понятно как это может работать для VOD и плейлистов. Для VOD получается, что нужно публиковать ffmpeg-ом файл на сервер по запросу пользователя. А если несколько пользователей захотят один и тот же файл одновременно играть? Для плейлистов вообще затрудняюсь ответить как организовать работу. Особенно если файл, входящий в плейлист нужно проигрывать с заданной позиции.