Skip to main content
Answered

Playing local multi-channel audio (eg LPCM 5.1 .flac files)


I have a Sonos Beam Gen 2 and a TV that support ARC (but not eARC). I no longer have any spare HDMI inputs for my bluray player now that I’ve plugged a Google TV streamer in to the TV. Not really a problem as we stream all movies that we watch now, however, I have some bluray disks with 5.1 channel music that I’d love to be able to listen to through the Beam.

Jumping through hoops I’ve extracted the 5.1 sound files from the disk to a 5.1 LPCM .flac file, 48khz/24bits, and I put that on to my home network. The Sonos app can see the file, but when I try to play it I’m told “unsupported format”. So, is there a supported format I can convert the files to that the Beam can play directly?

Casting the sound file to the Google TV also doesn’t play the files, although I can play them fine on my computer or phone. (Also using an app called BubbleUPnP on my phone or home network I can convert the files to 2 channel to play, but I want the Beam to be able to mix the 5.1 channels itself)

This topic has been closed for further comments. You can use the search bar to find a similar topic, or create a new one by clicking Create Topic at the top of the page.

10 replies

Userlevel 7
Badge +13

As far as I understand it lpcm requires earc and will not play on arc

my tv turns lpcm into pcm 2.0 sound 

maybe convert them to Dolby 5.1 files might work but I don’t listen to music that way prefer old fashioned stereo sound 😜

Userlevel 3
Badge +1

As far as I understand it lpcm requires earc and will not play on arc

Yes, that’s how I understand it, and why the Google TV (nor the TV) will not be able to send the uncompressed multi-channel audio.

I was hoping there’d be a format I could have on my home network that the Beam could play directly - I think that it can it play multi-channel audio files from streaming services - do they use a particular sound format?

I think that not having eARC is going to annoy me :/

Userlevel 3
Badge +1

maybe convert them to Dolby 5.1 files might work but I don’t listen to music that way prefer old fashioned stereo sound 😜

Yeah, I agree with you - mainly I was curious what it would sound like, and maybe a short (or trial) subscription to one of the streaming services would be a quicker way to satisfy that curiosity.

If I can see a quick way to do it, I’ll also try turning them in to a video with Dolby 5.1, just to see if I really can hear a difference 🤨

Userlevel 7
Badge +23

The only 5.1 format that is going to work over ARC (or S/PDIF) is Dolby Digital 5.1.

Its unlikely you can re-encode your PCM 5.1 to that (because Dolby licenses) but you may be able to re-rip the file to DD 5.1 if it is already in that format on the optical disc.

Userlevel 7
Badge +13

@busywait 

if you subscribe to prime you can get free trial on unlimited Amazon Music to listen to most formats 

should give you a good idea on what it sounds like, then it’s just a case of deciding which one to subscribe to after that 😊

Userlevel 7
Badge +16

@busywait

Referring to play multichannel audio in music mode directly to your Beam2 from Sonos music library… is there an option to use another format than flac for encoding?

I just can comfirm that an Atmos MP4 file works this way. 
So imo whether Sonos can play just Atmos in music mode or multichannel works just with certain file formats. 
Unfortunately there is no official information about supportet multichannel audio in music mode besides Atmos music. 

Userlevel 3
Badge +1

 

I just can comfirm that an Atmos MP4 file works this way. 

That’s really interesting, and might help - thank you!

My source disks have sound in DTS-HD and I don’t think Sonos will play DTS-HD, so re-ripping is not helpful for that. I don’t yet know how I could convert anything *to* Dolby Atmos, but I did find a simplish way to make Dolby Digital Plus 5.1 .mp4 files from the .flac files that I already made:

ffmpeg -i 01-Track.flac -vn  -c:a eac3  01-Track-eac3.mp4

I tried wrapping the flac directly in the .mp4 and that didn’t play. Maybe there’s some completely uncompressed version of LPCM or WAV that I could use instead of eac3? But, it sounded OK :)
[Update: no, uncompressed audio doesn’t seem to be allowed in mp4 containers]

I can either play the audio-only EAC3 (Dolby Digital Plus) .mp4 files directly from my media server using the Sonos app, or cast to the Google TV. If I cast it to the Google TV then the Sonos gives me the usual TV sound options like dialogue enhance and night mode.

Userlevel 3
Badge +1

That was a big rabbit hole. I can now send surround versions of my music straight to my Sonos Beam gen 2 through my home network. Here is what I learned:

Short version: If I could have extracted a 640kbps pre-encoded Dolby Digital stream then I would have put that in a .mp4 (or .4a) file and used that. I only have a Beam gen 2 soundbar to play back through. The sound was different, maybe a bit more “stereo” than playing standard stereo files of the CD version. Because the 5.1 channel files play back so much louder (when streaming) than standard 2-channel .flac files I won’t be able to use them in a playlist.

