New BBC Radio 3 streams

TL;DR --  Plug http://lstn.lv/bbc.m3u8?station=bbc_radio_three&bitrate=320000 into the streaming player of your choice.  Be happy!

For audio streaming, I use Volumio running on a RaspberryPi 4 with a HiFiBerry DAC. Set up was simple and there's a smart phone ap for remote control.  The reminder of my set up is a Dayton Audio DTA-1 "T Amp", driving a pair of Wharfedale Diamond 5 loudspeakers (designed by my friend and coauthor, Richard Lee).  Great sound for about $250.  I use Volumio's DSP plug in to add a couple of dB of bass below 80 Hz, and 2.5 dB of treble above 4 kHz.

This setup worked well with the BBC's legacy 128 kbit/sec MP3 Shoutcast streams, but the BBC shut them down about a year ago.  A couple of months before the MP3 streams ended, I found a GitHub "gist" with the URLs of their new MPEG-4 DASH streams [1].  For listeners outside the UK, the highest bit rate available was 96 kbit/sec. With MPEG-4 Advanced Audio Coding (AAC) that bitrate provides pretty good sound, but the Beeb is using the AAC-HE ("High Efficiency") profile, which uses spectral band replication (SBR). That means that the top octave (in this case, 12-24 kHz) is not transmitted, but generated from the lower octaves using "hints" about the shape of the spectrum. I can hear it in action on KCSM's 48 kbps AAC-HE stream, where the shimmer of a close mic'ed cymbal turns in to a frying sound.

At the beginning of November, the URL I had started returning "Gone." Back to GitHub and I found a new gist https://gist.github.com/bpsib/67089b959e4fa898af69fea59ad74bc3#file-bbc-radio-lstn-hls-m3u The notes say that the 128 and 320 kbit/sec streams are UK only, but let's test that from my home connection (Sonic Fiber, near San Francisco):

% ffprobe -i "http://lstn.lv/bbc.m3u8?station=bbc_radio_three&bitrate=320000"
[...]
Input #0, hls, from 'http://lstn.lv/bbc.m3u8?station=bbc_radio_three&bitrate=320000':
  Duration: N/A, start: 4846.664889, bitrate: N/A
  Program 0
    Metadata:
      variant_bitrate : 339200
  Stream #0:0: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp
    Metadata:
      variant_bitrate : 339200

48 kSa/sec audio encoded with MPEG-4 AAC/LC at 339.2 kbit/sec!  For all practical purposes, that's transparent.  What's not to like?  Thanks Auntie!

For reference, here's the 96 kbit/sec stream for Radio 3

% ffprobe -i "http://lstn.lv/bbc.m3u8?station=bbc_radio_three&bitrate=96000"
[...]
Input #0, hls, from 'http://lstn.lv/bbc.m3u8?station=bbc_radio_three&bitrate=96000':
  Duration: N/A, start: 4577.864889, bitrate: N/A
  Program 0
    Metadata:
      variant_bitrate : 101760
  Stream #0:0: Audio: aac (HE-AAC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp
    Metadata:
      variant_bitrate : 101760

Still very listenable.  

My second favorite BBC Radio stream is Radio 6 Music:
And, of course BBC Radio 4x for the Goon Show:

Finally, I'd be remiss if I didn't mention that BBC has a very nice streaming app for smart phones. 
While listening, my router says that my phone is using 100 kbit/s bandwidth on average, so it's likely the 96 kbit/sec stream.
  


[1] DASH stands for "Dynamic Adaptive Streaming over HTTP." The main advantage for broadcasters like the BBC is that it lets them leverage HTTP Content Delivery Networks (CDNs), like Akamai, instead of every connection going back to a server in the UK, as was the case with Shoutcast.  For example, my BBC radio feed is from an Akamai server near San Jose.  At the protocol level, it looks like a series of short MPEG transport streams, about 5 to 10 seconds each, that your player fetches with an HTTP client. 


Comments

The Shipping Forecast on Radio 4 is 100 years old this year.

https://www.youtube.com/watch?v=CxHa5KaMBcM
Aaron J. Heller said…
BBC has changed the URL format again to accommodate their content distribution network scheme. Here's a page that can build the new URLs https://radio.johnpenny.uk/tools/

Popular posts from this blog

A two-character fix in two hours: Wrestling with gpsd, cgps, and a $15 GPS puck

Further adventures of AK6IM, the kosher ham