August'24: Kamaelia is in maintenance mode and will recieve periodic updates, about twice a year, primarily targeted around Python 3 and ecosystem compatibility. PRs are always welcome. Latest Release: 1.14.32 (2024/3/24)
Find the code for this here:
/Code/Python/Kamaelia/Examples/DVB_Systems/TransportStreamCapture.py
This simple example shows how to record a whole broadcast DVB multiplex at a frequency of 505.83MHz, with specific parameters to help the tuner:
from Kamaelia.Device.DVB.Core import DVB_Multiplex
from Kamaelia.Chassis.Pipeline import Pipeline
from Kamaelia.File.Writing import SimpleFileWriter
import dvb3
freq = 505.833330 # 529.833330 # 505.833330
feparams = {
"inversion" : dvb3.frontend.INVERSION_AUTO,
"constellation" : dvb3.frontend.QAM_16,
"code_rate_HP" : dvb3.frontend.FEC_3_4,
"code_rate_LP" : dvb3.frontend.FEC_3_4,
}
Pipeline(
DVB_Multiplex(freq, [0x2000],feparams), # BBC Multiplex 1, whole transport stream
SimpleFileWriter("BBC_MUX_1.ts"),
).run()
The DVB_Multiplex component is the simplest and easiest to use combined tuner and demultiplexer component - you simply specify the frequency, a list of packet IDs to demultiplex, and an optional dictionary of tuner control parameters.
By specifying the special PID of 0x2000 the demultiplexer outputs all
packets. However, not that not all DVB hardware supports this.