OScam DVBAPI: настройка dvbapi и конфигов в 2026

Если ты уже поднял OScam, прописал reader и видишь в логе, что линия работает — но каналы по-прежнему чёрные — скорее всего, проблема именно в связке oscam dvbapi с демультиплексором ресивера. Это самое частое место, где люди застревают. Ниже разберём всё по порядку: от принципа работы до конкретных строк конфига и чтения лога.

Что такое DVBAPI в OScam и как он работает

DVBAPI — это интерфейс между ядром прошивки ресивера и OScam. Прошивка (Enigma2, Neutrino или другая) принимает зашифрованный DVB-поток и через специальный сокет или файлы передаёт OScam пакеты ECM. OScam запрашивает control word у своего источника — локальной смарт-карты или сетевой CWS-линии — и возвращает CW обратно. Ядро использует его для дескремблирования в реальном времени.

Роль модуля dvbapi в цепочке расшифровки

Цепочка выглядит так: DVB-тюнер → демультиплексор (demux) → ECM-пиды → OScam (модуль dvbapi) → источник ключей → CW → демультиплексор → расшифрованное видео. OScam здесь работает как посредник между «железом» ресивера и источником ключей. Если любое звено цепи рвётся — картинка не появится.

Связь OScam с демультиплексором ресивера (demux)

На Enigma2-устройствах связь идёт через сокет /tmp/camd.socket. На части прошивок также используются файлы PMT в директории /tmp/ — например /tmp/pmt0.tmp, /tmp/pmt1.tmp. Какой именно механизм применяется — определяет параметр pmt_mode в конфиге.

На ресиверах с двумя тюнерами и несколькими demux нужно следить за тем, какой демультиплексор занят. OScam работает с demux 0 и demux 1 параллельно, но иногда конфликтует с другим softcam, который уже держит один из demux открытым.

Отличие локального DVBAPI от сетевого режима

Ключевой момент: oscam dvbapi работает только на устройстве с реальным DVB-тюнером. Если у тебя сервер без тюнера или виртуальная машина — dvbapi там не нужен и не заработает. Для серверного режима OScam работает как newcamd/camd35 хост, а клиент уже расшифровывает у себя. Смешивать эти режимы — типичная ошибка новичков.

OScam в Docker или LXC на машине с проброшенным DVB-адаптером — отдельный случай. Там нужно пробросить устройства /dev/dvb/adapter0/ в контейнер, иначе модуль dvbapi просто не найдёт демультиплексор и будет молча игнорировать все ECM.

Поддерживаемые прошивки: Enigma2, OpenATV, Neutrino, TVHeadend

Enigma2 и его дистрибутивы (OpenATV, OpenPLi, OpenDROID) — основная среда, где используется oscam dvbapi. Neutrino поддерживается, но там pmt_mode чаще всего нужен другой. TVHeadend работает как отдельный источник demux через сокет — там используется режим pmt_mode=6 и отдельный порт для CAPMT. Если у тебя TVHeadend, настройка немного отличается от стандартного Enigma2.

Включение и базовая настройка DVBAPI в oscam.conf

Весь модуль включается одной секцией в главном конфиге. Файл обычно лежит по пути /etc/tuxbox/config/oscam.conf на Enigma2, либо /usr/keys/oscam.conf или /var/keys/oscam.conf на некоторых прошивках — зависит от дистрибутива.

Секция [dvbapi] в oscam.conf

Рабочий минимальный пример для Enigma2:

[dvbapi]
enabled         = 1
boxtype         = dreambox
user            = dvbapi_user
pmt_mode        = 0
request_mode    = 0
au              = 1
delayer         = 0
pmtfile         = /tmp/
socket          = /tmp/camd.socket

Это работает на большинстве OpenATV/OpenPLi-ресиверов из коробки. Каждый параметр разберём отдельно.

Параметр enabled и выбор boxtype

enabled = 1 — очевидно, но именно забытый ноль здесь самая частая причина чёрного экрана. Проверь первым делом.

boxtype определяет, как OScam взаимодействует с демультиплексором. Варианты:

  • dreambox — для всех Enigma2-устройств (Vu+, Gigablue, Formuler, реальные Dreambox)
  • dbox2 — устаревший, для оригинальных dbox2
  • ipbox — для IPBox и аналогов
  • pc — для Linux PC с DVB-картой без прошивки (например, с TVHeadend)
  • pc-nodmx — PC без прямого доступа к demux, через network CAPMT

На Enigma2 всегда ставь dreambox. На TVHeadend — pc или pc-nodmx.

