Question / Help Bad Audio Quality only when Streaming, Recording is fine

EpicLPer

New Member
Hey there!

So for the last couple of months I've been having weird audio issues where, when I start streaming, the audio quality takes a huge dip and sounds super compressed. This isn't an issue however when I just record locally. It almost sounds like Twitch would do some bad magic behind the scenes with the audio making it all bad...

So, here's an example: https://clips.twitch.tv/CooperativeRoughBubbleteaGingerPower

Just listen to this, the sound is so compressed down it just sounds awful when listening to it on basically anything else than a mobile phone... However the OBS recorded version of said part is flawless, no compression hear-able at all.

I've already set the audio settings inside OBS to 48kHz@192kBit/s for all audio channels, FooBar2000 is feeding OBS via VirtualAudioCable at 192kBit/s too with all files also being 192kBit/s, yet it sounds something more like 64kBit/s on Twitch... I've also changed my desktop audio source to VoiceMeeter already in order to check if my Steelseries Headset with it's wonky Surround Sound drivers would do something not intended here but nope, didn't fix it either.

I've included a log here. Maybe someone can help me since this is really an annoying issue, I'm trying my best to make everything as good as possible yet this is something that keeps bugging me since months already...

Thanks a ton!
 

EpicLPer

New Member
I just saw that Twitch enforces 160kBit/s for streams but this still wouldn't explain why it sounds more like 64kBit/s...
 

EpicLPer

New Member
The default AAC codec is pretty mediocre, you can get a higher quality AAC codec from an Itunes installer

https://obsproject.com/forum/resources/obs-studio-enable-coreaudio-aac-encoder-windows.220/
Hm, interesting. Didn't know about that actually, I did have the 32bit version installed since I'm using the Windows Store iTunes version but never the 64bit one so OBS wasn't able to find said codec. Now that I installed the ApplicationSupport64 one it did find it, I'll have to test the quality later on again.
But why would this only affect streaming quality and not recording quality? Or is the recorded audio codec not AAC?
 

BK-Morpheus

Active Member
Indeed, the encoder quality should be the same for local recordings and streams.
The log shows multiple audio tracks and mkv container for local recordings. I would guess, that for streaming those different audio tracks need to get mixed down into a single track (as far as I know, Twitch only supports one audio track), so maybe that is the process, that messes up the dynamic range in the sound.
Maybe you can do a test stream with only one audio source/track and check, if the quality sounds better. If so, maybe the downmix is introducing a loudness increase which then results in that compressesd dynamic. If that's the case, reducing the volume of every individual track might help.
 

EpicLPer

New Member
Indeed, the encoder quality should be the same for local recordings and streams.
The log shows multiple audio tracks and mkv container for local recordings. I would guess, that for streaming those different audio tracks need to get mixed down into a single track (as far as I know, Twitch only supports one audio track), so maybe that is the process, that messes up the dynamic range in the sound.
Maybe you can do a test stream with only one audio source/track and check, if the quality sounds better. If so, maybe the downmix is introducing a loudness increase which then results in that compressesd dynamic. If that's the case, reducing the volume of every individual track might help.
As far as I know OBS only sends Track 1 to Twitch, all other Tracks are then used in case I need them for post editing. But an official dev may know more about this.
 

BK-Morpheus

Active Member
Ah okay, so you simply don't hear the sound from all the other tracks in your stream, then?
Makes me even more curious about your test result with the CoreAudio encoder compared to the default ffmpeg aac encoder that is used in the example.
 

EpicLPer

New Member
Ah okay, so you simply don't hear the sound from all the other tracks in your stream, then?
Makes me even more curious about your test result with the CoreAudio encoder compared to the default ffmpeg aac encoder that is used in the example.
What I do is each source I want to be hearable on my Stream is enabled for Track 1, aka. everything. I then split up chat voice, game audio, music etc. via VirtualAudioCable/VoiceMeeter via separate channels so later in post editing I could, if one things volume is too low/loud, boost or lower it.
 
Top