It is possible that the crucial information is lost when you stream all channels in only "one" stream.
The better solution is indeed to separate in different substreams (using different ports per channels) from the very beginning:
I personnally use a commandline similar as:
Code: Select all
vlc --programs=1537,1538,1542,1544,1545 --color --ttl 12 --sout-spu --ts-es-id-pid dvb:// --dvb-frequency=594167000 --dvb-adapter=0 --dvb-inversion=-1 --dvb-modulation=64QAM --dvb-hierarchy=-1 --dvb-srate=120 --dvb-bandwidth=8 --sout-ts-dts-delay=500 --sout-ts-pcr=70 --sout-mux-caching=2000 --sout-udp-caching=2000 --live-caching=2000 --sout='#duplicate{dst=std{mux=ts,dst=224.0.0.1:2000,access=udp},select="program=1537",dst=std{mux=ts,dst=224.0.0.1:2001,access=udp},select="program=1538",dst=std{mux=ts,dst=224.0.0.1:2002,access=udp},select="program=1542",dst=std{mux=ts,dst=224.0.0.1:2003,access=udp},select="program=1544",dst=std{mux=ts,dst=224.0.0.1:2004,access=udp},select="program=1545"}' --no-loop
which applies to the multiplex of TF1 in french DVB-T-HD TV (region of Toulouse for the frequency).
The important parts are the ones with --programs and with duplicate which creates for each channel a udp multicast stream at IP 224.0.0.1 with port 2000+x with x=0,1,2,3,4 according to the channels (there are five channels in this multiplex).
Once this is running you can simply use another vlc instance to access a stream via:
where port is between 2000 and 2004 (according to the channel you want to see/select) and "blabla" are other possible options (maybe to record the result on a file, or adding some --network-caching etc.).
If the client is on another machine I believe you have to use: "vlc udp://<serveur_IP>@224.0.0.1:port "
(I personnally use this with client and serveur on the same machine).
Note that in my opinion/observation vlc-2.2.x is not realiable for this (stuttering video etc.) and I use vlc-2.0.9 (on Linux). Il believe vlc-2.2.x may also require the further option "--no-sout-all" (which was default in vlc-2.0.x).
Furthermore if your DVB-T source stream has the same "bug/problem" as the french DVB-T HD-TV you have in addition to patch and recompile vlc for this to work nicely (see here for details:
https://forum.videolan.org/viewtopic.php?f=4&t=132666 ). However, I don't know how to recompile vlc for Windows (maybe you need a Linux PC and "cross-compile", i.e. the Linux PC compiles a Windows binary). If you are lucky your DVB-T stream does not have this particular problem.
Finally to create a command line as above it is more practical to use a script, first to get the program numbers (from the channel.conf file or similar) and to construct the duplex line. Also these kind of things seem easier to me in Linux (especially for the shell-script part) but I do not really know Windows and how easy or difficult it is with bat scripts.