Параметр user — привязка к читателю/линии

Значение user должно совпадать с именем аккаунта в oscam.user. Этот пользователь используется модулем dvbapi для авторизации внутри OScam. Если имя не совпадает — OScam не найдёт, под каким аккаунтом обрабатывать запросы, и ECM не уйдут к reader.

Пример в oscam.user:

[account]
user     = dvbapi_user
pwd      = somepassword
group    = 1
au       = 1

Параметр pmt_mode и его значения от 0 до 6

Это самый неочевидный параметр, и именно здесь чаще всего ломается настройка. Значения:

  • 0 — OScam сам читает PMT через сокет /tmp/camd.socket. Стандарт для Enigma2.
  • 1 — PMT только из файлов в /tmp/pmt*.tmp. Используется на прошивках, где сокет недоступен.
  • 2 — PMT из файлов, с автоматическим обнаружением.
  • 3 — комбинированный: сначала пробует сокет, потом файлы.
  • 4 — только файлы, повторное сканирование при каждом запросе.
  • 6 — network CAPMT через TCP-порт. Используется с TVHeadend и некоторыми IPTV-плеерами.

Если с pmt_mode=0 каналы не открываются — пробуй 3, потом 6. На Neutrino часто работает 1 или 4.

Параметр request_mode и au для autoupdate

request_mode=0 — OScam отправляет один ECM-запрос и ждёт ответа. Режим 1 — параллельный опрос нескольких reader одновременно, быстрее при смене каналов, но создаёт больше нагрузки. При фризах на смене каналов из-за высокого ECM time сетевой линии попробуй request_mode=1.

au=1 включает автообновление EMM (Entitlement Management Messages) — нужно, если используется локальная карта с подпиской.

Файл oscam.dvbapi: приоритеты, маппинг и игнор

Если у тебя несколько источников или каналы вещаются с несколькими CAID — без файла oscam.dvbapi OScam будет выбирать источник случайно или в неудобном порядке. Этот файл позволяет точно управлять тем, какой CAID и провайдер используется для расшифровки.

Синтаксис строк P, I, M, D, L

Каждая строка начинается с буквы-директивы:

  • P: — Priority (приоритет). Задаёт порядок опроса источников.
  • I: — Ignore (игнор). Исключает CAID или провайдер из обработки.
  • M: — Mapping (маппинг). Переназначает CAID на другой.
  • D: — Delay (задержка в мс). Задержка перед запросом ECM.
  • L: — Length. Задаёт длину ECM-пакета для нестандартных карт.

Формат: директива: CAID:ProviderID:SID:ServiceID. Поля можно опускать (заменяя нулями или оставляя пустыми).

Приоритет CAID:provid для нужного источника

Конкретный пример: канал вещается с CAID 0500 (Viaccess) и 1802 (Nagravision). Если хочешь, чтобы OScam всегда брал ключ через Viaccess:

P: 0500:032830
P: 0500:032000
I: 1802:000000

Здесь 032830 — провайдер ID в шестнадцатеричном формате. Найти его можно в логе OScam при первом ECM-запросе — строка вида ECM 0500@032830.

Игнорирование лишних ECM-пидов (I-строки)

Когда OScam дёргает не тот ECM — часто это проявляется как freeze при переключении или вообще нет картинки — помогают I-строки. Например, если тюнер ловит лишний ECM с CAID 0604 (Irdeto), который твой источник не поддерживает:

I: 0604:000000

Это заставит OScam полностью игнорировать этот CAID и не тратить время на запросы, которые всё равно вернут «not found».

Маппинг CAID и delay для проблемных каналов

M-строки нужны редко, но иногда незаменимы. Если у тебя карта работает с CAID 1800, а канал вещается с 1801:

M: 1801:000000:1800:000000

D-строки помогают с нестандартными картами, где нужна небольшая пауза перед запросом. Значение в миллисекундах:

D: 0500:032830:200

Где физически лежит файл и права доступа

Файл oscam.dvbapi лежит в той же директории, что и остальные конфиги OScam:

  • Enigma2/OpenATV: /etc/tuxbox/config/oscam.dvbapi
  • Neutrino: /var/keys/oscam.dvbapi
  • Некоторые дистрибутивы: /usr/keys/oscam.dvbapi

Права должны быть 644 (chmod 644 oscam.dvbapi), владелец — тот же пользователь, от которого запущен OScam. После правки файл подхватывается через reload в веб-интерфейсе без полного рестарта процесса — кнопка «Reload» в разделе Files.