Long version:

The advice to extract an existing Dolby Digital encoded stream was good, except I’m sure there was no DD track for the album on my Bluray disk (Marillion Misplaced Childhood Deluxe Edition), despite having the DD logo on the box.

I extracted the compressed DTS core, but I can’t find any way to send that to the Beam soundbar whatever file/container format I wrap it in. Even when I plugged my bluray player back in I still couldn’t find a way to play the compressed DTS track to the Beam - maybe because 1509kbps is too much for ARC, or maybe because my TV doesn’t pass through DTS?

The advice to use .mp4 files was helpful because multichannel .flac and multichannel .aac cannot be played: the 5.1 .flac is rejected with a message in the app; a 640kbps multi-channel .aac looks like it’s playing in the Sonos app, but the sound is silent and I need to cut the power to the Beam and reconnect before I can stream any other content! 

I also tried putting a lossless TrueHD audio stream in a .mp4 file, but although the Sonos app lets me add it to the queue there is an error shown when the track is played back. (And, I only have HDMI-ARC, not eARC, so I can’t send TrueHD through the HDMI connection to the Sonos.)

So, to re-encode the 96kHz/24-bit audio from the disk there were two codecs that worked: ac3 (as used in Dolby Digital) and eac3 (as used in Dolby Digital Plus). I only have the free ffmpeg tool to encode them, and it is not as good as commercial/professional software at encoding e/ac3, but is competent at high bitrates. The eac3 codec allows much higher bitrates than ac3, but ffmpeg has a reputation for generating invalid eac3 streams, and eac3 players are often unable to cope with eac3 errors. I definitely managed to make some files that cause the Beam to go silent part-way through playback.

After a lot of trial and error and reading, and in case I need to look it up again in the future, here is the command I used to make a multi-channel file that I can pick from the Sonos app and play directly over my home network:

ffmpeg.exe -i "TrackOne.flac" -vn -c:a eac3 -b:a 1024k -af aresample=out_sample_rate=48000 -cutoff 20000 -movflags +faststart "TrackOne.m4a"

(I used ffmpeg v7.0)

When the 5.1 channel .m4a file plays back over the network (when I choose the track in the Sonos app) the sound is very loud - much louder than any other source, and much louder than streaming the same file via my Google TV to the Sonos via HDMI-ARC.

I guess any of this could change with new firmware in the future, but maybe interesting to someone...🤷‍♀️

Userlevel 7
Badge +22

Possibly look at a volume normalization tool or other audio editor to re-encode your file with a lower volume level?

Userlevel 3
Badge +1

Possibly look at a volume normalization tool or other audio editor to re-encode your file with a lower volume level?

Aha - yes - I can specify the loudness of the input file when I create the .mp4 audio file: “Dialog Normalisation”. It was originally intended so that film and tv dialog could be played back at a consistent level in different programs, but it is used to keep music at a consistent level in Atmos playback too. The number is added to the audio stream and then the decoder (my Sonos soundbar) drops the volume so that I don’t have to reach for the remote control so often.

My command needs to look like this:

ffmpeg.exe -i "TrackOne.flac" -vn -c:a eac3 -b:a 1024k -af aresample=out_sample_rate=48000 -cutoff 20000 -dialnorm -3 -movflags +faststart "TrackOne.m4a"

I used “-dialnorm -3” in that example. The range is from -31dB (which effectively tells the speaker not to turn down the volume at all) up to -1dB, which indicates the audio is very loud and the volume should be turned down by 30dB. When I didn’t give any value then ffmpeg.exe added a default value of -31 which is sometimes helpful, but on my Beam Gen 2 meant the volume was way too loud.

Technically I should measure the “integrated loudness” of the input file (or maybe the whole album) in LUFS and then give the value as “dialnorm”. In practice my 2 music blurays were -11 and -14; the encoded .mp4 files still play back louder than my CDs. Using -3 in the encode seems to match the volume of my CD rips when I’m streaming the files from my local network, but plays back quieter than Atmos files played back from my Amazon Unlimited trial. 

The playback volume through the HDMI input is different, but I guess that’s a different problem.

Learning way more than I need to about Dolby Digital Plus, there are a few extra parameters that might be helpful to specify in that command:

-dmix_mode 2 -loro_cmixlev 0.707 -loro_surmixlev 0.707 -ltrt_cmixlev 0.707 -ltrt_surmixlev 0.707

I didn’t hear them make any difference to the playback on the soundbar though.