それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

raspberry pi 4 は hdmi から音が出ない事がある。

raspberry pi 4 の debian/bookwarn で hdmi から音が出ない。

VLC の場合でもAnalogが選ばれてしまうことが多い。

Raspi4 では、HDMIとアナログがあるのでアナログが使われる。

ググると、この辺のオーディオ設定が初心者泣かせと書かれていた。わかる気がする。アナログ・オーディオのほうが汎用性が高いんだけど。使う人は減った。Raspi5 ではこの問題は起きない。アナログが排除された。

コマンドから選ぶ。

mpv の場合は、次のコマンドで、オーディオデバイスを一覧できる。

mpv --audio-device=help

一覧を出すとこんな感じ。

takuya@raspberrypi:~ $ mpv --audio-device=help
List of detected audio devices:
  'auto' (Autoselect device)
  'pulse/alsa_output.platform-bcm2835_audio.analog-stereo' (内部オーディオ Analog Stereo)
  'pulse/alsa_output.platform-fef00700.hdmi.hdmi-stereo' (内部オーディオ Digital Stereo (HDMI))
  'alsa' (Default (alsa))
  'alsa/sysdefault' (Default Audio Device)
  'alsa/lavrate' (Rate Converter Plugin Using Libav/FFmpeg Library)
  'alsa/samplerate' (Rate Converter Plugin Using Samplerate Library)
  'alsa/speexrate' (Rate Converter Plugin Using Speex Resampler)
  'alsa/jack' (JACK Audio Connection Kit)
  'alsa/oss' (Open Sound System)
  'alsa/speex' (Plugin using Speex DSP (resample, agc, denoise, echo, dereverb))
  'alsa/upmix' (Plugin for channel upmix (4,6,8))
  'alsa/vdownmix' (Plugin for channel downmix (stereo) with a simple spacialization)
  'alsa/plughw:CARD=vc4hdmi0,DEV=0' (vc4-hdmi-0, MAI PCM i2s-hifi-0/Hardware device with all software conversions)
  'alsa/sysdefault:CARD=vc4hdmi0' (vc4-hdmi-0, MAI PCM i2s-hifi-0/Default Audio Device)
  'alsa/hdmi:CARD=vc4hdmi0,DEV=0' (vc4-hdmi-0, MAI PCM i2s-hifi-0/HDMI Audio Output)
  'alsa/dmix:CARD=vc4hdmi0,DEV=0' (vc4-hdmi-0, MAI PCM i2s-hifi-0/Direct sample mixing device)
  'alsa/usbstream:CARD=vc4hdmi0' (vc4-hdmi-0/USB Stream Output)
  'alsa/plughw:CARD=vc4hdmi1,DEV=0' (vc4-hdmi-1, MAI PCM i2s-hifi-0/Hardware device with all software conversions)
  'alsa/sysdefault:CARD=vc4hdmi1' (vc4-hdmi-1, MAI PCM i2s-hifi-0/Default Audio Device)
  'alsa/hdmi:CARD=vc4hdmi1,DEV=0' (vc4-hdmi-1, MAI PCM i2s-hifi-0/HDMI Audio Output)
  'alsa/dmix:CARD=vc4hdmi1,DEV=0' (vc4-hdmi-1, MAI PCM i2s-hifi-0/Direct sample mixing device)
  'alsa/usbstream:CARD=vc4hdmi1' (vc4-hdmi-1/USB Stream Output)
  'alsa/plughw:CARD=Headphones,DEV=0' (bcm2835 Headphones, bcm2835 Headphones/Hardware device with all software conversions)
  'alsa/sysdefault:CARD=Headphones' (bcm2835 Headphones, bcm2835 Headphones/Default Audio Device)
  'alsa/dmix:CARD=Headphones,DEV=0' (bcm2835 Headphones, bcm2835 Headphones/Direct sample mixing device)
  'alsa/usbstream:CARD=Headphones' (bcm2835 Headphones/USB Stream Output)
  'jack' (Default (jack))
  'sdl' (Default (sdl))

オーディオ出力先を指定。

再生機器をHDMIに指定して、再生すると次のようになる。

DISPLAY=:0 mpv  --fullscreen --audio-device=pulse/alsa_output.platform-fef00700.hdmi.hdmi-stereo

認識していれば、ALSAを選べば良いようです。

DISPLAY=:0 mpv  --fullscreen --audio-device=alsa/sysdefault

認識していないとき

raspi-config で pulse を選べば動くはずなんだが。

この辺はわからないので、明示してALSAを使うほうが無難。

ちなみに、PipeWireを設定した場合は、次のようなデバイス一覧になる。

List of detected audio devices:
  'auto' (Autoselect device)
  'pipewire' (Default (pipewire))
  'pipewire/alsa_output.platform-bcm2835_audio.stereo-fallback' (内部オーディオ Stereo)
  'pipewire/alsa_output.platform-fef00700.hdmi.hdmi-stereo' (内部オーディオ Digital Stereo (HDMI))
  'pulse/alsa_output.platform-bcm2835_audio.stereo-fallback' (内部オーディオ Stereo)
  'pulse/alsa_output.platform-fef00700.hdmi.hdmi-stereo' (内部オーディオ Digital Stereo (HDMI))

ALSAはあるけどpulse に加えて、pipewireが出てくる。

hdmi を使うときはオーディオ注意

あれこれと変更点があって、素直に行かない気はするけど。昔は問題なく動いてたものが、動かなくなるのは辛いけど、Raspiでてから10年も経つし、あれこれ変わってきてるのは仕方がない。

慎重に見れば、まぁ大丈夫でしょう。