Диагностика и разбор ошибок DVBAPI

Лог OScam — основной инструмент. По умолчанию он пишется в /var/log/oscam.log или в директорию tmpdir из конфига. Смотреть в реальном времени: tail -f /var/log/oscam.log.

Чтение логов: dvbapi connected, demux, ECM not found

При успешной инициализации увидишь строку вида:

dvbapi: DVBAPI version 6 connected
dvbapi: Demux 0 opened

Если demux не открылся — или строки нет, или есть ошибка failed to open /dev/dvb/adapter0/demux0. Это значит либо нет прав на устройство, либо demux занят другим процессом.

При нормальном ECM-запросе:

dvbapi: Demux 0 Trying to descramble PID 0 CAID 0500 PROVID 032830 ECMPID 0701 ANY SID 1234

Если после этого нет строки с CW — reader не вернул ключ. Смотри на статус reader в веб-интерфейсе.

Ошибка «no stream» и пустой demux

«No stream» в логе — OScam открыл demux, но не получает PMT. Причины: неверный pmt_mode, сокет /tmp/camd.socket не создан прошивкой, или OScam запущен раньше, чем GUI прошивки инициализировал demux. Попробуй перезапустить OScam уже после полной загрузки ресивера.

Каналы FTA открываются, кодированные — нет

Это хорошая новость — значит dvbapi и demux работают, проблема только в расшифровке. Скорее всего: нет рабочей линии или карты для нужного CAID, неверный user в секции [dvbapi], или P/I строки в oscam.dvbapi блокируют нужный CAID.

Проверка через веб-интерфейс OScam (статус readers)

Веб-интерфейс по умолчанию доступен на порту 8888 (или что задано в httpport секции [webif]). Раздел Readers показывает статус каждого reader: connected/disconnected, время последнего ECM, количество cache hits. Если reader offline — проблема в линии, а не в dvbapi. Раздел Services покажет, какие CAID/провайдеры доступны.

Использование debug-уровня (-d 65535 / loglevel)

Для детального лога запускай OScam с флагом -d 65535:

oscam -c /etc/tuxbox/config -d 65535

Или в oscam.conf секция [global]:

[global]
logfile   = /var/log/oscam.log
loglevel  = 255

При уровне 255 лог станет очень подробным — там будут видны все ECM-запросы, ответы reader, ошибки маппинга. После диагностики обязательно снизи уровень обратно, иначе лог забьёт раздел за несколько часов.

Критерии выбора источника ключей для DVBAPI

Когда oscam dvbapi настроен правильно, но картинка всё равно фризит — часто виноват источник ключей, а не конфиг. Разберём, что важно при выборе.

Локальная карта vs сетевая CWS-линия

Локальная карта — лучший вариант по стабильности и задержке. ECM time обычно 50–150 мс, нет зависимости от интернета. Но нужен физический кардридер и оригинальная карта с активной подпиской.

Сетевая CWS-линия (через newcamd, camd35 или cccam protocol) добавляет сетевую задержку. При пинге до сервера 20–30 мс и ECM time 200–400 мс всё работает нормально. Если ECM time превышает 800–1000 мс — при смене каналов будут фризы на 1–3 секунды.

На что смотреть при выборе провайдера линии (обобщённо)

Несколько вещей, которые реально важны:

  • Поддерживаемые CAID и провайдеры — убедись, что нужный пакет вообще есть
  • Аптайм сервера — меньше 99% уже некомфортно
  • Политика одновременных подключений — один аккаунт для одного тюнера
  • Тестовый период перед оплатой — адекватный провайдер его предоставит

Стабильность, пинг до сервера и время отклика ECM

Географическая близость сервера реально влияет. Сервер в той же стране даст 10–30 мс пинга, сервер на другом континенте — 120–200 мс, и это заметно при переключении каналов. Смотреть ECM time можно в веб-интерфейсе OScam в разделе Readers — колонка «Avg».

Хороший показатель: ECM avg до 300 мс. 300–600 мс — приемлемо. Больше 800 мс — будут проблемы с быстрой сменой каналов.

Поддержка нужных CAID и пакетов

Перед подключением уточни конкретный список поддерживаемых CAID у провайдера. Один и тот же провайдер может хорошо работать с Viaccess 0500 и плохо — с Nagravision 1800. В лог OScam пишет CAID каждого канала — можно свериться.

Важна легальность: использование сетевых линий регулируется по-разному в разных странах. Ответственность за соблюдение местного законодательства лежит на пользователе.

