Налаштування сервера та потоків

Дана інформація стосується налаштувань на сторінці «Settings».

Налаштування сервера.

  • «Server port» – задає порт на якому «TVLINK» приймає запити. Порт у потоків буде більший на одиницю: “Server port + 1”.
  • «Playlist IP» – це адреса, яку «TVLINK» буде використовувати для плейлистів (коли «Auto playlist IP» вимкнено). Вибирається із списку.
  • «Auto playlist IP» – якщо ввімкнуто, «TVLINK» буде використовувати ту IP-адресу в плейлисті, на яку робить запит клієнт.
  • «Check internet IP» – IP-адреса за якою «TVLINK» перевіряє роботу інтернет. За замовчуванням використовуються адреса «8.8.8.8». Якщо вам потрібно змінити цю адресу перед запуском програми, створіть файл «check-internet.ip» в каталозі «tvlink» и впишіть туди потрібну адресу.
  • «Check internet max time» – максимальний час, протягом якого «TVLINK» перевіряє роботу інтернет. Програма не запуститься поки у неї не буде доступу до інтернет.
  • «Refresh sources at startup» – оновлювати джерела при старті програми.
  • «Refresh sources at playlist» – оновлювати джерела при запиті плейлиста.
  • «Create static playlist» – створює статичні файли плейлистів (основний і для профілів) в каталозі «tvlink/playlist» і видає його при запиті клієнтів. Це набагато пришвидшує роботу, коли ви маєте велику кількість каналів (100 і більше). Статичний плейлист створюється (оновлюється) кожного разу коли автоматично оновлюються джерела каналів, або ви натискаєте на «Update all sources» на сторінці «Sources». Для токенів (Authentication Token) статичні плейлисти не створюється.
  • «Remove broken channels» – «TVLINK» автоматично буде видаляти усі канали, які виявилися непрацездатними. Будьте обережні з цією опцією, якщо зникне підключення до Інтернет, «TVLINK» почне видаляти кожен канал, який Ви будете вмикати.
  • «Authentication webUI» – проста автентифікація (логін/пароль) для веб-інтерфейсу. Після активації ви відразу побачите вікно для введення даних. Вам потрібно ввести – “admin/admin”. Після цього ви можете вказати свої логін/пароль у полях «Login (webUI)» та «Password (webUI)» відповідно. Якщо в полі «Login (webUI)» ввести порожній рядок або менше трьох символів, логін буде скинутий на значення за замовчуванням (admin). Це стосується і поля «Password (webUI)»: порожній рядок або менше трьох символів скинуть пароль на “admin”.

IP-адреси для списку «Playlist IP» беруться із системи. Якщо вам потрібно додати IP-адресу (або доменне ім’я) якої немає в системі (наприклад, якщо «TVLINK» працює за NAT), створіть файл «ip-address.ext» в каталозі «tvlink/data». Кожний рядок файлу повинен містити одну IP-адресу або доменне ім’я. Наприклад:

100.100.100.100
200.200.200.200
my.own.server.com

Маркер автентифікації для потоків та плейлистів.

Захист від несанкціонованого доступу до потоків та плейлистів.

  • «Authentication Token» – вмикає підтримку маркерів автентифікації.
  • «Main Token for playlist/streams» – будь-яка послідовність латинських літер та/або цифр, чутлива до регістру.

Якщо опцію «Authentication Token» активовано, після застосування налаштувань , доступ до потоків та плейлистів здійснюється лише через токен. На сторінці «Settings» задається токен для основного плейлиста.

Інші токени задаються в «Профілях користувачів».

Періодичне перезавантаження налаштувань.

Ця функція перезавантажує налаштування «TVLINK» через вказані проміжки часу. Ця дія аналогічна «Apply Settings» внизу сторінки. Вона не перезавантажує саму програму, а тільки заново ініціює всі налаштування. Але, це сприяє очищенню оперативної пам’яті та закриттю всіх сокетів. Тому може бути корисна, коли сервер працює 24/7.

  • «Reload by interval» – перезавантажувати модулі «TVLINK» через проміжок часу (у годиннику) вказаний у «Reload every hours».
  • «Reload once a day» – перезавантажувати один раз на добу, у визначений параметром «Reload at o’clock» час.

Час вказаний в цих опціях не точний. Наприклад, якщо вказано «Reload once a day» / «Reload at o’clock» – в 4 години, перезавантаження станеться між четвертою та п’ятою годинами.

«Reload once a day» має вищий пріоритет. Якщо Ви увімкнете обидва параметри, перезавантаження модулів працюватиме один раз на добу.

Перезавантаження відбуваються тільки якщо:

  • кількість відкритих сокетів (з’єднань) перевищує 10
  • програма використовує більше ніж 60 Мб оперативної пам’яті для систем де RAM менше за 1.5 Гб та більше 120 Мб для систем де RAM перевищує 1.5 Гб.

Щоб уникнути проблем із трансляцією потоків, функції спрацюють, якщо в цей момент «TVLINK» не веде мовлення (немає підключених клієнтів). Як тільки вимкнеться останній клієнт відбудеться перезавантаження модулів.

