Forums » Tutorial and setups »
dvb-s working mux does not show in service thus no mapping to channel possible - apparently a service information table processing issue - here the workaround
Added by jody gugelhop about 11 years ago
hi there, some information on my current setup:
ubuntu kernel 3.2.0-52-generic
tvh 3.5.243~g2b64995
dvb-s card tbs6991 dual tuner and dual ci with latest drivers: v130802 - my card supports dvb-s and dvb-s2 (I have other mux's with 8PSK that do work)
2 dishes facing astra 19.2, hotbird and Turksat
Astra and Hotbird seem to work fine in every aspect. Seems the trouble I have is on some of the stations on Turksat.
I have issues with some of the multiplexes, although they are working (I can open it via the 'play' button from the multiplex tab in the browser and watch it, as well as e.g. in mplayer with the channels.conf I created with w_scan) they are not showing up in the services tab and thus they can't get mapped to channels.
Below one example of the several muxes i have problems with. I removed the mux and it got re-added and this is what is in the logs:
Aug 31 12:24:19 SAT tvheadend[990]: dvb: New mux "TURKSAT: 11,964,000 kHz Horizontal (Turksat (Port 2, Universal LNB))" created by automatic mux discovery Aug 31 12:24:58 SAT kernel: [ 829.863846] TurboSight TBS 6991 Frontend: Aug 31 12:24:58 SAT kernel: [ 829.863848] tbs6991fe - modulation 9 is not supported
I checked on modulation 9, according to the info I found it relates to 8PSK settings, but this (and others with the same problem) station is not 8PSK but QPSK, and as stated earlier it does work via webinterface 'play' button on mux tab and in mplayer.
Deleting the mux, disabling the auto-detection of muxes and adding the mux manually with correct settings (QPSK), results in exactly the same (as well as same log entries).
tvh must somehow pass on wrong information I suppose, don't know...
the entry created for the mux looks correct:
{ "quality": 100, "enabled": 1, "status": "OK", "transportstreamid": 302, "originalnetworkid": 42, "network": "TURKSAT", "frequency": 11964000, "initialscan": 0, "symbol_rate": 5925000, "fec": "3/4", "polarisation": "Horizontal", "modulation": "QPSK", "delivery_system": "SYS_DVBS", "rolloff": "ROLLOFF_35", "satconf": "1" }
but there is no service entry in the directory where it should be.
I did some more testing and playing around, as I said earlier when using the 'play' button from the multiplex tab from the web interface I can watch that station on the local machine. So I took those links for channels that somehow are not being added as services in tvh and put them in text files as streams, so e.g. I called the file ShowTV.strm with only the link below as content:
http://10.0.0.96:9981/stream/mux/_dev_dvb_adapter0_TurboSight_TBS_6991_DVBS_S2_frontend11964000_H_satconf_1
When using the xbmc install on the local machine where tvh is installed as well it works fine and plays great. Accessing the file via a xbmc install on the local network (100Mb) on another machine (via share in xbmc) it plays as well but a lot of buffering occurs.
For testing purposes I did the same with a station that did get added to services but used the 'play' button link from the services tab, so the *.strm file content was:
http://10.0.0.96:9981/stream/service/_dev_dvb_adapter0_TurboSight_TBS_6991_DVBS_S2_frontend11938000_H_satconf_1_0728
Plays perfectly locally as well as over network on another machine without any buffering.
Checking xbmc log files I see that the mux link-stream sends over all the stations that are actually on that mux so several at the same time, which is too much for the lan to handle and thus buffering occurs, whilst when using the service play link only that particular station is being sent over lan, obviously resulting in less bandwidth requirements and thus no buffering occurs.
Upgrading to Gb-lan might be another dirty work around but as I want to use the raspberry pi as front-end not really an option (it only has 100Mb lan and using e.g. a usb lan interface will also not work).
I wonder if I can somehow add the service myself in tvh to at least be able to stream only one channel. First let's stop the tvh service. Then let's look at mux that does work also as service, 11984 is a mux on Turksat that does work, doing a locate on that frequency (locate 11981) on the cmd line yields this:
/home/hts/.hts/tvheadend/dvbmuxes/_dev_dvb_adapter0_TurboSight_TBS_6991_DVBS_S2_frontend/_dev_dvb_adapter0_TurboSight_TBS_6991_DVBS_S2_frontend11981000_H_satconf_1 /home/hts/.hts/tvheadend/dvbtransports/_dev_dvb_adapter0_TurboSight_TBS_6991_DVBS_S2_frontend11981000_H_satconf_1 /home/hts/.hts/tvheadend/dvbtransports/_dev_dvb_adapter0_TurboSight_TBS_6991_DVBS_S2_frontend11981000_H_satconf_1/_dev_dvb_adapter0_TurboSight_TBS_6991_DVBS_S2_frontend11981000_H_satconf_1_0001 /home/hts/.hts/tvheadend/dvbtransports/_dev_dvb_adapter0_TurboSight_TBS_6991_DVBS_S2_frontend11981000_H_satconf_1/_dev_dvb_adapter0_TurboSight_TBS_6991_DVBS_S2_frontend11981000_H_satconf_1_0002 /home/hts/.hts/tvheadend/dvbtransports/_dev_dvb_adapter0_TurboSight_TBS_6991_DVBS_S2_frontend11981000_H_satconf_1/_dev_dvb_adapter0_TurboSight_TBS_6991_DVBS_S2_frontend11981000_H_satconf_1_0003 /home/hts/.hts/tvheadend/dvbtransports/_dev_dvb_adapter0_TurboSight_TBS_6991_DVBS_S2_frontend11981000_H_satconf_1/_dev_dvb_adapter0_TurboSight_TBS_6991_DVBS_S2_frontend11981000_H_satconf_1_0005
First one is the Mux itself and the latter four indicate that there are 4 stations/channels on that mux, having a look on lyngsat confirms this.
Let's first have look into the mux file:
cat /home/hts/.hts/tvheadend/dvbmuxes/_dev_dvb_adapter0_TurboSight_TBS_6991_DVBS_S2_frontend/_dev_dvb_adapter0_TurboSight_TBS_6991_DVBS_S2_frontend11981000_H_satconf_1 { "quality": 100, "enabled": 1, "status": "OK", "transportstreamid": 1, "originalnetworkid": 65535, "network": "TGRT", "frequency": 11981000, "initialscan": 0, "symbol_rate": 5200000, "fec": "5/6", "polarisation": "Horizontal", "modulation": "QPSK", "delivery_system": "SYS_DVBS", "rolloff": "ROLLOFF_35", "satconf": "1" }
Looks pretty much like the mux file from the sample station that does not work (see at the top). Now let's look at the service files for that mux:
cat /home/hts/.hts/tvheadend/dvbtransports/_dev_dvb_adapter0_TurboSight_TBS_6991_DVBS_S2_frontend11981000_H_satconf_1/_dev_dvb_adapter0_TurboSight_TBS_6991_DVBS_S2_frontend11981000_H_satconf_1_000* { "service_id": 1, "pmt": 32, "stype": 1, "scrambled": 0, "channel": 0, "provider": "www.tgrt.com.tr", "servicename": "TGRT BELGESEL", "channelname": "TGRT BELGESEL", "mapped": 1, "dvb_eit_enable": 1, "pcr": 308, "disabled": 0, "stream": { "pid": 308, "type": "MPEG2VIDEO", "position": 0, "width": 480, "height": 576, "duration": 3600 }, "stream": { "pid": 256, "type": "MPEG2AUDIO", "position": 1, "language": "eng", "audio_type": 0 } } { "service_id": 2, "pmt": 48, "stype": 1, "scrambled": 0, "channel": 0, "provider": "", "servicename": "TGRT HABER", "channelname": "TGRT HABER", "mapped": 1, "dvb_eit_enable": 1, "pcr": 309, "disabled": 0, "stream": { "pid": 309, "type": "MPEG2VIDEO", "position": 0, "width": 720, "height": 576, "duration": 3600 }, "stream": { "pid": 257, "type": "MPEG2AUDIO", "position": 1, "language": "eng", "audio_type": 0 } } { "service_id": 3, "pmt": 64, "stype": 2, "scrambled": 0, "channel": 0, "provider": "", "servicename": "TGRT FM", "channelname": "TGRT FM", "mapped": 1, "dvb_eit_enable": 1, "pcr": 8191, "disabled": 0, "stream": { "pid": 259, "type": "MPEG2AUDIO", "position": 0, "language": "fre", "audio_type": 0 } } { "service_id": 5, "pmt": 40, "stype": 2, "scrambled": 0, "channel": 0, "provider": "", "servicename": "noname-sid-0x5", "channelname": "noname-sid-0x5", "mapped": 1, "dvb_eit_enable": 1, "pcr": 8191, "disabled": 0, "stream": { "pid": 265, "type": "MPEG2AUDIO", "position": 0, "language": "eng", "audio_type": 0 } }
Now let's look only at one station from that mux to get an idea what information would be needed:
{ "service_id": 1, "pmt": 32, "stype": 1, "scrambled": 0, "channel": 0, "provider": "www.tgrt.com.tr", "servicename": "TGRT BELGESEL", "channelname": "TGRT BELGESEL", "mapped": 1, "dvb_eit_enable": 1, "pcr": 308, "disabled": 0, "stream": { "pid": 308, "type": "MPEG2VIDEO", "position": 0, "width": 480, "height": 576, "duration": 3600 }, "stream": { "pid": 256, "type": "MPEG2AUDIO", "position": 1, "language": "eng", "audio_type": 0 } }
service_id, pmt, scrambled, pcr, pid-video and pid-audio information can be obtained from w_scan output or from sites like kingofsat or lyngsat.
mapped: i suppose that is tvh internal and means if the service is mapped to channel on the web interface where 1=map;0=don't map
dvb_eit_enable: internal to tvh and means if epg info is turned on for that channel or not 1=enabled;0=disabled
disabled: internal to tvh is that channel is enabled or not 1=disabled;0=enabled
provider, servicename, channelname, type (video/mostly "MPEG2VIDEO" when SD, HD is mostly "H264"), width, height, type (audio/mostly "MPEG2AUDIO" unless dolby, then "AC3"): these entries i got from the logs of xbmc when i played the mux stream
I don't know yet where to get the info or if it is internal to tvh for the following entries:
stype channel position duration position language audio_type
I'm sure that instead getting this info from xbmc log there should be a command line tool maybe within the dvb-tools that will provide that info as well, maybe even the currently missing info, need to look into that.
Now let's try to create the file on the system, first we need to create the directory for the service, a working service directory looked like this:
/home/hts/.hts/tvheadend/dvbtransports/_dev_dvb_adapter0_TurboSight_TBS_6991_DVBS_S2_frontend11981000_H_satconf_1/
so i create for my not working frequency 11964:
mkdir /home/hts/.hts/tvheadend/dvbtransports/_dev_dvb_adapter0_TurboSight_TBS_6991_DVBS_S2_frontend11964000_H_satconf_1/
then we need to create the service file, for the working service on service ID the service file is called:
/home/hts/.hts/tvheadend/dvbtransports/_dev_dvb_adapter0_TurboSight_TBS_6991_DVBS_S2_frontend11981000_H_satconf_1/_dev_dvb_adapter0_TurboSight_TBS_6991_DVBS_S2_frontend11981000_H_satconf_1_0001
thus I call mine for the not working service:
touch /home/hts/.hts/tvheadend/dvbtransports/_dev_dvb_adapter0_TurboSight_TBS_6991_DVBS_S2_frontend11964000_H_satconf_1/_dev_dvb_adapter0_TurboSight_TBS_6991_DVBS_S2_frontend11964000_H_satconf_1_0001
Now we need to edit the content, we had the content of a working service file displayed above, we start with that and edit the information as much as we have according to the sources described above, resulting for my currently not working mux/service in:
{ "service_id": 1, "pmt": 32, "stype": 1, "scrambled": 0, "channel": 0, "provider": "SHOW TV", "servicename": "SHOW TV", "channelname": "SHOW TV", "mapped": 1, "dvb_eit_enable": 1, "pcr": 8190, "disabled": 0, "stream": { "pid": 308, "type": "MPEG2VIDEO", "position": 0, "width": 720, "height": 576, "duration": 3600 }, "stream": { "pid": 256, "type": "MPEG2AUDIO", "position": 1, "language": "tur", "audio_type": 0 } }
As I have been working as root, I need to change the ownership of files to hts:video like all the other files/folders:
chown -R hts:video /home/hts/.hts/tvheadend/dvbtransports/_dev_dvb_adapter0_TurboSight_TBS_6991_DVBS_S2_frontend11964000_H_satconf_1/
Now restart the tvh service and indeed the mux appears in the service tab and is mapped as channel. It works, yeah!!!
if someone has some comments or other tips, e.g. on the missing information or if someone could fix tvh to work out of the box for this, that would be great!!
thank you in advance.
Replies (3)
RE: dvb-s working mux does not show in service thus no mapping to channel possible - apparently a service information table processing issue - here the workaround - Added by jody gugelhop about 11 years ago
been playing around someone, before I was creating my channels.conf compatible to mplayer format using w_scan but most information will be handed out doing a vdr compatible output format, so I ran:
w_scan -fs -s S42E0 -D 2c -o2 -F -C ISO8859-9 > turksat.channel.conf syntax is explained here: http://pl.digipedia.org/man/doc/view/w_scan.1/
let's look at the working mux:
TGRT BELGESEL;www.tgrt.com.tr:11981:hC56M2O0S0:S42E:5200:308=2:256=eng@4:0:0:1:42:313:0 TGRT HABER;(null):11981:hC56M2O0S0:S42E:5200:309=2:257=eng@4:0:0:2:42:313:0
and the not working mux:
SHOW TV;SHOW TV:11964:hC34M2O0S0:S42E:5925:308+8190=2:256=tur@4,257=alm,258=ifb:273:0:1:90:19:0 ALEM FM;SHOW TV:11964:hC34M2O0S0:S42E:5925:308+8190=2:257=alm@4:273:0:2:90:19:0
syntax for these is according to (as far as I could figure it out):
Channel Name : Provider : frequency : polarization : orbital position : symbol rate : video pid and PCR *(if vpid and pcr are the same then vpid=2 seems to apply)* : audiopid=language : videotext pid : conditional access (probably) : service ID (PMT)g : *don't know* : *don't know* : *don't know*
If someone can fill in the 'don't knows' and confirm or correct my assumption about the vpid and pcr please do so, thanks.
This means to get the following info I still rely on xbmc logs or mediainfo output (if you know somewhere else to obtain this info please let me know):
type (video) width height type (audio)
I'm still completly guessing the info on (in order of appearance):
channel stype position duration position audio_type
Next I thought to compare service information as I was told this might the tvh problem. To do this I use dvbsnoop, first the working mux:
dvbtune -f 11981000 -p h -s 5200 -D 3 -v 308 -a 256 -pnr 1
output:
Using DVB card "TurboSight TBS 6991 DVBS/S2 frontend" tuning DVB-S to L-Band:0, Pol:H Srate=5200000, 22kHz=off polling.... Getting frontend event FE_STATUS: polling.... Getting frontend event FE_STATUS: FE_HAS_SIGNAL FE_HAS_LOCK FE_HAS_CARRIER FE_HAS_VITERBI FE_HAS_SYNC Event: Frequency: 11981000 SymbolRate: 5200000 FEC_inner: 5 Bit error rate: 67108863 Signal strength: 31191 SNR: 65535 FE_STATUS: FE_HAS_SIGNAL FE_HAS_LOCK FE_HAS_CARRIER FE_HAS_VITERBI FE_HAS_SYNC <transponder type="S" freq="11981000" srate="5200000" polarity="H" > <service id="1" ca="0"> <description tag="0x48" type="1" provider_name="www.tgrt.com.tr" service_name="TGRT BELGESEL" /> <descriptor tag="0x0e" data="c01cb9" text="..." /> <descriptor tag="0x10" data="c00271c00400" text="..q..." /> <system_clock tag="0x0b" data="423f" /> <stream type="2" pid="308"> <data_stream_alignment tag="0x06" data="02" /> <stream_id id="1" /> </stream> <stream type="4" pid="256"> <stream_id id="2" /> <iso_639 language="eng" type="0" /> </stream> </service> <service id="2" ca="0"> <description tag="0x48" type="1" provider_name="" service_name="TGRT HABER" /> <descriptor tag="0x0e" data="c026de" text="..." /> <descriptor tag="0x10" data="c00271c00400" text="..q..." /> <system_clock tag="0x0b" data="f423f" /> <stream type="2" pid="309"> <data_stream_alignment tag="0x06" data="02" /> </stream> <stream type="4" pid="257"> <iso_639 language="eng" type="0" /> </stream> </service> <service id="3" ca="0"> <description tag="0x48" type="2" provider_name="" service_name="TGRT FM" /> <stream type="4" pid="259"> <iso_639 language="fre" type="0" /> </stream> </service> <service id="5" ca="0"> <description tag="0x48" type="2" provider_name="" service_name="" /> <stream type="4" pid="265"> <stream_id id="3" /> <iso_639 language="eng" type="0" /> </stream> </service> </transponder> A/V/TT Filters set
and now the not working mux:
dvbtune -f 11964000 -p h -s 5925 -D 3 -v 308 -a 256 -t 273 -pnr 1
output:
Using DVB card "TurboSight TBS 6991 DVBS/S2 frontend" tuning DVB-S to L-Band:0, Pol:H Srate=5925000, 22kHz=off polling.... Getting frontend event FE_STATUS: polling.... Getting frontend event FE_STATUS: FE_HAS_SIGNAL FE_HAS_LOCK FE_HAS_CARRIER FE_HAS_VITERBI FE_HAS_SYNC Event: Frequency: 11964000 SymbolRate: 5926000 FEC_inner: 3 Bit error rate: 67108863 Signal strength: 31143 SNR: 52864 FE_STATUS: FE_HAS_SIGNAL FE_HAS_LOCK FE_HAS_CARRIER FE_HAS_VITERBI FE_HAS_SYNC <transponder type="S" freq="11964000" srate="5925000" polarity="H" > <service id="1" ca="0"> <description tag="0x48" type="1" provider_name="SHOW TV" service_name="SHOW TV" /> <descriptor tag="0x0e" data="c04ffa" text=".O." /> <descriptor tag="0x10" data="c00271c00400" text="..q..." /> <system_clock tag="0x0b" data="423f" /> <stream type="2" pid="308"> <data_stream_alignment tag="0x06" data="02" /> <stream_id id="1" /> </stream> <stream type="4" pid="256"> <stream_id id="2" /> <iso_639 language="tur" type="0" /> </stream> <stream type="4" pid="257"> <stream_id id="3" /> <iso_639 language="alm" type="0" /> </stream> <stream type="4" pid="258"> <stream_id id="4" /> <iso_639 language="ifb" type="0" /> </stream> <stream type="6" pid="273"> <teletext tag="0x56"> <teletext_info lang="tur" type="1" page="100" /> </teletext> <stream_id id="20" /> </stream> </service> <service id="2" ca="0"> <description tag="0x48" type="1" provider_name="SHOW TV" service_name="ALEM FM" /> <descriptor tag="0x0e" data="c04ffa" text=".O." /> <descriptor tag="0x10" data="c00271c00400" text="..q..." /> <system_clock tag="0x0b" data="423f" /> <stream type="2" pid="308"> <data_stream_alignment tag="0x06" data="02" /> <stream_id id="1" /> </stream> <stream type="4" pid="257"> <stream_id id="3" /> <iso_639 language="alm" type="0" /> </stream> <stream type="6" pid="273"> <teletext tag="0x56"> <teletext_info lang="use" type="1" page="100" /> </teletext> <stream_id id="20" /> </stream> </service> </transponder> A/V/TT Filters set
Not sure where the trouble might be, you are most cordially invited to enlighten me
RE: dvb-s working mux does not show in service thus no mapping to channel possible - apparently a service information table processing issue - here the workaround - Added by jody gugelhop about 11 years ago
I just discovered another particular case. Also again on freakin' Turksat. The mux is added, the service as well, so I could map it to channels, but it wouldn't play and nothing in the logs, so I check the service file:
cat _dev_dvb_adapter0_TurboSight_TBS_6991_DVBS_S2_frontend12650000_H_satconf_1/_dev_dvb_adapter0_TurboSight_TBS_6991_DVBS_S2_frontend12650000_H_satconf_1_000* { "service_id": 1, "pmt": 0, "stype": 1, "scrambled": 0, "channel": 0, "provider": "DOGAN TV", "servicename": "SKY TÜRK", "dvb_eit_enable": 1, "pcr": 0, "disabled": 0 } { "service_id": 5, "pmt": 0, "stype": 2, "scrambled": 0, "channel": 0, "provider": "DOGAN TV", "servicename": "LİG RADYO", "channelname": "LİG RADYO", "mapped": 1, "dvb_eit_enable": 1, "pcr": 0, "disabled": 0 }
As you can see it turns out there is no streaming information included, so obviously it won't play. No idea why it is missing, so adding it manually, only the tv station skyturk as there is no interest in the radio at this point.
{ "service_id": 1, "pmt": 4473, "stype": 1, "scrambled": 0, "channel": 0, "provider": "DOGAN TV", "servicename": "SKY TÜRK", "channelname": "SKY TURK", "mapped": 1, "dvb_eit_enable": 1, "pcr": 4450, "disabled": 0 "stream": { "pid": 4450, "type": "MPEG2VIDEO", "position": 0, "width": 720, "height": 576, "duration": 3600 }, "stream": { "pid": 4451, "type": "MPEG2AUDIO", "position": 1, "language": "tur", "audio_type": 0 } }
I was curious how the service information would look like as a comparison to the cases above:
dvbtune -f 12650000 -p h -s 4250 -D 3 -v 4450 -a 4451 -pnr 1 Using DVB card "TurboSight TBS 6991 DVBS/S2 frontend" tuning DVB-S to L-Band:0, Pol:H Srate=4250000, 22kHz=off polling.... Getting frontend event FE_STATUS: polling.... Getting frontend event FE_STATUS: FE_HAS_SIGNAL FE_HAS_LOCK FE_HAS_CARRIER FE_HAS_VITERBI FE_HAS_SYNC Event: Frequency: 12650000 SymbolRate: 4250000 FEC_inner: 5 Bit error rate: 67108863 Signal strength: 29046 SNR: 65535 FE_STATUS: FE_HAS_SIGNAL FE_HAS_LOCK FE_HAS_CARRIER FE_HAS_VITERBI FE_HAS_SYNC <transponder type="S" freq="12650000" srate="4250000" polarity="H" > <service id="1" ca="0"> <description tag="0x48" type="1" provider_name="SKYTURK360" service_name="SKYTURK360" /> <descriptor tag="0x0e" data="c03fbf" text="..." /> <descriptor tag="0x10" data="c00271c00400" text="..q..." /> <system_clock tag="0x0b" data="423f" /> <stream type="2" pid="4450"> <data_stream_alignment tag="0x06" data="02" /> </stream> <stream type="4" pid="4451"> <iso_639 language="tur" type="0" /> </stream> <stream type="4" pid="4452"> <iso_639 language="alm" type="0" /> </stream> <stream type="4" pid="4453"> <iso_639 language="lig" type="0" /> </stream> <stream type="4" pid="4465"> <iso_639 language="lig" type="0" /> </stream> </service> </transponder> A/V/TT Filters set
Not much info there, looks like the very basics, maybe that's the reason. After doing the changes to the service file, the channel works.
RE: dvb-s working mux does not show in service thus no mapping to channel possible - apparently a service information table processing issue - here the workaround - Added by jody gugelhop about 11 years ago
based upon the suggestion of adamsutton I have tried leaving the streaming part out of it and only using the upper part so instead:
{ "service_id": 1, "pmt": 32, "stype": 1, "scrambled": 0, "channel": 0, "provider": "SHOW TV", "servicename": "SHOW TV", "channelname": "SHOW TV", "mapped": 1, "dvb_eit_enable": 1, "pcr": 8190, "disabled": 0, "stream": { "pid": 308, "type": "MPEG2VIDEO", "position": 0, "width": 720, "height": 576, "duration": 3600 }, "stream": { "pid": 256, "type": "MPEG2AUDIO", "position": 1, "language": "tur", "audio_type": 0 } }
only
{ "service_id": 1, "pmt": 32, "stype": 1, "scrambled": 0, "channel": 0, "provider": "SHOW TV", "servicename": "SHOW TV", "channelname": "SHOW TV", "mapped": 1, "dvb_eit_enable": 1, "pcr": 8190, "disabled": 0, }
PMT entry is required though, otherwise you will get "no service enabled" in tvh. Also the other entries really don't seem to matter, pcr can be 0 if you don't know and provider, servicename, channelname you can fill in according to your choosing apparently.