Feature #3309
DAB / DAB+ Radio Support
100%
Description
Many DVB-T Sticks are able to receive DAB / DAB+. Adding Supoort would be really cool! Because this could be an easy/cheap way to receive local radio boardcasts.
Subtasks
History
Updated by Hanspeter Müller about 9 years ago
Hi Martin,
as far as i understand it, the DVB-T Sticks that you're refering to, are the ones useable by RTL-SDR (which is Software-Defined-Radio)...? If there is a console app that can write out the audio to STDOUT, you can use the pipe:// handler as described here Custom_MPEG-TS_Input.
Not sure, but DAB uses COFD-Modulation as DVB-T, maybe it's possible to use the common hardware for that (SDR is pretty CPU expensive)...
/hp
Updated by Jaroslav Kysela about 9 years ago
Only very limited hardware is supported to provide direct DAB stream in the linux kernel. Most people refer to RTL-SDR which can be already used as pipe:// input .
Updated by Pfeiffer Martin about 9 years ago
Yes, the DVB-T Sticks only support the SDR style solution. And yes some processing power is needed to do SDR things.... but it is even possible to do such stuff on limited hardware like the raspberry pi.
Any examples how to get this running?
I think native support will be much nicer as dealing around with external tools... how to switch channel and things like this? Unless it is even not needed to have input possibilities like DVB-S .... its possible to get it through files too.
On the other side there are chips like Si4688. Okay they are more expensive and it is much harder to get them, but i still think this feature is still missing.
Updated by Hanspeter Müller about 9 years ago
Pfeiffer Martin wrote:
Yes, the DVB-T Sticks only support the SDR style solution. And yes some processing power is needed to do SDR things.... but it is even possible to do such stuff on limited hardware like the raspberry pi.
It's dooable in SDR, but still uses lot more cpu-power than a native implementation. But as Jaroslav said, there's not much yet for supported hardware. Maybe ask $your_dvb_c/t-card-manufactor if their hardware is capable of receiving DAB, and if so, if they could add that to the driver...
Any examples how to get this running?
well no, i don't know exactly how to configure it, i don't have an SDR Stick (yet)
But if you have an application on linux, you just have to get the audio-stream somehow, if it can write to STDOUT it's real easy, just try something as putting into a script:
dab-app -o - | ffmpeg -loglevel fatal -i INPUTLINK -vn -acodec copy -metadata service_provider=RADIOPROVIDER -metadata service_name=RADIONAME -tune zerolatency -f mpegts -mpegts_service_type digital_radio pipe:1
then put the script into a new mux as the URL: "pipe:///usr/bin/script"
and it should work...
I think native support will be much nicer as dealing around with external tools... how to switch channel and things like this? Unless it is even not needed to have input possibilities like DVB-S .... its possible to get it through files too.
yeah no question, it would be nicer, but as long as you don't have native hardware with linux-driver support you don't have much of a choice. You would have to use the new Auto-IPTV-Feature for an m3u playlist file with every single channel manually defined...
On the other side there are chips like Si4688. Okay they are more expensive and it is much harder to get them, but i still think this feature is still missing.
yeah, but this is pretty specialized hardware... Unless you're willing to send a couple of 'em to an interested dev, i don't think this is going to work short term...
/hp
Updated by LubosD - over 7 years ago
I'd be very interested in this as well, and even willing to implement it. I'd just take stuff from Welle.io, which took code from SDR-J and uses librtlsdr.
1) Would the Tvheadend project accept code in C++? Because that's what SDR-J is written in.
2) It's a little complicated for me, because RTL-SDR has very poor sensitivity. Despite being in reception area, I had to literally walk uphill while holding an antenna high to receive signal from a 20 kW broadcasting tower some 30km from where I am. Reminded my of searching for GSM signal back in year 2000 :-D
So I'd also have to implement support for rtl_tcp (RTL adapter connected to a remote system, e.g. RPi).
Updated by Mark Clarkstone over 7 years ago
LubosD - wrote:
I'd be very interested in this as well, and even willing to implement it. I'd just take stuff from Welle.io, which took code from SDR-J and uses librtlsdr.
1) Would the Tvheadend project accept code in C++? Because that's what SDR-J is written in.
TVH already has a little c++ :), so go for it!
2) It's a little complicated for me, because RTL-SDR has very poor sensitivity. Despite being in reception area, I had to literally walk uphill while holding an antenna high to receive signal from a 20 kW broadcasting tower some 30km from where I am. Reminded my of searching for GSM signal back in year 2000 :-D
So I'd also have to implement support for rtl_tcp (RTL adapter connected to a remote system, e.g. RPi).
That would be awesome!
Updated by La Marqe about 2 years ago
As this is googles #1 match when searching for tvheadend and DAB+, I would like to give some hints for everybody who tries to get this setup working.
It works perfectly fine for me.
I use example #4 coming with the following library: https://github.com/JvanKatwijk/dab-cmdline
I use the following command line (stored in a tiny bash script as proposed above):
#!/bin/bash
/home/jondoe/dvbt/dab-cmdline/example-4/build/dab-rtlsdr-4 -M 1 -B "BAND III" -C $1 -P "ANTENNE BAYERN" -G 80 | ffmpeg -i pipe: -acodec copy -metadata service_provider="Bayerischer Rundfunk" -metadata service_name="Antenne Bayern" -vn -f mpegts -mpegts_service_type digital_radio -nostats pipe:1
This setup runs absolutely stable for multiple hours at just ~75% CPU usage of just a single core on my Odroid C2.