Запис передач (Catchup TV)
Перегляд поточної передачі
З передачею, яка ще не закінчилася, все трохи складніше. Деякі плеєри, як то iOS, Android або StrobeMediaPlayback вміють працювати з т.зв. Event-плейлистами. Це такий спосіб надання контенту, при якому плеєр знає, що сервер зараз показує якийсь локальний у часі подія. При цьому плеєр надає можливість як відмотати до початку, так і повернутися до прямого ефіру.
Для цього треба сформувати URL виду: http: //flussonic-ip/ort/index-1429829884-now.m3u8.
Будьте обережні, якщо ви запросите URL за добу, то Flussonic Media Server віддасть величезного розміру плейлист. Ми бачили, як зіпсований клієнт забив собі 100 мегабіт каналу повторюваним кілька разів на секунду запитом до одного і того ж event списку Параметри. При цьому Flussonic Media Server віддавав гігантського розміру плейлист в кілька сот кілобайт без особливого навантаження за рахунок добре налагодженої реалізації архіву.
Однак для багатьох приставок такий URL не підійде, тому що приставка буде показувати тільки прямий ефір без можливості відмотування назад. Для таких приставок треба писати JS код, який відловлює перемотування і переводить клієнта на інший URL:
http: //flussonic-ip/ort/timeshift_abs-1429829884.m3u8, де 1429829884 - це той час, з якого треба грати передачу.
З timeshift_abs HLS URL-адресами є велика складність, пов'язана з природою HLS протоколу. Справа в тому, що Flussonic Media Server може лише вероятностно пов'язувати окремі HTTP запити в одну сесію. Flussonic Media Server вважає, що сесія та ж, якщо у двох запитів збігається IP адреса клієнта, ім'я каналу, протокол запиту і токен. У випадку з кількома, що йдуть підряд timeshift abs запитами, Flussonic Media Server вирішить, що це одна і та ж сесії. В результаті може вийти спотворення перегляду. Щоб уникнути цього, слід передавати в timeshift_abs запит новий токен.
Варіант простіше - запросити HTTP MPEGTS http: // flussonic-ip / ort / timeshift_abs / 1429829884.
Однак HTTP MPEGTS варіант позбавляє доступу до мультібітрейту.