Как события по экспорту видео из DVR упрощают жизнь стриминговым платформам
Есть стример, и есть зритель. Они заходят на одну из стриминговых платформ (UGC-платформу). Первый – чтобы показать прямую трансляцию. (Скажем, стрим популярной компьютерной игры). Второй – чтобы ее посмотреть.
Стример инициирует создание трансляции на веб-сайте (платформе для стриминга) – находит кнопку “хочу стримить” и нажимает ее. Веб-платформа обращается к медиасерверу за созданием точки публикации. После чего отдает стримеру url в личном кабинете. Тот вводит этот url в программе OBS (“1”). Поток формируется и начинает публиковаться на Flussonic Media Server (“2”). После транскодирования, сервер предоставляет точку проигрывания для зрителей (“3”, “4”, “5”).
Теперь этот поток доступен для зрителей в плеере стриминговой платформы. Что делает обычный пользователь, если у него есть желание посмотреть, как играет стример? Он открывает плеер и начинает смотреть видео в виде прямой трансляции с медиасервера(“6”). Все это длится какое-то время. Когда стример показал, что хотел и попрощался с пользователями – он останавливает трансляцию. Последние видят надпись на экране – “Стрим окончен”.
Но есть и другие зрители, которые пропустили эфир и хотят посмотреть стрим после окончания прямой трансляции. Публикуемый поток, все то время, пока шла трансляция, записывался в DVR (“7”). Конечно, можно было бы и дальше хранить запись в DVR и организовывать просмотр через него. Но, пока запись лежит в архиве, возможности менять ее и управлять ею нет. Хотите транскодировать запись в несколько качеств, наложить субтитры, перенести на локальный диск, совершить еще какие-то манипуляции? Тогда необходимо сначала экспортировать нужную часть архива в мр4-файл. Для этого веб-платформа отправляет соответствующую команду в Flussonic.
Тут начинается самое интересное. Экспорт мр4-файла из DVR занимает время. Платформе для стриминга очень желательно сразу по завершению выгрузки получить информацию о ее результате. Если медиасервер не даст эту информацию, то площадке останется лишь постоянно обращаться к нему: “Выгружен ли файл?”, “Выгружен ли файл?”, “Выгружен ли файл?” А об ошибках экспорта, вообще, веб-платформа сможет лишь догадываться в данном случае.
С реализацией событий в версии Flussonic 21.04, общение между медиасервером и веб-платформой сильно упростилось. Flussonic сообщает о результате экспорта, сразу же отправляя следующие события:
- dvr_mp4_export_start
- dvr_mp4_export_ready
- dvr_mp4_export_failed
- dvr_mp4_export_aborted
Теперь, увидев то или иное событие, веб-платформа может решить:
- куда перенести видеозапись для хранения
- можно ли опубликовать файл в общий доступ пользователям (если экспорт завершился удачно)
- не публиковать файл (в случае ошибки экспорта)а, например, запросить выгрузку из резервного архива
- привлечь внимание оператора к записи с неудавшимся экспортом.
При событии dvr_mp4_export_ready, обозначающем happy end, стриминговая площадка организует доступ к мр4-файлу по модели VOD (“8”). (Video on Demand – система доступа к видео, работает по принципу доставки контента по запросу). После этого, запись стрима будет доступна в любое время неограниченному количеству пользователей (“9”, “10”).