Local TV Guide в OScam: EPG и каналы 2026
Если вы разбираетесь с тем, почему local tv guide через CCcam OScam настройка локальных каналов EPG не работает как надо — канал открывается, а гид пуст или показывает программу чужого региона — значит, вы уже прошли половину пути. Сервер поднят, карта расшарена, поток идёт. Осталось разобраться, почему ресивер не собирает расписание. Это отдельная история, и OScam тут виноват меньше, чем кажется.
Откуда берётся local tv guide: EPG в связке OScam и ресивера
Главное заблуждение, из-за которого люди часами копаются в конфигах OScam: сам OScam программу передач не генерирует и не отдаёт. Его задача — дешифровать поток. EPG — это отдельные таблицы внутри транспондера, и читает их уже ресивер, а не демон кардшаринга.
Транспондерный EPG против сетевого (network EPG)
Транспондерный EPG передаётся как EIT (Event Information Table) на PID 0x12. В нём два уровня: Now/Next — текущая и следующая передача, и расширенный гид на несколько дней. Большинство спутниковых провайдеров транслируют расширенный EIT в том же мультиплексе, и ресивер собирает его фоном, пока вы смотрите каналы.
Network EPG — другой подход. Провайдер выделяет отдельный транспондер или поток, где лежит гид для всего букета. Enigma2 умеет подтягивать оба варианта, но иногда они конфликтуют: network EPG привязан к другому региону, и ресивер показывает программу не ваших локальных каналов, а соседнего рынка.
Роль OScam: дешифрование потока, а не генерация гида
OScam видит поток как набор зашифрованных пакетов. Он получает ECM-запрос, обращается к карте или удалённому ридеру, получает CW (control word) и передаёт его ресиверу. На этом его работа заканчивается.
Проблема возникает, когда провайдер шифрует сами EIT-таблицы — это делают некоторые операторы платного ТВ. В таком случае расширенный EPG физически не читается, пока OScam не дешифрует соответствующие пакеты. Если ECM time высокий или ридер даёт сбои, расширенный гид просто не накапливается — ресивер не успевает собрать таблицы между ключевыми моментами.
Где ресивер хранит данные гида (epg.dat, /etc/enigma2)
Enigma2 сохраняет собранный EPG в файл epg.dat. Стандартный путь — /etc/enigma2/epg.dat, но на ресиверах с внешним накопителем это часто /media/hdd/epg.dat или /media/usb/epg.dat. Если прошивка хранит файл на внутренней памяти объёмом 64–128 МБ и место заканчивается, гид просто не сохраняется между перезагрузками — после включения ресивер снова начинает с нуля.
Проверьте df -h на ресивере. Если раздел / забит под 90%, epg.dat либо не создаётся, либо усекается.
Настройка фильтрации локальных каналов в oscam.services
Здесь начинается реальная работа. Файл oscam.services — это то место, где вы говорите OScam, какие сервисы к какой группе относятся. Без правильной настройки запросы по локальным каналам могут уходить на медленный удалённый ридер вместо локальной карты.
Структура файла /etc/tuxbox/config/oscam.services или /var/etc
Путь зависит от прошивки. На OpenATV и OpenPLi с Tuxbox это обычно /etc/tuxbox/config/oscam/oscam.services. На некоторых сборках — /var/etc/oscam.services. Проверьте, где лежит основной oscam.conf — рядом с ним и ищите.
Структура блока выглядит так:
[service]
label = local_channels
caid = 0500
provid = 040810
srvid = 0001,0002,0003,0004
Параметр label — произвольное имя группы. caid — идентификатор системы шифрования (Viaccess — 0500, Conax — 0B00, Nagravision — 1800 и т.д.). provid — провайдерский идентификатор, берётся из лога или webif. srvid — список ID сервисов через запятую.
Привязка caid и provid к группе сервисов
Если вы не знаете srvid нужных каналов — включите детальный лог OScam (уровень 64 или 255) и переключите несколько локальных каналов. В лог пойдут строки вида:
2026/01/15 14:23:11 s ECM caid 0500 prov 040810 srvid 00A1 ...
Вот вам и srvid. Соберите их в группу local_channels и дальше привяжите эту группу к нужному ридеру.
Использование oscam.srvid для меток каналов в логе
Файл oscam.srvid — не фильтр, а справочник. Он нужен для читаемости: вместо числа 00A1 в логе и webif вы увидите название канала. Формат простой:
0500:040810|00A1|Local Channel 1
0500:040810|00A2|Local Channel 2
На реальную фильтрацию это не влияет, но когда разбираете проблему с EPG, читаемый лог экономит время.
Reader-фильтры: chid, ident, services= в oscam.server
В файле /etc/tuxbox/config/oscam/oscam.server (или /var/etc/oscam.server) каждый ридер может иметь параметр services. Именно здесь вы привязываете группу из oscam.services к конкретному ридеру:
[reader]
label = local_card
protocol = internal
device = /dev/dvb/adapter0/ca0
caid = 0500
ident = 0500:040810
services = local_channels
Инверсия через ! работает так: services = !foreign_channels означает «всё, кроме этой группы». Осторожно с этим: если вы случайно инвертировали группу локальных каналов, они уйдут на другой ридер или вообще получат отказ. Это довольно частая причина, по которой local tv guide перестаёт работать после редактирования конфигов.
SoftCam.Key, ECM/EMM и почему гид не открывается вместе с каналом
Канал идёт, а гид пустой — это нередко история про ECM time и EMM-обновления, а не про конфиги фильтрации.
Пути к SoftCam.Key и приоритет чтения OScam
SoftCam.Key используется для программных ключей (FTA-каналы с мягким шифрованием, BISS, Irdeto). Стандартные пути: /etc/SoftCam.Key, /usr/keys/SoftCam.Key, /var/keys/SoftCam.Key. OScam читает его через модуль softcam — путь задаётся в oscam.conf секции [global] параметром softcam.
После обновления EMM провайдером ключи в SoftCam.Key устаревают. Канал начинает фризить с интервалом в 10–30 секунд (цикл обновления CW), и ресивер в это время не накапливает EIT. Результат — гид либо пустой, либо содержит только несколько часов данных.
EMM-обновление ключей и сдвиг времени в EPG
Неверный часовой пояс — одна из самых частых причин, по которой время в гиде съезжает на 2–3 часа. OScam тут вообще ни при чём. EPG содержит метки в UTC, и ресивер конвертирует их в локальное время согласно своим настройкам. Если Enigma2 выставлен на неверный timezone или NTP не синхронизирован — гид будет показывать неверное время при исправно работающем дешифровании.
Проверьте: date на ресивере через SSH, сравните с реальным временем. Если расхождение совпадает со сдвигом в EPG — проблема не в OScam.
Проверка через webif: ECM time, decode rate
Webif OScam доступен по порту 8888 по умолчанию. Настраивается в oscam.conf:
[webif]
httpport = 8888
httpuser = admin
httppwd = yourpassword
В разделе «Readers» смотрите колонку ECM time. Норма для локальной карты — 50–200 мс. Удалённый ридер с одним хопом — 200–500 мс. Если видите 1000 мс и выше — это уже проблема: ресивер запрашивает CW, получает его с задержкой, поток рвётся, EIT-таблицы не накапливаются нормально.
Протокол и порты: CCcam-линии, влияющие на стабильность гида
CCcam внутри OScam работает как протокол ридера, а не самостоятельный демон. Это важный момент, который часто путают.
Формат C-линии: C: host port username password
Классический формат C-линии для чистого CCcam-демона:
C: hostname.example.com 12000 myuser mypassword
При использовании OScam вместо CCcam вы конвертируете эту строку в блок ридера в oscam.server:
[reader]
label = remote_cccam
protocol = cccam
device = hostname.example.com,12000
user = myuser
password = mypassword
cccversion = 2.3.0
cccmaxhops = 2
Параметр cccmaxhops критически важен для стабильности EPG — об этом ниже.
Стандартный порт 12000 и newcamd-альтернативы
Порт 12000 — де-факто стандарт для CCcam, но его часто меняют на нестандартный из соображений безопасности или чтобы обойти блокировки. Newcamd работает на портах 10000–10010 чаще всего, протокол newcamd в OScam — отдельный тип ридера с параметром key для DES-ключа.
Нестабильное соединение по CCcam — обрывы, реконнекты, таймауты — напрямую влияет на накопление EPG. Если соединение рвётся каждые 5–10 минут, ресивер получает фрагментированный поток и EIT-таблицы не успевают собраться полностью.
cccam.cfg против oscam.server для протокола cccam
Если у вас на ресивере параллельно запущены и CCcamd, и OScam — убедитесь, что они не конкурируют за одну и ту же карту или порт. Два ридера с одним caid в разных демонах дают непредсказуемое поведение: запросы по локальным каналам могут уходить то на один, то на другой ридер. Лучше выбрать один демон и вести всё через него.
Как выбрать источник линии для стабильного local tv guide
Задача — не найти «лучшего провайдера», а понять, какая линия технически подходит для нормального накопления EPG. Вот что реально измерять.
Критерии оценки: аптайм, ping ECM, количество хопов
ECM time в webif — главный показатель. Для стабильного local tv guide через CCcam OScam настройка локальных каналов EPG требует ECM time не выше 300–400 мс. Выше — гид будет рваным или пустым, потому что ресивер не успевает декодировать EIT в потоке.
Аптайм ридера смотрите в webif в колонке «Uptime». Линия, которая переподключается каждые 20–30 минут, для EPG бесполезна — даже если канал открывается, гид не накапливается.
Количество хопов в CCcam показывает, сколько серверов стоит между вами и оригинальной картой. CCcam version info (cccreshare в логе) отражает это число. Каждый хоп добавляет 50–150 мс к ECM time.
Опасность многохоповых (reshare) линий для EPG
Линия с 3–4 хопами может давать ECM time 800–1200 мс. Канал при этом формально открывается — CW приходит до истечения таймаута декодирования — но EIT-таблицы, которые идут в том же зашифрованном потоке, не обновляются достаточно часто. Ресивер накапливает только часть расписания, гид выглядит заполненным наполовину или отстаёт на день.
Параметр cccmaxhops = 1 в OScam ограничивает принимаемые перешары одним хопом. Это сразу отрезает самые медленные линии.
Локальная карта против удалённого шаринга
Локальная карта в ридере — эталон. ECM time 50–100 мс, никаких обрывов соединения, полный EPG. Если возможности поставить физическую карту нет — ищите линию с минимальным числом хопов и стабильным аптайм от 99% за 7 дней. Измерьте ECM time самостоятельно через webif за несколько часов в прайм-тайм, не доверяйте заявленным показателям.
Диагностика: пустой или неверный гид передач
Пошаговый разбор — от лога до форс-скана. Не пропускайте шаги, даже если кажется, что ответ очевиден.
Чтение oscam.log и уровни debug (-d 255)
Запустите OScam с максимальным уровнем логирования:
oscam -c /etc/tuxbox/config/oscam -d 255 -l /tmp/oscam.log
В логе ищите строки с rejected, not found, invalid. Это покажет, какие ECM-запросы не получают ответа. Сопоставьте caid и provid из отказных строк с содержимым oscam.services — расхождение означает, что фильтр настроен неверно.
Также смотрите на строки no matching reader — это значит, что для данного сервиса ни один ридер не подходит по фильтрам. Часто это результат случайной инверсии через ! в параметре services=.
Проверка EIT через tcpdump/dvbsnoop на ресивере
Если хотите убедиться, что EIT-таблицы вообще приходят на ресивер, используйте dvbsnoop:
dvbsnoop -s sec 0x12 -b -n 10 | head -100
PID 0x12 — это EIT. Если данные идут, но гид пустой — проблема в Enigma2 или в epg.dat. Если данных нет совсем — либо провайдер шифрует EIT, либо дешифрование не работает нормально.
tcpdump помогает проверить, есть ли трафик между ресивером и OScam-сервером:
tcpdump -i eth0 port 8888 or port 12000
Сброс epg.dat и форс-скан транспондера
Если файл EPG повреждён, Enigma2 может читать из него мусор и не обновлять гид. Процедура сброса:
- Остановить Enigma2:
init 4или через меню - Удалить файл:
rm /etc/enigma2/epg.dat(или/media/hdd/epg.dat) - Запустить Enigma2:
init 3 - Зайти в сервисный скан, выбрать транспондер нужного провайдера, запустить форс-скан
- Включить автосбор EPG в настройках Enigma2 (если был выключен)
После форс-скана ресивер заново пройдёт по транспондерам и начнёт собирать EIT с нуля. Полный гид на несколько дней собирается за 15–40 минут в зависимости от провайдера.
Именно так и решается большинство проблем с local tv guide через CCcam OScam настройка локальных каналов EPG — не правкой конфигов OScam, а перезапуском сбора EPG на стороне ресивера после того, как дешифрование уже работает нормально.
Частые вопросы
Почему канал открывается, а программа передач пустая?
OScam дешифрует только видеопоток, EPG читается ресивером из EIT-таблиц (PID 0x12) отдельно. Проверьте четыре вещи: часовой пояс и NTP на ресивере, ECM time в webif (порт 8888) — если выше 500 мс, ресивер не успевает декодировать EIT, — целостность epg.dat и включён ли автосбор EPG в настройках Enigma2. Удалите epg.dat и сделайте форс-скан транспондера.
В каком файле фильтровать локальные каналы в OScam?
Основной файл — oscam.services с блоками [service], где указываются caid, provid и srvid. Лежит в /etc/tuxbox/config/oscam/ или /var/etc/ в зависимости от прошивки. Привязка группы к конкретному ридеру — параметр services= в блоке [reader] файла oscam.server. Инверсию через ! используйте осторожно — легко случайно заблокировать нужные каналы.
Какой порт использует webif OScam для диагностики гида?
По умолчанию порт 8888, задаётся директивой httpport = 8888 в секции [webif] файла oscam.conf. Через webif видны ECM time, EMM rate и decode rate по каждому ридеру — это главный инструмент для понимания, почему EPG не накапливается при работающем дешифровании.
Влияет ли количество хопов CCcam на гид передач?
Да, напрямую. Каждый хоп добавляет 50–150 мс к ECM time. При 3–4 хопах ECM time легко уходит за 800–1000 мс, и ресивер не успевает своевременно декодировать EIT-пакеты — гид собирается фрагментарно или не собирается вообще. Ограничьте хопы параметром cccmaxhops = 1 в OScam, локальная карта даст ECM time 50–100 мс и стабильный EPG.
Как сбросить и пересобрать local tv guide на ресивере?
Остановите Enigma2 командой init 4, удалите /etc/enigma2/epg.dat или /media/hdd/epg.dat, запустите Enigma2 обратно (init 3), зайдите в сервисный скан, выберите нужный транспондер и запустите форс-скан. После этого включите автосбор EPG в настройках — полный гид соберётся за 15–40 минут.
Время в гиде сдвинуто на несколько часов — это проблема OScam?
Нет. OScam не управляет временными метками EPG. EIT содержит время в UTC, и ресивер переводит его в локальное время по своим настройкам timezone. Проверьте настройки времени в Enigma2 и синхронизацию по NTP: выполните date через SSH и сравните с реальным временем. Если расхождение совпадает со сдвигом в гиде — исправьте timezone ресивера, не трогая OScam.