Feature #3477
Multistream T2-MI
0%
Description
Hello, is it possibly to add T2 MI stream settings to Satellite to use on this transponder: Astra 4A & SES 5 at 4.9°E Provider ZEONBUD 12188 H 30000-3/4 8PSK DVB-S2 multistream stream 20 T2-MI PLP 0 type = "S2",
mac = "00:xx:xx:xx:xx:xx",
tp = "12188:H:30000",
lnb = "9750:10600:11700",
modulation="PSK8",
stream_id="20",
t2mi = true,
t2mi_pid=4096,
t2mi_plp=0,
History
Updated by Jaroslav Kysela almost 9 years ago
It seems like too much work: https://www.etsi.org/deliver/etsi_ts/102700_102799/102773/01.01.01_60/ts_102773v010101p.pdf
Updated by Jaroslav Kysela almost 9 years ago
From my understanding, t2-mi is the 'raw' DVB-T/T2 stream encapsulated to the MPEG-TS which is used as input to DVB-T/T2 transmitters (modulators).
TVH accepts MPEG-TS streams only at the moment, so the parser for the 'raw' DVB-T/T2 stream is required to extract the useable MPEG-TS from it.
DVB-S2 multistream (multistream handled in hw decoder): DVB-S2 MPEG-TS (received by TVH): T2MI stream at PID 4096: 'raw' DVB-T/T2 stream: DVB-T/T2 MPEG-TS (you need this)
Updated by usuf negro almost 9 years ago
there are 2 transponders on Astra 4A & SES 5 at 4.9°E Provider ZEONBUD, with 4 streams and only one stream encapsulated with t2-mi to transmitt then by DVB-T2. This stream can be watching on DVB-S2 by astra-sm (https://gitlab.com/berdyansk/astra-sm) config showing top.
Updated by Jaroslav Kysela almost 9 years ago
The t2-mi decoder is here: https://gitlab.com/berdyansk/astra-sm/blob/master/src/mpegts/t2mi.c
Updated by Jaroslav Kysela almost 9 years ago
Everything is possible, but my interest is low for this.
Updated by Adam W over 8 years ago
I think this system (T2-MI) is likely to be used more and more over time, as countries (especially here in Europe) move to DVB-T2 from DVB-T.
Spain have already apparently tested T2-MI for their terrestrial feeds via Hispasat 30W, and this may be the replacement for their current proprietary encrypted "Full TS" system (one full DVB-T multiplex TS which is encapsulated within a data PID on the DVB-S2 transponder and encrypted with BISS) which actually seems to have similarities with T2-MI. It's unknown whether Spain will move to T2-MI or ACM/VCM Multistream, but they have done tests with T2-MI.
It's already used a lot in Russia (on 90E) and for the Ukrainian channels mentioned on this feature request. If more and more interesting channels become available using this modulation it might be more interesting to implement!
Updated by Adam W over 8 years ago
There's a simple command line tool here -
https://github.com/newspaperman/t2-mi
This takes the T2-MI PID as input (I guess there could be a section on the mux settings in TVH to set the T2-MI PID and PLP? A bit like the multistream settings), then outputs the TS.
One way you can do it with that tool is to take the transponder URL from TVHeadend, remove "/play" from it, and do on the command line -
You need the dvbstream package (for ts_filter tool) and also the 'precise' version of VLC (Ubuntu 12.04 version, any newer won't accept input from a pipe)
curl [TVH Transponder URL] | ts_filter 4096 | ./t2-mi 4096 1 | cvlc - --ts-out 239.255.100.1:5004
This dumps out the final stream to a UDP stream on your LAN. You can then add this stream as an IPTV multiplex in TVHeadend.
I use something similar to this for the full TS feeds on 30W (curl TVH transponder URL | ts_filter PID | cvlc BISS decrypt PID | Python script to strip TS packet headers | cvlc Output to UDP stream).
Updated by Chris G over 2 years ago
Even more channels have popped up recently on 14.0W that require this.
Seems its becoming more popular.
Updated by Mario Sat almost 2 years ago
Inspired by newspaperman I have created similar command line tool
what reads a MPEG TS containing a T2-MI data stream from STDIN and output the extracted MPEG TS to STDOUT.
https://github.com/marios8/t2-mi
Looking also to put it inside the tvheadend but it is not so easy task to find proper place and way for it.
Maybe there exists some architecture or data flow diagram of tvheadend what could help me to faster understand it.
It could be somewhere in /input/mpegts/ files.
The principle could be to read MPEG TS stream by PID what contains T2-MI data then put extracted MPEG TS back to MUX.
Maybe there already exists hole in tvheadend for it?
Documentation:
ts_102773v010301p.pdf - T2-MI packet format
https://www.etsi.org/deliver/etsi_ts/102700_102799/102773/01.03.01_60/ts_102773v010301p.pdf
en_302755v010401a.pdf - BBFrame stream format for High Efficiency Mode for TS
https://www.etsi.org/deliver/etsi_en/302700_302799/302755/01.04.01_20/en_302755v010401a.pdf
Wiki MPEG transport stream
https://en.wikipedia.org/wiki/MPEG_transport_stream
Updated by Flole Systems almost 2 years ago
Mario Sat wrote:
Looking also to put it inside the tvheadend but it is not so easy task to find proper place and way for it.
I would guess you could look at the descrambler and see how that works. That's just a wild guess though and might be too late.
Maybe there exists some architecture or data flow diagram of tvheadend what could help me to faster understand it
Unfortunately there isn't such a thing as far as I know.
It could be somewhere in /input/mpegts/ files.
The principle could be to read MPEG TS stream by PID what contains T2-MI data then put extracted MPEG TS back to MUX.
Maybe there already exists hole in tvheadend for it?
I don't think there's a hole that needs to be filled/can be filled easily. When working with the /input/mpegts files keep in mind that those are for several different input types. You don't want to implement it in all of them, that would just cause duplicate code.
If I understood you correctly (I don't have time to read through the specification right now) the T2-MI is in the MPEG-TS and contains MPEG-TS data aswell? Is there a single T2-MI stream per PID or is there a single T2-MI stream with a single PID and the T2-MI then has several PIDs in it?
Updated by Mario Sat almost 2 years ago
T2-MI packet format is used as transport to transfer DVB-T2 data over DVB-S2 to Terrestrial stations.
This means instead of pushing DVB-T2 Baseband Frame data to modulator
it is packed to T2-MI then pushed to MPEG-TS identified by particular PID.
On 53E and 14W there are used only one PID on DVB-S2 transponder for T2-MI data transfer.
But on 4.9E 12073H there are transferred two DVB-T2 Muxes on separate PIDs 4095 and 4097.
There is also possibility to use several PLP (Physical Layer Pipe) identifiers in T2-MI but I have found only one PLP currently.
Thanks for a clue, I will check how descrambler works.
Updated by Flole Systems almost 2 years ago
If it's only a single PID that basically needs to be unpacked before further processing the descrambler is probably not the right place....
Updated by Chris G over 1 year ago
Thanks for looking in to this guys.
Even more T2-MI streams have popped up since my last comment.
It is indeed becoming more popular.
Updated by Luka Karinja over 1 year ago
You could pipe the mux from tvheadend to tsfilter and t2-mi
t2mi.sh
#!/bin/bash
curl -s http://127.0.0.1:9981/stream/mux/$1 | tsfilter $2 | t2-mi $2 $3
and then pipe it as a iptv mux in tvheadend:
pipe:///home/hts/t2mi.sh ee65e5724a39f1bcc8fbb9247b5adca5 4646 0