Якщо ввімкнена опція «Ignore connected clients on Reload», модулі «TVLINK» буде перезавантажено не зважаючи на те що є підключені кліенти.


«Empty channel link» – дозволяє вписати своє посилання на потік, який буде відтворюватися якщо жодне з посилань на канал не працює.

«Exclude these lines from channel names when mapping» – виключення слів з назв каналів. Ви можете виключити будь-які рядки з назви каналу для автоматичного зв’язування. Сама назва каналу при цьому залишається незмінною, проте «TVLINK» при автоматичному зв’язуванні відкидає вказану вами частину з назви. Розділювачем слів, які потрібно виключити з назви, є кома (без пробілів). Наприклад, при таких налаштуваннях

всі канали з такими іменами будуть вважатися одним і тим же каналом – «Discovery Science HD» .

  • «Discovery Science HD»
  • «Discovery Science HD orig»
  • «Discovery Science HD PREMIUM+»

Для інформації. Якщо в одному джерелі є канали, як показано вище, то найвищий пріоритет буде у потоку (посилання на потік) назва якого найдовша, тобто спочатку «Discovery Science HD PREMIUM+», потім «Discovery Science HD orig» і останній «Discovery Science HD».

«M3U playlist settings» – дозволяє додати потрібні вам елементи після тегів «EXTM3U» та «EXTINF» в плейлист «TVLINK». Наприклад, це може бути інформація для періодичного оновлення списку каналів: «refresh=”3600″». Якщо ваш IPTV програвач підтримує це.


Налаштування потоків.

«Main User-Agent» – задає User-Agent за умовчанням. У деяких IPTV-провайдерів може стояти блокування по «user-agent». Вони віддають потік, тільки якщо запит іде від визначеної програми.  Ви можете вказати «TVLINK», щоб він видавав себе за іншу програму.

Наступні налаштування здебільшого відносяться до модуля «Streamlink» і відповідають за роботу з потоками.

  • «Stream Ring buffer» – задає розмір буфера для потоків (в мегабайтах). Відповідає параметру «ringbuffer-size» в «Streamlink».
  • «Chunk size» – задає розмір фрагмента під час читання потоку (в байтах). Чим більший розмір фрагмента, то менше навантаження на процесор. Чим менший розмір фрагмента, тим швидше відкривається потік.
  • «Threads job timeout» – час (в секундах) через який буде припинено роботу ланцюжка по читанню/запису фрагментів потоку. Коли це спрацьовує «Streamlink» перестане транслювати потік, але може не закрити з’єднання. Тому рекомендується вибирати значення для цього параметра біле ніж максимальне значення в опціях «General HTTP timeout» та «HLS segment timeout», про які йдеться нижче. Частково відповідає параметру «stream-timeout» в «Streamlink».
  • «General HTTP timeout Connect/Data» – загальний тайм-аут (в секундах) , який використовується для всіх HTTP-запитів, крім тих, які охоплюються іншими параметрами. Для розуміння: в HLS-потоках це буде таймаут для отримання списку сигментів. Окремо встановлюється час (таймаут) для підключення та час на отримання даних, відповідно. Відповідає параметру «http-timeout» в «Streamlink», окрім того, що дає змогу встановити різні значення для з’єднання та читання даних.
  • «HLS segment timeout Connect/Data» – тайм-аут (в секундах) , який використовується для HLS-сегментів (а також DASH и тому подібне). Окремо встановлюється час (таймаут) для підключення та час на отримання даних, відповідно. Відповідає параметру «stream-segment-timeout» в «Streamlink», окрім того, що дає змогу встановити різні значення для з’єднання та читання даних.
  • «HLS segment queue threshold» – Коефіцієнт множення цільової тривалості списку відтворення HLS, після якого потік буде зупинено достроково, якщо після оновлення списку відтворення у чергу не буде поставлено нових сегментів. Відповідає параметру «hls-segment-queue-threshold» в «Streamlink».
  • «Stream retry count» – ця опція встановлює переметри «stream-segment-attempts» та «hls-playlist-reload-attempts» для «Streamlink». Тобто кількість спроб завантаження для сигментів та списку сигментів.
  • «Segment threads» – кількість паралельних завантажень сегментів. Це розмір пулу потоків, який використовується для завантаження сегментів. Відповідає параметру «stream-segment-threads» в «Streamlink».
  • «Segments Queue» – розмір черги сегментів. В «Streamlink» вона є сталою, 20 сегментів. Але це забагато для Live-потоків. Чим меньша чегра тим скоріш будуть закриватися потоки, а також буде меньше споживання оперативної пам’яті та кількості відкритих сокетів. Краще встановити «as threads», тобто відповідає кількості «Segment threads» але не меньше чим 6 сегментів.
  • «HLS live edge» – задає скільки HLS-сегментів потрібно завантажити при старті потоку. Відповідає параметру «hls-live-edge» в «Streamlink».
  • «HLS playlist reload time» – контролює час через який виконується запит для оновлення списку сегментів. Частково відповідає параметру «hls-playlist-reload-time» в «Streamlink». Параметр «segment» має таке ж значення як і в «Streamlink». Значення «duration» відповідає «default» в «Streamlink». Значення «average» це середній час двох сегментів. Значення «default» це або одне зі значень яким відповідають «duration» / «segment», або якщо їх не має встановлено час – 6 секунд.
  • «HLS Stream Data» – якщо активовано, негайно передає дані з сегмента в вихідний буфер під час завантаження. Канали відкриваються швидко, без попередньої буферизації перед стартом. Якщо вимкнено, дані передаються тільки після завантаження першого сигмента. Відповідає параметру «hls-segment-stream-data» в «Streamlink».
  • «HLS Live Restart» – якщо активно, перейти до початку прямої трансляції або якнайдалі назад. Відповідає параметру «hls-live-restart» в «Streamlink».
  • «Debug Streams» – додає журнал роботи модуля «Streamlink» в журнал роботи «TVLINK». Файл журналу роботи знаходиться в каталозі «tvlink/log».

