Multi Stream is a function that allows to combine several streams in one acelive-file. The main purpose of this function is to provide ability to organize a broadcast with several options for quality (bitrate), between which user can switch.
Как это работает
Предположим, что есть два потока, которые представляют собой одну и ту же трансляцию в разных качествах (с разными битрейтами). Для начала необходимо как обычно запустить два источника (по одному на каждый поток). В результате получим два acelive-файла, например /tmp/stream_sd.acelive и /tmp/stream_hd.acelive.
Для создания мультипотокового acelive-файла необходимо выполнить следующую команду:
acestreamengine --create-transport-multi \ --name "SD" --path /tmp/stream_sd.acelive \ --name "HD" --path /tmp/stream_hd.acelive \ --out /tmp/stream_multi.acelive
В результате выполнения данной команды будет создан мультипотоковый файл /tmp/stream_multi.acelive, который необходимо отдавать клиентам.
Параметры:
- --name: название потока
- --path: путь к acelive-файлу, который нужно добавить к результирующему файлу (можно использовать http-ссылки)
- --out: путь к результирующему acelive-файлу с несколькими потоками (этот файл будет создан в результате работы команды)
Параметры --name и --path должны передаваться парами. Команда принимает столько пар этих параметров, сколько потоков нужно объединить в один.
Параметр --name задает название потока, которое будет выводиться у пользователя в переключателе. Также в переключателе будет автоматически добавляться битрейт потока в Kbit/s.
Поддерживаемые версии
Функция Multi Stream доступна начиная с версии 2.0.8. Клиенты более ранних версий не смогут распознать файл, содержащий несколько потоков. В связи с эти рекомендуется на веб-страницах, где размещены плееры для проигрывания таких файлов, выполнять проверку версии и выводить соответствующее сообщение для не поддерживаемых версий. Пример здесь: http://torrentstream.org/test/multi.html