-
-
Notifications
You must be signed in to change notification settings - Fork 198
Dektec use case: Multicast (CBR) to DVB T
Multicast (CBR) to DVB-T
I wanted to distribute a couple of satellite channels into 3 rooms in my house (living room, bedroom, guest room) but I wanted to avoid installing additional satellite receivers and running another cable or using splitters/combiners in the rooms that are usually fine with just the standard DVB-T broadcast. So my goal was to keep using the current DVB-T antenna and just add 3 satellite channels. The satellite channels are broadcast in the same transport stream, so I didn't need to combine multiple transport streams.
Problem:
The only tool out there which I know of being capable of modulating a DVB-T signal from a live source is DekTec's Muxxpert, which is great but it's also very expensive and the license is tied to a particular piece of hardware, therefore I looked into a simpler solution with TSDuck.
The bitrate of the input satellite signal is of course constant but it's too high to be modulated into a single DVB-T carrier, however when working with live UDP multicast source and live DVB-T modulation, it is necessary to feed TSDuck with constant bitrate input. So the input needs to be re-multiplexed first, but TSDuck doesn't provide such functionality.
Solution:
I used a Cisco satellite receiver which allowed me to receive, decrypt and re-multiplex the channels I wanted, outputting a constant rate of 27,71 Mbps in the form of UDP multicast, carrying the decrypted channels at variable bitrate. Thanks to null packet stuffing function built into the receiver, the output could be fixed at 27,71 Mbps.
Then I used the following TSDuck command in order to modulate the live IP stream into DVB-T signal:
tsp -v -I ip 224.0.0.1:7000 -l 192.168.100.1 -O dektec --device 0 --modulation DVB-T --frequency 177500000 --bandwidth 7 -g 1/32 -r 7/8
The modulator parameters used result in 27,709,893 b/s data rate, which is why I configured the source to output exactly this rate. I used a 7-MHz channel intentionally because 2 of 3 TV sets don't allow me to change the bandwidth for VHF channels but I wanted to use VHF frequency as there's no DVB-T signal broadcast in my area below 474 MHz so I used a VHF/UHF combiner in order to combine the over-the-air DVB-T channels with TSDuck's DTA-111 output into one coax cable and tune in the channels on any of DVB-T capable TV in my house.
Components used:
- Cisco D9854 IRD receiving DVB-S2, outputting UDP multicast
- Irdeto CI module with up to 4-channel decryption
- Windows 10 PC running TSDuck
- Dektec DTA-111 DVB-T/C modulator
- VHF/UHF combiners to combine multiple DTA-111s and DVB-T antenna
- VHF/UHF splitter to distribute signal to 3 TVs
@lelegard 2019-11-14
Can you teach us how to use the $tsp tool to abstract the ES payload of a PID, how to output the time-stamps.
Likewise, it will be great to have a tutorial / mixing case in how to do the inverse, create a PID based on an ES with a particular timestamp from sources such as RTP.h264 or V4L sources or STDIN
I saw the example in how to create and inject a PID based on a FFmpeg toolchain, however doing this directly from TSDuck sounds like a better way (No offense FFmpeg)