«Sources Proxy» та «Streams Proxy» – дозволяють встановити проксі для джерел та потоків. Формат: «http://login:password@your.proxy:port». Значення «login/password» не обов’язкові. Підтримуються протоколи: http, https, socks5.

Для більшості налаштувань на цій сторінці, щоб зміни набули чинності, потрібно перечитати конфігурацію «TVLINK». Для цього є опція «Apply Settings» внизу сторінки. Опції «Refresh sources at playlist» та «Remove broken channels» цього не потребують.


Такі налаштування потоків як:

  • Threads job timeout
  • General HTTP timeout
  • HLS segment timeout
  • HLS segment queue threshold
  • Stream retry count
  • HLS live edge
  • HLS Stream Data
  • HLS Live Restart

Ви можете встановити окремо для кожного джерела на сторінці «Sources» (іконка біля назви джерела). При цьому не потрібно тиснути на «Apply Settings», зміни набувають чинності одразу.

Ці самі параметри не потребують перезавантаження і на сторінці «Settings».

Кнопка «Default» в формі «Streamer settings» повертає всі окремі налаштування потоків для джерела до основних налаштувань на сторінці «Settings».


FFmpeg transcode stream.

Якщо у вашій системі встановлено «FFmpeg», ви маєте можливість увімкнути модуль «FFmpeg transcode stream».

Опції – це параметри командного рядка FFmpeg. Призначення полів:

  • «Before input» – для параметрів апаратного транскодінгу
  • «Video encoder» – параметри відео енкодера
  • «Audio encoder» – параметри аудіо енкодера

Щоб було зрозуміло, як будуть вставлені ці параметри в командний рядок «FFmpeg», ось приклад (спрощена схема):

/usr/bin/ffmpeg -err_detect ignore_err -stream_loop -1 [Before input] -i http://channel.stream -c:v [Video encoder] -c:a [Audio encoder] -ignore_unknown -map 0:v -map 0:a -f mpegts

За замовчуванням «Video/Audio encoder» містить параметр “copy”. Тобто якщо ці рядки порожні, буде встановлено значення “copy” (пропускати потік без перекодування).

Перед тим, як встановлювати значення, переконайтеся, що «FFmpeg» в системі підтримує ті чи інші параметри. Наприклад, дайте команду

ffmpeg -hide_banner -encoders

щоб подивитися доступні аудіо/відео енкодери.

Якщо процесор у вашій системі (наприклад, Intel Pentium N5000) підтримує апаратне кодування потоків, можна зробити, наприклад, такі налаштування.

  • Before input:
-hwaccel vaapi -hwaccel_output_format vaapi -hwaccel_device /dev/dri/renderD128
  • Video encoder:
h264_vaapi -r 50
  • Audio encoder:
aac -b:a 96k

Після застосування налаштувань (Apply Settings) на сторінці «About» з’явиться посилання на «M3U FFmpeg Playlist» (формат: http://ip-address:port/ffmpeglist).

Увімкнення «FFmpeg transcode stream» не впливає на основний модуль трансляції. Вони працюють паралельно. Ви можете одночасно підключити одних клієнтів до звичайного плейлиста (playlist), а інших до плейлиста «FFmpeg» (ffmpeglist).

За посиланням «http://ip-address:port/ffmpeglist» ви завжди можете отримати плейлист, навіть якщо «FFmpeg transcode stream» вимкнено і в системі немає «FFmpeg». Тому будьте уважні.

Якщо увімкнути «Debug Streams» та запустити «TVLINK» з командного рядка, при зупинці потоку буде виведено інформацію «FFmpeg» (кодування, помилки тощо).

Оновлення EPG.

Ці налаштування відповідають за періодичне оновлення «EPG».

  • «Auto update EPG» – увімкнути/вимкнути періодичне оновлення EPG.
  • «Update period EPG» – вибрати зі списку період оновлення в годинах, або один раз на добу (вночі).