So what you want looks like this :
Web Stream <------ WebStreamSlider <--------- Music
|
Headphones <------ your_volume_slider <---------|
1) So you want to create a special "sink" for your stream :
pactl load-module module-null-sink sink_name="webstream_sink" sink_properties=device.description="web_stream"
2) Then you want to direct the sound of your music application to this new sink, using pavucontrol (in the playback tab, you can choose the sink in which each application outputs its sound). Choose the sink "web_stream" for your music application.
3) In OBS sound properties, choose the device "Monitor of web_stream"
4) Since you want to hear your music too, make a loopback of the web stream sound to your headphones :
pactl load-module module-loopback source=webstream_sink.monitor sink=alsa_output.pci-0000_00_1b.0.analog-surround-51 rate=44100
The sink is "alsa_output.pci-0000_00_1b.0.analog-surround-51" for me. To know yours, run
pactl list short sinks
you should have only 2, the right one is the first one (*not* "webstream_sink").
5) Now when you mute your general volume, the music keeps on being sent to the web stream, while you do not hear it anymore, at the same level.
It's quite complicated at first, but once you understanbd the pulseaudio logic, it's quite powerful.
Tell me if it worked or if you need more details :)