Adaptadores DVB¶
Perfect Streamer admite cualquier adaptador DVB instalado en el sistema. Estándares soportados: DVB-S, DVB-S2, DVB-T, DVB-T2, DVB-C, ATSC. Además se implementan: la desencapsulación T2-MI (ETSI TS 102 773) y el descifrado BISS-1 / BISS-E.
La condición principal es un controlador de adaptador correctamente instalado y en funcionamiento en el sistema.
La sección DVB aparece únicamente si el sistema dispone de adaptadores DVB válidos. La reconfiguración en caliente no está soportada; se requiere reiniciar el streamer.
Conexión del adaptador¶
Para añadir un nuevo adaptador DVB, vaya a la sección correspondiente y añada el adaptador:
Establecer el nombre del adaptador.
Seleccionar un adaptador de la lista de los disponibles en el sistema.
Seleccionar el modo Stream.
Especificar el tipo de sistema de transmisión: DVB-S, DVB-S2, DVB-T, DVB-T2, DVB-C.
Especificar los parámetros de recepción: Frecuencia portadora, Polarización, Tasa de símbolo, FEC, Modulación, ID del flujo DVB, Frecuencia del oscilador, Oscilador banda alta, Límite banda alta, Modo DiSEqC 1.0 y otros parámetros según el tipo.
Opcionalmente puede habilitarse el registro de EIT en la base de datos EPG (Registrar EIT en la BD EPG).
Repetir la incorporación para cada adaptador presente en el sistema.
Escaneo DVB¶
Para evitar introducir manualmente los parámetros de recepción (frecuencia, polarización, tasa de símbolo, FEC, modulación), Perfect Streamer incluye un escáner de transpondedores integrado. El escáner recorre los transpondedores del satélite seleccionado (DVB-S/S2) o de la banda regional (DVB-C, DVB-T/T2), realiza la sintonización y la captura de cada uno, recopila las tablas PSI/SI (PAT, PMT, SDT) y elabora la lista final de multiplex con sus programas. Cualquier multiplex encontrado se añade a la lista de adaptadores DVB con un solo botón.
El escáner ocupa el adaptador físico por completo; para iniciarlo se requiere un adaptador que no esté siendo utilizado ni por el núcleo del sistema operativo ni por ninguna entrada de adaptador DVB activa en Perfect Streamer.
Adaptadores disponibles¶
Al abrir la pantalla de escaneo en el panel de administración, se muestra una lista de los adaptadores DVB físicos del sistema junto con su estado de ocupación:
free — el adaptador está disponible para el escaneo.
kernel — el dispositivo está retenido por otro proceso del sistema operativo.
pss-id-N — el adaptador ya está siendo utilizado por una entrada de adaptador DVB en Perfect Streamer con el identificador indicado. No es posible iniciar el escáner en él mientras dicha entrada esté activa. Para liberar el adaptador temporalmente, la entrada de adaptador DVB existente debe ponerse en pausa (el indicador Pause en sus ajustes).
Listas de transpondedores¶
El escáner se basa en listas de referencia en formato Enigma2: la lista de satélites satellites.xml y las listas regionales cables.xml / terrestrial.xml. Cada archivo contiene un conjunto de transpondedores para una posición orbital conocida o para una banda regional DVB-T/C (para más detalles, consulte el sitio del proyecto oe-alliance-tuxbox-common).
Los archivos se ubican en el directorio sat/ relativo a pss.json (por defecto /etc/pss/sat/). Se incluyen con la distribución de Perfect Streamer y se cargan al abrir la pantalla de escaneo. Si es necesario, pueden actualizarse sustituyendo el archivo XML correspondiente.
En el panel de administración, las listas de referencia se presentan como tres listas:
Satélite — posiciones orbitales (por ejemplo, Hot Bird 13.0°E, Astra 19.2°E).
Región de cable — país o proveedor DVB-C.
Región terrestre — región DVB-T/T2.
Si el satélite o la región requeridos no están presentes en las listas de referencia, se puede actualizar el XML o utilizar en su lugar el escaneo ciego (véase más abajo).
Inicio¶
En el diálogo de escaneo se especifican en orden los siguientes elementos:
Un adaptador físico libre.
Tipo de delivery system: DVB-S, DVB-S2, DVB-T, DVB-T2 o DVB-C.
Fuente:
para DVB-S/S2 — una posición orbital de la lista de satélites y los parámetros LNB (frecuencias del oscilador local LO1 y LO2, límite de la banda superior, puerto DiSEqC);
para DVB-C — una región de cable;
para DVB-T/T2 — una región terrestre.
Tras pulsar Iniciar, el escaneo se ejecuta en segundo plano. El progreso se muestra en el panel de administración:
el porcentaje de avance basado en el número de transpondedores procesados;
la frecuencia y la polarización actuales;
los contadores Multiplex encontrados y Programas encontrados;
un árbol de los multiplex ya encontrados, desplegable hasta los programas.
El escáner es un recurso compartido para todo el streamer: solo se ejecuta un escaneo a la vez. Si se inicia un nuevo escaneo mientras hay otro en curso, el anterior se cancela automáticamente. El botón Cancelar interrumpe el escaneo y borra la lista acumulada.
La duración del escaneo depende del número de transpondedores en la lista de referencia seleccionada (típicamente hasta 5 segundos por transpondedor: hasta 2 segundos para el enganche de la señal y hasta 5 segundos para la recopilación de las PSI). Valores típicos:
DVB-S Hot Bird 13.0°E — alrededor de 2 minutos (44 transpondedores).
DVB-S Astra 19.2°E — alrededor de 1,5 minutos.
DVB-T región europea — menos de un minuto.
Resultado¶
El resultado del escaneo se muestra como un árbol multiplex → programas.
Parámetros del multiplex:
frecuencia, polarización, tasa de símbolo;
FEC, modulación, delivery system;
identificador del flujo de transporte (TSID);
las lecturas del frontend en el momento de finalización de la recopilación de PSI — SNR, Signal, BER;
los contadores pmt-total / pmt-recv — cuántas tablas PMT declaró la PAT y cuántas se recopilaron realmente dentro del tiempo de espera.
Parámetros del servicio:
PNR (program_number) — el identificador del servicio dentro del multiplex;
Nombre y Proveedor — obtenidos de la tabla SDT, en UTF-8;
scrambled — el indicador de cifrado. Su origen se determina en el siguiente orden: el bit
free_CA_modede la SDT (declaración del broadcaster) → los indicadores de cifrado de transporte de la PMT. Si ni la SDT ni la PMT llegan dentro del tiempo de espera, el valor por defecto es 0 («no cifrado»); el estado real se determina al intentar la recepción;video-pid, audio-pid, pcr-pid — los principales flujos elementales del servicio.
Aplicación del resultado¶
El multiplex seleccionado en el árbol se añade a la lista de adaptadores DVB con un solo botón. Se crea una nueva entrada con los parámetros del resultado del escaneo (frecuencia, polarización, tasa de símbolo, FEC, modulación, delivery system) junto con los parámetros LNB y el par adapter/device especificados al iniciar el escaneo. El nombre del adaptador lo establece el usuario; los parámetros adicionales (claves BISS para canales cifrados, T2-MI, LNB compartido, etc.) se rellenan una vez creada la entrada, en sus ajustes.
Los programas de los multiplex encontrados se aplican por separado — creando un flujo (Stream) con una fuente de entrada demuxer direccionada por el PNR (véase la sección Conexión de un flujo SPTS a un servicio de multiplex DVB).
Escaneo ciego¶
El modo ciego se utiliza cuando:
el satélite requerido no está en las listas de referencia (posición orbital no estándar, uplink local);
las listas de referencia regionales DVB-T/C son insuficientes o están desactualizadas para una ubicación concreta;
es necesario reverificar un tramo de la banda con independencia de la lista de transpondedores conocidos.
En este modo, el escáner no consulta las listas de referencia, sino que sintetiza una lista de transpondedores a partir de una rejilla de frecuencias. Por defecto se utilizan los siguientes rangos típicos:
DVB-S/S2 Ku — 10700..12750 MHz, paso de 4 MHz, ambas polarizaciones (H y V), tasas de símbolo típicas 22000 / 27500 / 30000 ksym/s.
DVB-C — 47000..862000 kHz, paso de 8000 kHz, QAM-64 y QAM-256, tasas de símbolo típicas 6875 / 6900 / 6952 ksym/s.
DVB-T/T2 — 174000..862000 kHz, paso de 8000 kHz.
Un barrido ciego completo de la banda Ku tarda del orden de 100 minutos (varios miles de puntos de sintonización). En la práctica, el rango se acota manualmente en el panel de administración — frecuencia mínima/máxima y paso de rejilla. Por ejemplo, un barrido de 11700..11800 MHz con paso de 4 MHz para una sola banda LNB dura unos 5 minutos.
El formato del resultado de un escaneo ciego es idéntico al de uno normal. Particularidades:
los campos FEC y Modulación de los multiplex encontrados se fijan en el valor AUTO — el escáner no determina sus valores exactos;
el delivery system es igual al solicitado (DVB-S, DVB-S2, …). Para redes mixtas se recomienda realizar dos pasadas — DVB-S y DVB-S2 por separado.
La aplicación de un multiplex procedente de un escaneo ciego se realiza igual que la de uno normal — mediante el botón que lo añade a la lista de adaptadores DVB. Los campos FEC y Modulación suelen dejarse en AUTO y, si es necesario, se afinan tras conseguir un enganche estable de la señal en el transpondedor concreto.
Tamaño del búfer de recepción del kernel¶
El parámetro buffer-size (entero, valor por defecto 512) establece el tamaño del búfer circular DVB demux del kernel en bloques de 65536 bytes.
512(32 MB) — valor por defecto recomendado. Cubre escenarios DVB-S/S2 de transpondedor completo (>= 33 Mbit/s) con uno o varios consumidores MPTS. Seleccionado a partir de pruebas en banco con un adaptador TBS bajo carga completa del transpondedor.8..64(512 KB .. 4 MB) — aceptable para sistemas embebidos con RAM limitada o para adaptadores en modos Scanner / Femon donde el tráfico es bajo.0— mantener el valor por defecto del controlador (normalmente 8…32 KB). Adecuado solo para escenarios con muy poca carga. Por encima de 10 Mbit/s habrá pérdidas.
Cuando aparezca un mensaje de la forma siguiente en el registro:
DVB adapter X/Y dvr buffer overflow (NN so far, KK pids);
raise 'buffer-size' or reduce pid filter
aumentar buffer-size o reducir el número de PIDs que pasan por el filtro (por ejemplo, eliminar la salida MPTS si no es necesaria).
Coste de memoria: el valor N consume N × 64 KB de memoria del kernel por adaptador. Con muchos adaptadores (8 o más) conviene tenerlo en cuenta (8 × 32 MB = 256 MB).
Conexión de un flujo SPTS a un servicio de multiplex DVB¶
Al añadir un nuevo canal SPTS al input del flujo, seleccionar:
Tipo: demuxer.
Fuente: adaptador DVB.
Multiplex creado en el adaptador DVB, por nombre del adaptador.
PNR — se selecciona de la lista emergente de servicios detectados en el multiplex o se introduce manualmente.
Permisos de acceso a dispositivos DVB¶
Si los adaptadores DVB no aparecen en Perfect Streamer, realizar las siguientes acciones:
sudo nano /etc/udev/rules.d/99-dvb-permissions.rules
SUBSYSTEM=="dvb", GROUP="video", MODE="0660"
sudo usermod -aG video pss
sudo chown -R root:video /dev/dvb/*
sudo reboot
Desencapsulación T2-MI¶
T2-MI (T2-Modulator Interface, ETSI TS 102 773) es un formato para transportar flujos DVB-T2 sobre DVB-S2 multistream. El transpondedor externo DVB-S/S2 transporta uno o más T2-MI carrier-PID, cada uno encapsulando BBFRAMEs con uno o más PLP (Physical Layer Pipe). Tras la desencapsulación, se extrae del BBFRAME el MPEG-TS interno que contiene los programas y las tablas PSI/SI.
La implementación de Perfect Streamer funciona en modo multi-carrier: un único adaptador físico entrega simultáneamente el multiplex DVB-S/S2 externo y todos los carriers T2-MI desencapsulados (uno por cada carrier-PID encontrado en el PMT del flujo externo).
Parámetros de configuración¶
t2mi-mode (Int, 0..2, valor por defecto 0) — modo de desencapsulación:
0— Desactivado. El MPEG-TS externo se transmite sin procesar. Si se detecta un descriptor T2-MI (tag 0x51) en el PMT, se registra una pista única.1— Manual. La desencapsulación está siempre activa. Sit2mi-pidno es 0, al iniciar se pre-crea un carrier en ese PID. Los carriers adicionales se siguen detectando automáticamente a partir del PMT.2— Auto. Los carriers se detectan automáticamente desde el PMT del multiplex externo para todos los ES que parezcan T2-MI (descriptor 0x51 o único ES con stream_type=0x06 en un servicio sin otros ES A/V). Si no se encuentran carriers, el adaptador funciona como un multiplex DVB normal.
t2mi-pid (Int, 0..8191, valor por defecto 0) — PID para pre-crear un carrier al inicio, antes de la llegada del PMT:
0— sin pre-creación. Los carriers se detectan a partir del PMT (recomendado para el modo auto2).1..8191— pre-crear un carrier en este PID. Los T2-MI ES adicionales encontrados en el PMT obtienen igualmente sus propios carriers.
En modo multi-carrier el parámetro t2mi-pid no es un selector de un único carrier — cada ES T2-MI detectado obtiene su propio carrier con su propio desencapsulador. El parámetro proporciona inicialización temprana para un PID conocido.
t2mi-plp (Int, 0..255, valor por defecto 0) — identificador del PLP extraído de cada carrier T2-MI en el adaptador. Se aplica a todos los carriers — la anulación por carrier no se admite en la versión actual. Si en producción distintos carriers transportan distintos PLP, conviene:
especificar un PLP común a todos los carriers, o
configurar adaptadores independientes para distintos PLP mediante
lnb-sharing.
Este es el identificador del campo plp_id del BBFRAME, no el ISI multistream DVB-S2 (que se establece con el parámetro dvb-stream-id). Son identificadores distintos en capas distintas.
Diagnóstico de selección PLP:
Cinco segundos después de iniciar un carrier, si no se ha recibido ningún BBFrame para el PLP configurado pero se ven otros PLPs, se registra una advertencia con la lista de
plp_idobservados.
t2mi-tsid (Int, -1..255, valor por defecto -1) — reservado para uso futuro. Selector del identificador de flujo T2-MI cuando varios flujos T2-MI comparten un mismo carrier-PID. Se ignora en la versión actual.
PNR compuesto — conexión SPTS desde T2-MI¶
Un adaptador puede exponer varios multiplex lógicos:
carrier-id = 0— multiplex DVB-S/S2 externo (servicios A/V normales).carrier-id = 1..N— carriers T2-MI desencapsulados (uno por cada ES T2-MI externo).
Descifrado BISS¶
Se admite el descifrado de flujos DVB cifrados con BISS-1 (modo E1) y BISS-E (modo E2). Aplicable a los sistemas de transmisión DVB-S, DVB-S2, DVB-T, DVB-T2.
La implementación permite mantener varios descifradores activos simultáneamente en un mismo adaptador:
Por PNR en el multiplex externo (servicio normal).
Por
plp_idpara descifrar el carrier-PID T2-MI antes de la desencapsulación (requerido para flujosmultistreamcifrados — de lo contrario el desencapsulador descarta cada paquete cifrado, véase el contador<t2mi scrambledDropped>).