Receptor DVB¶
Perfect Streamer funciona con los adaptadores DVB instalados en el sistema: se admiten los estándares DVB-S, DVB-S2, DVB-T, DVB-T2, DVB-C y ATSC. Adicionalmente están implementadas la descapsulación T2-MI (ETSI TS 102 773) y el descifrado BISS-1 / BISS-E y CI/CAM. La condición principal es un controlador del adaptador correctamente instalado y en funcionamiento; la pantalla «Adaptadores DVB» (Adaptadores DVB) está disponible cuando se detectan dispositivos DVB en el sistema. Los dispositivos DVB-ASI se conectan de otro modo — mediante una entrada de flujo de tipo archivo que apunta a la ruta del dispositivo, sin un registro de adaptador DVB.
Adaptadores¶
Un adaptador es un registro que vincula un sintonizador físico (el par «adaptador/dispositivo» del sistema) con los parámetros de recepción; una vez enganchada la señal, el adaptador entrega el multiplex MPTS del transpondedor. El adaptador se añade en la ventana «Añadir adaptador DVB» (Editor de adaptador DVB):
Modo: Stream — recepción del flujo; Frontend monitor — solo monitorización de la señal, sin lectura del flujo (el valor obsoleto Scanner no se utiliza). El modo y el «Sistema de transmisión» se fijan al crear el adaptador y no se modifican.
Equipamiento — el sintonizador se elige de la lista de los detectados en el sistema; los ocupados se marcan.
Parámetros de sintonización — dependen del sistema de transmisión: la frecuencia (para satélite, en MHz; para terrestre y cable, en kHz), «Tasa de símbolos, ksym/s», «FEC», «Modulación», «Inversión espectral», «Stream id (ISI/PLP)» (véase más abajo); para la recepción terrestre — «Ancho de banda», «Modo de transmisión», «Intervalo de guarda», «Jerarquía».
El hardware es obligatorio en ambos modos —el monitor de frontal también vigila un sintonizador concreto— y para DVB-S, DVB-S2 y DVB-C en modo Stream son obligatorias además la frecuencia y la velocidad de símbolo. El nodo declara estas claves con un valor por defecto inferior a su propio límite inferior y las comprueba al crear el adaptador, de modo que no se puede recurrir al valor por defecto: las ventanas de creación y de edición no dejan guardar el adaptador hasta que los valores estén indicados (Editor de adaptador DVB).
Para los sistemas de satélite se configura la sección «LNB»: las frecuencias de los osciladores locales (Ku universal — 9750/10600, conmutación a 11700 MHz; para la polarización circular y la banda C, valores propios), «Polarización» (el adaptador gobierna la alimentación del conversor: 18 V — horizontal, 13 V — vertical), «Puerto DiSEqC» y «Forzar tono de 22 kHz».
El adaptador en modo Stream tiene que recibir la polarización de forma explícita: no hay modo automático, por defecto no hay ninguna seleccionada y, con la polarización sin seleccionar, el adaptador no se sintoniza: permanece en estado de error e indica que la polarización no está definida. Las ventanas de creación y edición del adaptador no permiten guardar un adaptador de satélite en modo Stream mientras no se haya elegido horizontal o vertical. También hay que elegirla con «Compartir LNB»: allí el valor no influye en nada, porque la alimentación la gobierna el propietario del conversor, pero sin ella el adaptador tampoco se sintonizará.
«Compartir LNB» desactiva el control de la alimentación, de la polarización y del tono — los fija otro receptor, propietario del conversor. El modo se utiliza cuando varios sintonizadores están conectados a un mismo LNB a través de un repartidor (solo pueden recibirse la polarización y la banda elegidas por el propietario), y también para repartir distintos PLP de un mismo transpondedor entre adaptadores independientes — el número de cada uno se define en el campo «Stream id (ISI/PLP)».
«Stream id (ISI/PLP)» selecciona, a nivel del sintonizador, un flujo de un transpondedor multiflujo: el ISI para DVB-S2 multistream, el PLP para DVB-T2. A partir de la 2.0.2.291 el campo tiene tres estados distinguibles, y no son sinónimos:
- -1
«Auto» — no se aplica ningún filtro, el sintonizador toma el flujo por defecto del controlador. Así lo indica la ayuda bajo el campo; en el campo mismo hay un número. Con este valor se crea un adaptador nuevo.
- 0
Una selección explícita del flujo número cero. Es un filtro real, y no «sin definir».
- 1 y siguientes
El flujo con el número indicado.
La interfaz acepta valores de -1 a 255: un número de PLP ocupa ocho bits, y ese tope es un límite de la interfaz y del escáner, no del nodo. Antes de la 2.0.2.291 no existía el valor «auto»: cero era a la vez el mínimo y el valor por defecto, y significaba «sin definir» — no se aplicaba ningún filtro. Tras actualizar el nodo, un cero guardado pasa a ser un filtro real, de modo que un adaptador con 0 en sus ajustes empezará a recibir solo el flujo cero; si no se desea filtro, ponga -1. En un nodo anterior a la 2.0.2.291 la interfaz no ofrece «auto» e indica en qué versión aparece; un -1 introducido allí se guarda como 0.
Las claves de descifrado y la lista de programas del CAM se aplican sobre la marcha; los cambios de los parámetros de sintonización vuelven a sintonizar el frontend. El ajuste «Exportar EPG» escribe la guía de programación del multiplex en la base EPG del nodo (Importación de EPG/XMLTV).
Conexión a los flujos¶
El multiplex recibido se utiliza de dos maneras:
en su totalidad — una entrada de tipo dvb en un flujo MPTS: todo el transpondedor pasa a tránsito o a remultiplexación (Flujos MPTS);
por programas individuales — una entrada demultiplexora en los flujos SPTS (Demultiplexor): el programa se elige por PNR de la lista de servicios detectados.
En la lista de programas del adaptador se ve qué programas se consumen ya: la marca «Activo» con su precisión — se extrae como programa independiente (SPTS) o se lee dentro del multiplex completo (MPTS). Mientras al menos un flujo haga referencia al adaptador, este no puede eliminarse.
Escaneo¶
Para no introducir a mano los parámetros de recepción, se incluye un escáner de transpondedores (ventana «Escaneo DVB», Escaneo DVB). El escáner recorre los transpondedores del satélite o de la banda regional seleccionados, engancha cada uno de ellos, recopila las tablas PSI/SI y forma una lista de multiplex con sus programas: PNR, nombre del servicio, proveedor, indicador de cifrado y los PID principales. Cualquier multiplex encontrado se convierte con un solo botón en un adaptador configurado; pueden seleccionarse y añadirse varios a la vez.
Particularidades:
la fuente de las frecuencias es el «Catálogo» (los listados de referencia de satélites y de bandas regionales) o el «Escaneo ciego» sobre una rejilla de frecuencias sintetizada, con rango y paso opcionales. Los listados tienen cientos de filas, por lo que están ordenados por nombre y sobre la lista hay un campo de búsqueda (Escaneo DVB);
para satélite se elige un «Preajuste LNB» (Ku universal, polarización circular, banda C) o frecuencias propias de los osciladores locales;
el escáner ocupa el sintonizador físico por completo — se necesita un sintonizador que no esté ocupado ni por el sistema ni por otros registros activos; un registro en pausa libera su sintonizador, por lo que un adaptador en funcionamiento puede ponerse en pausa temporalmente y escanearse; los sintonizadores ocupados se ven en la lista con el motivo y no pueden seleccionarse;
hay una sola exploración por nodo — común a todos los adaptadores. Lanzar una pasada nueva termina la anterior y ocupa su lugar; el nodo solo rechaza cuando la pasada anterior no ha liberado el sintonizador en el tiempo previsto — entonces el lanzamiento se repite unos segundos después;
una pasada se detiene con el botón «Parar»; también termina cuando se cierra la ventana de exploración — de cualquier modo, incluida la adición de un multiplex encontrado. Detenerla no borra los resultados: los multiplex encontrados permanecen en pantalla hasta que se quitan con el botón «Nueva exploración» o se cierra la ventana;
no hace falta esperar al final de la pasada para levantar un adaptador en el mismo sintonizador: un adaptador configurado se lleva el sintonizador. Al toparse con el escáner, le pide que libere el sintonizador; durante un intento el adaptador pasa a error con un mensaje de dispositivo ocupado y se levanta en el siguiente — aproximadamente un segundo después. La exploración termina entonces como cancelada, mientras que sus resultados siguen disponibles. La prioridad aquí es unidireccional: siempre se interrumpe la exploración, aunque haya empezado primero y ya haya recorrido la mayor parte de los transpondedores. Esto afecta solo a los adaptadores en modo Stream — el modo Frontend monitor lee el sintonizador sin ocuparlo y no se topa con el escáner;
por defecto el escáner recorre un transpondedor una sola vez: por el PLP que el listado le asigna y, si no le asigna ninguno, sin filtro, por aquel al que se enganchó el sintonizador. El campo «Sondear PLP hasta» añade un recorrido: el escáner se sintoniza además en los PLP desde el primero hasta el número indicado y se detiene en el primero en el que no hay nada. Solo se recorren los transpondedores DVB-T2; cada PLP inexistente cuesta unos cinco segundos de espera, por lo que el recorrido está desactivado por defecto. Cada PLP encontrado se convierte en una fila de resultados aparte con su propia lista de programas, y su número se traslada al «Stream id (ISI/PLP)» del adaptador creado. También aparecen filas separadas en una misma frecuencia sin recorrido — allí donde el propio listado enumera PLP distintos;
el escáner no entra dentro de T2-MI: los parámetros de descapsulación se definen ya en los ajustes del adaptador creado. El recorrido de PLP descrito más arriba no tiene relación con T2-MI — se trata de PLP a nivel del sintonizador, una capa por debajo de las portadoras.
Descapsulación T2-MI¶
T2-MI (T2-Modulator Interface, ETSI TS 102 773) es un formato de transporte de flujos DVB-T2 por canales de distribución, habitualmente satelitales DVB-S/S2 (multistream incluido): el transpondedor externo lleva una o varias portadoras T2-MI, cada una de las cuales encapsula BBFRAME con uno o varios PLP. Tras la descapsulación se extrae el MPEG-TS interno con sus programas y sus tablas PSI/SI.
Perfect Streamer funciona en modo multi-carrier: un mismo adaptador entrega simultáneamente el multiplex externo y todas las portadoras T2-MI descapsuladas. Ajustes (sección «T2-MI»):
- «Modo T2-MI»
Off — la descapsulación está desactivada, el flujo externo se transmite tal cual (si se detecta T2-MI en el multiplex, el nodo lo indica en el registro); Manual — la descapsulación está siempre activada; Auto — las portadoras se detectan automáticamente a partir de las tablas PMT y, sin ellas, el adaptador funciona como un multiplex corriente.
- «T2-MI PID»
Creación previa de una portadora en un PID conocido antes de que lleguen las tablas; las demás portadoras se detectan de todos modos automáticamente.
- «T2-MI PLP»
El número de PLP que se extrae de cada portadora; no existe un valor por portadora — para distintos PLP se configuran adaptadores independientes con LNB compartido. Si no llegan BBFRAME con el PLP indicado, el nodo escribe en el registro la lista de los PLP observados; esa misma lista se ve en las estadísticas del adaptador, en la sección «Portadoras T2-MI». El campo «Filtro T2-MI TSID (-1 = cualquiera)» está reservado.
Este es un PLP distinto del de «Stream id (ISI/PLP)»: aquí el número se elige dentro de la portadora, ya tras la descapsulación, mientras que allí se elige a nivel del sintonizador, antes de ella. El sentido de -1 también difiere: en el filtro TSID es «cualquiera», en «Stream id (ISI/PLP)» es «auto».
Los programas de los multiplex internos aparecen en la lista común de programas del adaptador con una marca de PLP. Para conectar un programa así a un flujo SPTS se emplea el PNR compuesto — número de portadora × 65536 + PNR dentro de ella (Demultiplexor); la portadora 0 es el multiplex externo. Los programas de una misma portadora que comparten el mismo conjunto de PID de medios los considera el nodo espejos unos de otros y los marca «[test]» — todos y cada uno, sin que haya uno «verdadero» entre ellos; del mismo modo se marcan los feeds de prueba reconocidos por el nombre (se reconocen nombres ingleses del tipo «test card» y «feeds»). Un programa marcado no levanta alarmas sobre su propio estado: un duplicado que, por los PID compartidos, no recibe paquetes propios parecería de otro modo sin verificar. Pero la marca no oculta el programa — puede conectarse en igualdad de condiciones con los demás, y en el selector de programas esas filas van las últimas.
Descifrado¶
BISS. Descifrador BISS-1 / BISS-E por software (sección «Descifrado BISS»). Se definen pares «slot — clave»; en un mismo adaptador pueden estar activos varios descifradores:
slot — número de programa (PNR) del multiplex externo: se descifran todos los PID del programa;
slot — PLP de una portadora T2-MI: la clave se aplica a toda la portadora antes de la descapsulación. Esto es obligatorio para los flujos multistream cifrados — sin la clave, el descapsulador descarta cada paquete cifrado.
El slot se elige de la lista «Programa / PLP»: las filas van marcadas con · BISS · en un programa con ECM BISS, · CA · en los demás cifrados, · T2-MI · en las portadoras y · clear · en los programas en claro — estos últimos van al final. Están en la lista a propósito: la clave suele introducirse por adelantado, un feed de eventos está en claro entre eventos y en un multiplex sin un solo programa cifrado la lista quedaría de otro modo vacía. La lista se toma de una instantánea en vivo del adaptador, por lo que un adaptador nuevo y uno detenido no la tienen — el campo se llama entonces «Id de slot (PNR ≥ 0, o -(plp+1))» y el número se introduce a mano.
El formato de la clave se determina por su longitud: 12 dígitos hexadecimales — BISS-1 (los bytes de control se calculan automáticamente), 16 — BISS-E. Las claves se aplican sobre la marcha, sin reiniciar el adaptador. El funcionamiento de la clave se aprecia en los contadores de las estadísticas del adaptador: el crecimiento de «descifrados» indica que la clave funciona; el crecimiento de «falta clave», que la clave no está definida o está definida en el nivel equivocado; el crecimiento de «err», que la clave es incorrecta.
CI/CAM. El adaptador con un módulo CAM instalado descifra los programas seleccionados a través del Common Interface (sección «Descifrado CI/CAM»): se enumeran los números de los programas y el módulo los descifra directamente en la cadena de recepción. La lista se aplica sobre la marcha y no depende del sistema de transmisión. El estado del módulo, los sistemas CA admitidos y el estado de descifrado de cada programa se ven en las estadísticas del adaptador y en la pantalla «Equipamiento» (Equipamiento); la extracción del módulo, la ausencia de suscripción y los errores de CA generan alertas (Catálogo de códigos de alerta).
«Limpiar CA de la salida descifrada» (ajuste adicional) elimina las tablas y los mensajes CAS de los programas ya descifrados — de forma análoga al filtro de flujo «Eliminar CAT / ECM / EMM» (Filtrado MPEG-TS).
Control de la señal¶
En la lista de adaptadores se ven el enganche de la señal, el nivel, el SNR, el BER y la tasa de bits de entrada de cada adaptador. La ventana de estadísticas del adaptador (Estadísticas del adaptador) muestra el historial de la señal (nivel, SNR, BER, bloques no corregidos), las métricas actuales del frontend, la lista de programas con sus datos de medios, los contadores de las portadoras T2-MI y de los descifradores, el estado del módulo CAM y el registro; los contadores acumulados se ponen a cero con el botón «Restablecer estadísticas». Para controlar la antena sin leer el flujo, el adaptador se crea en modo Frontend monitor.
La pérdida del enganche, la caída del nivel o de la calidad de la señal y el aumento de los errores BER y de los bloques no corregidos generan alertas con umbrales configurables (Alertas (alerter); los umbrales están en los ajustes del alertador).
Búfer de recepción. «Búfer de demux (bloques)» (ajuste adicional) define el tamaño del búfer circular de recepción en bloques de 64 KB. El valor por defecto, 512 (32 MB), cubre los escenarios de transpondedor completo DVB-S/S2 con varios consumidores; en sistemas poco cargados o embebidos puede reducirse. En caso de desbordamientos del búfer (el contador se ve en las estadísticas y el mensaje, en el registro), aumente el búfer o reduzca el volumen de los datos recibidos — por ejemplo, renuncie a leer el multiplex completo si no es necesario. Tenga en cuenta la memoria: cada adaptador reserva «bloques × 64 KB».
Permisos de acceso a los dispositivos¶
Si los adaptadores DVB no se muestran en Perfect Streamer aunque estén presentes en el sistema, conceda al servicio permisos sobre los dispositivos DVB. Cree el archivo /etc/udev/rules.d/99-dvb-permissions.rules con la línea:
SUBSYSTEM=="dvb", GROUP="video", MODE="0660"
A continuación, añada el usuario del servicio al grupo video y aplique los permisos:
sudo usermod -aG video pss
sudo chown -R root:video /dev/dvb/*
sudo systemctl restart pss
Tras reiniciar el sistema, la regla de udev establece los permisos automáticamente.