Linux – Sound via HDMI on Arch Linux

arch linuxaudiohdmivlc

I've got my Toshiba laptop (Satellite A300) connected to my TV via HDMI. Using VLC 2.2.6, video works just fine.

Currently, I'm trying to output sound to the TV's speakers.

aplay -l shows the HDMI playback device as the third one:

**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: ALC268 Analog [ALC268 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 1: ALC268 Digital [ALC268 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

I was able to play a test sound on the TV using speaker-test -D plughw:0,3 -c 2 after I've unmuted S/PDIF in alsamixer.

Yet, when playing a file with VLC, the only option in Audio → Audio Device is "Built-in Audio Analog Stereo". At the moment, sound is played using the laptop's speakers.

How can I have VLC output the sound to the TV's speakers?

Best Answer

With pavucontrol

Turns out, I had to switch the profile of "Built-in Audio" to HDMI.

I can do that with pavucontrol, install it with pacman -Sy pavucontrol.

pavucontrol screenshot

Now, sound works perfectly on the TV speakers.

As described here, you can set the profile also from the command line with

pactl set-card-profile 0 output:hdmi-stereo

Since pavucontrol uses PulseAudio, this has to be installed as well: pacman -S pulseaudio. After restarting (PulseAudio's systemd job probably needed to be up), pavucontrol can connect to PulseAudio.

Related Question