PS. I used ffmpeg to "mux" raw pcm into wav, because VLC cannot understand raw pcm, produced from dab-rtlsdr-sdgradio-pcm.
But VLC is playing slow pitch sound.....
Posted 23 May 2020 - 21:36
I didn't know it, but looking at help (ffmpeh -h) I found it.
Video options: ............... -r rate set frame rate (Hz value, fraction or abbreviation) ............... Audio options: .............. -ar rate set audio sampling rate (in Hz)
Anyway after some minutes (5) playing, audio stops, using as a favourite on box, sf8008.
#SERVICE http://localhost:5237/dab/.....
You have to kill both dab-rtlsdr-sdg...... and ffmpeg processes to get audio again.
Edited by jpuigs, 23 May 2020 - 21:44.
Enigma is getting old....
Posted 23 May 2020 - 22:01
When audio stops, on dastreamer manualstart log it doesn't appear anything:
root@sf8008:~# dabstreamer manualstart Sat May 23 22:49:44 2020 Server Starts - :5237 192.168.0.2 - - [23/May/2020 22:49:46] "GET /dab/8A/EFF9 HTTP/1.1" 200 - 192.168.0.2 - - [23/May/2020 22:49:46] Parameters: /dab/8A/EFF9 192.168.0.2 - - [23/May/2020 22:49:46] Using command dab-rtlsdr-sdgradio-pcm -C 8A -p -2 -Q -S EFF9 | ffmpeg -f s16le -channels 2 -ar 48000 -i pipe:0 -f wav pipe:1
and that's all...
Sorry for posting so many times, but it's the worst problem in this forum, you can edit them within a few minutes..................
Enigma is getting old....
Posted 23 May 2020 - 23:21
Edited by athoik, 23 May 2020 - 23:21.
Posted 24 May 2020 - 10:21
I've read in several places that when ffmpeg stops converting after a few minutes is because buffer is overflowed.
Then it has to include option -re before input file
I've tried it, but then I get 2 seconds of good audio, and after that you have to stop it otherwise your ears will be damaged.........
ffmpeg_broken.jpg 215.93KB 2 downloads
Edited by jpuigs, 24 May 2020 - 10:28.
Enigma is getting old....
Posted 24 May 2020 - 11:08
root@osmio4kplus:~# cd /usr/share/welle-io/html && welle-cli -c 12C -w 5238 -g -1 Hello this is welle-cli v2.1-0-g8fc5739 InputFactory:Input device:auto RTL_SDR:Open rtl-sdr RTL_SDR:Found 1 devices. Uses the first working one Found Rafael Micro R820T tuner RTL_SDR: Opening rtl-sdr device0 [R82XX] PLL not locked! RTL_SDR: Supported gain values29 RTL_SDR: gain 49.6 RTL_SDR: gain 48 RTL_SDR: gain 44.5 RTL_SDR: gain 43.9 RTL_SDR: gain 43.4 RTL_SDR: gain 42.1 RTL_SDR: gain 40.2 RTL_SDR: gain 38.6 RTL_SDR: gain 37.2 RTL_SDR: gain 36.4 RTL_SDR: gain 33.8 RTL_SDR: gain 32.8 RTL_SDR: gain 29.7 RTL_SDR: gain 28 RTL_SDR: gain 25.4 RTL_SDR: gain 22.9 RTL_SDR: gain 20.7 RTL_SDR: gain 19.7 RTL_SDR: gain 16.6 RTL_SDR: gain 15.7 RTL_SDR: gain 14.4 RTL_SDR: gain 12.5 RTL_SDR: gain 8.7 RTL_SDR: gain 7.7 RTL_SDR: gain 3.7 RTL_SDR: gain 2.7 RTL_SDR: gain 1.4 RTL_SDR: gain 0.9 RTL_SDR: gain 0 Start RTLSDR thread OFDM-processor: reset (0) OFDM-processor:start ofdm-processor: Lost coarse sync (coarseCorrector: 0; fineCorrector: 0) ofdm-processor: SyncOnPhase failed ofdm-processor: SyncOnPhase failed ofdm-processor: SyncOnPhase failed ofdm-processor: SyncOnPhase failed ofdm-processor: SyncOnPhase failed ofdm-processor: Found sync (coarseCorrector: 0; fineCorrector: 0 after 44 frames) ...
Posted 24 May 2020 - 11:59
I don't understand exactly why you say that welle-cli needs a small change in order to allow frequency change from GET.
When you launch welle-cli binary from cmd, you can pass frequency and program
http://localhost:5238/mp3/12C/4098
elif tool == "mp3":
_, channel, program = parameters
cmd = "welle-cli -c %s -p %s " % (channel, program)
Doesn't it work ?
Is it (welle-cli) on any SDG feed ?
Enigma is getting old....
Posted 24 May 2020 - 14:32
Welle CLI already offers a streaming server. Also it doesn't offer a way to stream wav/pcm directly on output (Or I didn't find it yet).
So in order this to work from bouquets, it should have the option to change the current frequency.
Otherwise you need to use the web UI to switch to another channel.
So i made a patch to handle the channel change, also to send the index.html/index.js from the installed path.
diff --git a/src/welle-cli/webradiointerface.cpp b/src/welle-cli/webradiointerface.cpp index 1372b94..c533461 100644 --- a/src/welle-cli/webradiointerface.cpp +++ b/src/welle-cli/webradiointerface.cpp @@ -439,10 +439,10 @@ bool WebRadioInterface::dispatch_client(Socket&& client) else { if (req.is_get) { if (req.url == "/") { - success = send_file(s, "index.html", http_contenttype_html); + success = send_file(s, "/usr/share/welle-io/html/index.html", http_contenttype_html); } else if (req.url == "/index.js") { - success = send_file(s, "index.js", http_contenttype_js); + success = send_file(s, "/usr/share/welle-io/html/index.js", http_contenttype_js); } else if (req.url == "/mux.json") { success = send_mux_json(s); @@ -474,9 +474,38 @@ bool WebRadioInterface::dispatch_client(Socket&& client) const regex regex_slide(R"(^[/]slide[/]([^ ]+))"); std::smatch match_slide; + const regex regex_tune_mp3(R"(^[/]mp3[/]([56789][A-D]|1[123][A-D]|13[EF]|L[A-P])[/]([^ ]+))"); const regex regex_mp3(R"(^[/]mp3[/]([^ ]+))"); std::smatch match_mp3; - if (regex_search(req.url, match_mp3, regex_mp3)) { + if (regex_search(req.url, match_mp3, regex_tune_mp3)) { + cerr << "GET channel: " << match_mp3[1] << endl; + try { + const auto freq = input.getFrequency(); + const auto chan = channels.getChannelForFrequency(freq); + const auto newchan = match_mp3[1]; + if (newchan != chan) { + retune(newchan); + this_thread::sleep_for(chrono::seconds(2)); + success = send_mp3(s, match_mp3[2]); + for (auto i=0; i<10 && !success; i++) { + cerr << "Not yet synced, delaying to reply..." << endl; + success = send_mp3(s, match_mp3[2]); + this_thread::sleep_for(chrono::seconds(2)); + } + if (success) { + return true; + } + } + else { + cerr << "Retune not required..." << endl; + } + } + catch (const out_of_range& e) { + cerr << "Failed to retune " << e.what() << endl; + } + success = send_mp3(s, match_mp3[2]); + } + else if (regex_search(req.url, match_mp3, regex_mp3)) { success = send_mp3(s, match_mp3[1]); } else if (regex_search(req.url, match_slide, regex_slide)) {
Start the service...
root@osmio4kplus:~# welle-cli -w 5238 Hello this is welle-cli v2.1-0-g8fc5739 ....
Use url in the following way:
http://localhost:5238/mp3/12C/4099
or
http://localhost:5238/mp3/12C/0x1001
Use url http://IP_OF_RECEIVER:5238/ to access the web server of welle-cli.
Use the following in bouquets:
#SERVICE http://localhost:5238/mp3/12C/0x1001
Edited by athoik, 24 May 2020 - 14:34.
Posted 24 May 2020 - 16:10
VLC http://192.168.0.14:5238/mp3/8A/0xEFF9
userbouquet:
#NAME DAB
#SERVICE http://localhost:5238/mp3/8A/0xEFF9
#SERVICE http://localhost:5238/mp3/8A/0xEFF6
#SERVICE http://localhost:5238/mp3/8A/0xEFED
#SERVICE http://localhost:5238/mp3/11B/0xEFF3
Edited by jpuigs, 24 May 2020 - 16:14.
Enigma is getting old....
Posted 24 May 2020 - 16:15
Edited by athoik, 24 May 2020 - 16:20.
Posted 24 May 2020 - 16:20
fixed.
service id have to be in lowercase
#NAME DAB
#SERVICE http://localhost:5238/mp3/8A/0xeff9
#SERVICE http://localhost:5238/mp3/8A/0xeff6
#SERVICE http://localhost:5238/mp3/8A/0xefed
#SERVICE http://localhost:5238/mp3/11B/0xeff3
Edited by jpuigs, 24 May 2020 - 16:20.
Enigma is getting old....
Posted 24 May 2020 - 17:10
Althought it works, frequency change needs finetuning......
Zapping from one frequency to another isn't fine.
I've added one favourite program more to make tests between frequencies.
#NAME DAB #SERVICE http://localhost:5238/mp3/8A/0xeff9 #SERVICE http://localhost:5238/mp3/8A/0xeff6 #SERVICE http://localhost:5238/mp3/8A/0xefed #SERVICE http://localhost:5238/mp3/11B/0xeff2 #SERVICE http://localhost:5238/mp3/11B/0xeff3
As you see, 1 to 3 are on block 8A, and 4 and 5 are on 11B.
If I'm listening to any 8A program and I zap to another 8A program, it zaps instantly and no problem at all...
But If I'm on 8A and I zap to a 11B program (4), it doesn't work. I have to zap again to the other one on 11B (5) and then it works, and after that I can zap continously from 4 to 5 ,,,,,
Same applies back to 8A.
If I'm in 11B and I want to zap to a programm on 8A, I have to zap twice, and after that, no problem at all among all on 8A.
Here the full log:
after starting comandline and waiting for some seconds....
I tune to first favourite 8A eff9 (61433)
my comments start with ****
GET channel: 8A ****selecting favourite 1 program 61433 8A Retune to 195936000 Kill programme handler195936000 ofdm-processor: SyncOnPhase failed Take ownership of RX Destroy RX OFDM-processor: closing down OFDM-decoder:closing down now Set frequency End RTLSDR thread Start RTLSDR thread Restart RX OFDM-processor: reset (0) OFDM-processor:start Start programme handler ofdm-processor: Lost coarse sync (coarseCorrector: 0; fineCorrector: 0) ofdm-processor: SyncOnPhase failed ofdm-processor: SyncOnPhase failed Not yet synced, delaying to reply... ofdm-processor: SyncOnPhase failed ofdm-processor: Found sync (coarseCorrector: 0; fineCorrector: 0 after 30 frames) Not yet synced, delaying to reply... Could not setup mp3 sender for 61433: map::at Not yet synced, delaying to reply... Registering mp3 sender MP2Decoder: using decoder 'NEON'. Failed to send audio for Removing mp3 sender 61433 GET channel: 8A ****I get no audio after 15seconds so I zap to favourite 2 61430 8A Retune not required... Registering mp3 sender MP2Decoder: using decoder 'NEON'. ****Audio from fav. 2 appears instantly.... GET channel: 8A ****I zap to favourite 3 61421 8A, audio appears instantly too... Retune not required... Registering mp3 sender Removing mp3 sender Failed to send audio for 61430 SuperframeFilter: Superframe sync started... SuperframeFilter: Superframe sync succeeded after 3 frame(s) AACDecoder: using decoder 'FAAD2' GET channel: 8A ****I zap again to favourite 2 61430 8A, audio appears instantly too... Retune not required... Registering mp3 sender MP2Decoder: using decoder 'NEON'. Removing mp3 sender Failed to send audio for 61421 Failed to send audio for 61433 Removing mp3 sender GET channel: 8A ****I zap again to favourite 1 , no problems at all... Retune not required... Registering mp3 sender MP2Decoder: using decoder 'NEON'. GET channel: 8A ****I zap again to favourite 2 , no problems at all... Retune not required... Registering mp3 sender Failed to send audio for Removing mp3 sender 61430 SuperframeFilter: Superframe sync started... SuperframeFilter: Superframe sync succeeded after 4 frame(s) AACDecoder: using decoder 'FAAD2' GET channel: 11B ****Now I zap to favourite 4, 61426 11B..... Retune to 218640000 Kill programme handler218640000 Failed to send audio for 61421 Removing mp3 sender Take ownership of RX Destroy RX OFDM-processor: closing down OFDM-decoder:closing down now Set frequency End RTLSDR thread Start RTLSDR thread Restart RX OFDM-processor: reset (0) OFDM-processor:start Start programme handler ofdm-processor: Lost coarse sync (coarseCorrector: 0; fineCorrector: 0) ofdm-processor: SyncOnPhase failed ofdm-processor: SyncOnPhase failed ofdm-processor: Found sync (coarseCorrector: 0; fineCorrector: 0 after 18 frames) Could not setup mp3 sender for 61426: map::at Not yet synced, delaying to reply... Could not setup mp3 sender for 61426: map::at Not yet synced, delaying to reply... Failed to send response HTTP/1.0 200 OK Failed to send mp3 headers Not yet synced, delaying to reply... Failed to send response HTTP/1.0 200 OK Failed to send mp3 headers GET channel: 11B ****As I get no audio after several seconds, I zap to favourite 5 61427 11B Retune not required... Registering mp3 sender MP2Decoder: using decoder 'NEON'. Not yet synced, delaying to reply... Failed to send response HTTP/1.0 200 OK Failed to send mp3 headers Not yet synced, delaying to reply... Failed to send response HTTP/1.0 200 OK Failed to send mp3 headers Not yet synced, delaying to reply... ****Although you see this errors, I get audio perfectly from fav 5 Failed to send response HTTP/1.0 200 OK Failed to send mp3 headers Not yet synced, delaying to reply... Failed to send response HTTP/1.0 200 OK Failed to send mp3 headers Not yet synced, delaying to reply... Failed to send response HTTP/1.0 200 OK Failed to send mp3 headers GET channel: 11B ****I zap to favourite 4 61426 11B, audio appears instantly... Retune not required... Registering mp3 sender MP2Decoder: using decoder 'NEON'. Removing mp3 sender Failed to send audio for 61427 Failed to send response HTTP/1.0 200 OK Failed to send mp3 headers Failed to send response HTTP/1.0 404 Not Found Could not understand request. GET channel: 11B **** I zap again to favourite 5 61427 11B, audio appears instantly... Retune not required... Registering mp3 sender Failed to send audio for 61426 Removing mp3 sender MP2Decoder: using decoder 'NEON'.
Edited by jpuigs, 24 May 2020 - 17:13.
Enigma is getting old....
0 members, 4 guests, 0 anonymous users