Какой pmt_mode выбрать для моего ресивера?

Для большинства Enigma2-ресиверов (OpenATV, OpenPLi) начинай с pmt_mode=0 — это стандартный режим через сокет /tmp/camd.socket. Если каналы не открываются — пробуй 3, он сначала пробует сокет, потом файлы PMT. На Neutrino и прошивках, где PMT передаётся только через файлы в /tmp/, нужен режим 1 или 4. Для TVHeadend — 6. Перебор значений 0 → 3 → 6 закрывает 95% случаев.

Почему OScam запускается, но каналы остаются чёрными?

Причин несколько, и их нужно исключать по порядку. Первое: проверь enabled=1 в секции [dvbapi] — звучит банально, но это частая причина. Второе: конфликт с другим softcam (MGcamd, CCcam), который уже держит demux. Третье: неверный boxtype для твоей прошивки. Четвёртое: pmt_mode не подходит — попробуй другие значения. Пятое: нет рабочей линии или локальной карты — проверь статус reader в веб-интерфейсе OScam. Начинай с лога: tail -f /var/log/oscam.log.

Где лежит файл oscam.dvbapi и нужен ли перезапуск после правки?

Типичные пути: /etc/tuxbox/config/oscam.dvbapi на Enigma2, /var/keys/oscam.dvbapi на Neutrino, /usr/keys/oscam.dvbapi на некоторых дистрибутивах. После правки полный рестарт не нужен — в веб-интерфейсе OScam нажми Reload в разделе Files. Изменения подхватятся без прерывания расшифровки текущего канала.

Можно ли одновременно использовать локальную карту и сетевую линию через DVBAPI?

Да, это нормальная конфигурация. В oscam.dvbapi через P-строки задаёшь приоритет: сначала пробует локальная карта, при неудаче — сетевая линия. Например: P: 0500:032830 для карты, которая читается через reader с group 1, и fallback через линию в group 2. Порядок опроса reader для конкретного CAID настраивается через параметр caid и group в oscam.user.

Что значит ошибка «ECM not found» в логе DVBAPI?

Ни один reader не вернул control word. Причины: нет активной подписки на данный CAID у источника, линия в данный момент offline, неверный provid в конфиге reader, или канал вещается с CAID, который твой источник вообще не поддерживает. Проверь в веб-интерфейсе: раздел Readers → статус и последний ECM time. Если reader показывает «connected» но ECM not found — проблема в подписке или неверном CAID/provid.

DVBAPI работает на приставке без тюнера?

Нет. Модуль oscam dvbapi требует физического демультиплексора — устройства /dev/dvb/adapter*/demux* в системе. На устройстве без DVB-тюнера просто нечего открывать. Для ресиверов и компьютеров без тюнера OScam используется в серверном режиме: как newcamd или camd35 хост, к которому подключается клиент на стороне ресивера с тюнером.

Практические советы для стабильного просмотра

Даже самая стабильная линия CCCam или OSCam требует пары простых подготовительных шагов. Обновляйте прошивку ресивера, раз в неделю очищайте ECM‑кеш и держите 15–20% свободного места на USB‑накопителе или во встроенной памяти, чтобы кардридер записывал ключи без задержек.

При настройке антенны оставляйте запас по MER/BER: смещение на два градуса или ослабленный F‑коннектор чаще становится причиной “фризов”, чем сам кардшаринг. Держите под рукой короткий патч‑корд для проверки другого роутера и сохраните два профиля в OSCam — под TCP и под UDP — чтобы мгновенно переключиться, если провайдер начнёт фильтровать протокол.

Utgard.tv следит за каждым хабом 24/7, однако вы можете ускорить диагностику, если будете вести небольшой журнал действий. Записывайте время переключения канала, активный CAID и то, использовали ли вы Wi‑Fi или Ethernet. Такой мини‑отчёт позволит инженерам воспроизвести вашу конфигурацию в лаборатории и предложить решение не за часы, а за минуты.

  • Держите активными две линии: если первый сервер уходит на обслуживание, второй тут же подхватывает поток без повторного ввода логина.
  • Раз в месяц делайте замер скорости и задержек. Стабильных 1–2 Мбит/с при пинге до 80 мс достаточно для SD/HD, но если джиттер превышает 20 мс — переведите роутер на провод.
  • Сохраните в закладки страницу статуса Utgard.tv и Telegram‑бота @utgard_tv_bot — там появляются уведомления о работах раньше, чем успеют среагировать SEMrush или внешние мониторы.