This can be done in software, eg https://askubuntu.com/questions/31580/is-there-a-way-of-leve... for linux.
I guess that you're asking for hardware because the source device is not under your control. In theory you could use any device with a line in to process the audio. However for watching movies that may be suboptimal as any significant delay would cause lipsync issues. That's probably something you need to check for in any solution.
Not that OPs use case seems latency sensitive, but it can be good to know for others. If you go this route, you'd have to set things up very carefully as latency balloons up quickly if you pipe things outside>computer>outside. If you're just looking for reducing the dynamic range, cheap compressor for sub-$100 would do the trick without adding much latency.