忍者ブログ

数学をわかりやすくするblog

[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

PulseAudioでHDMI音声出力

必要なもの

PackageDescriptionVersion
pulseaudio pulseaudio本体 5.0-2
pavucontrol deviceの指定 と 音量調節 2.0-2
paman 設定確認用 0.9.4-1
veromix シンプルな音量調節 と Equalizer と Effect 0.18.3-1
xfce4-mixer system tray 型の音量調節 4.10.0-3
gstreamer0.10-pulseaudio xfce4-mixerをpulseaudioに対応させるのに必要 0.10.31-3+nmu2

音を出す

~/.asoundrc
pcm.pulse {
        type pulse
}

ctl.pulse {
        type pulse
}

pcm.!default {
        type pulse
}

ctl.!default {
        type pulse
}

pulseaudioの再起動
$ pulseaudio -k
$ start-pulseaudio-x11

爆音が出ると怖いので pavucontrol で音量を小さくします
できるだけ長い音声ファイルを再生しながら
pavucontrol -> Configuration でスピーカーから音が出る Profile を探す
この段階で音が鳴らないならスピーカー側の設定をチェック

音質調整

1. Sample Type

できるだけ長い音声ファイルを再生しながら
$ cat /proc/asound/card*/*/*/hw_params
closed
closed
closed
closed
access: MMAP_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 48000 (48000/1)
period_size: 1200
buffer_size: 4800
これがたぶんシステム側で対応している一番高音質な設定

2. Resample Method

(測定環境)
Intel Celeron G530 1.6GHz HDMI接続
pulseaudio 5.0-2

resample-methodsCPU usage
src-sinc-best-quality min: 26.7 max: 27.3 avg: 27.01
src-sinc-medium-quality min: 7.2 max: 7.6 avg: 7.47
src-sinc-fastest min: 3.8 max: 4.3 avg: 3.92
src-zero-order-hold min: 1.0 max: 1.5 avg: 1.06
src-linear min: 1.0 max: 1.4 avg: 1.11
trivial min: 0.8 max: 1.3 avg: 0.95
ffmpeg min: 1.2 max: 1.8 avg: 1.28
speex-float-0 min: 1.3 max: 1.8 avg: 1.36
speex-float-5 min: 3.0 max: 3.4 avg: 3.09
speex-float-10 min: 18.1 max: 18.6 avg: 18.41

高音質化の処理は意外と高負荷なので注意
Defaultはspeex-float-1

3. 設定

~/.pulse/daemon.conf
#resample-method = src-sinc-best-quality
#resample-method = src-sinc-medium-quality	
#resample-method = src-sinc-fastest
#resample-method = src-zero-order-hold
#resample-method = src-linear
resample-method = trivial
#resample-method = ffmpeg
#resample-method = speex-float-0
#resample-method = speex-float-5
#resample-method = speex-float-10
default-sample-format = s32le
default-sample-rate = 48000
default-sample-channels = 2

wineなどでパリパリノイズが乗るなら以下を追加
$ cp /etc/pulse/default.pa ~/.pulse/
~/.pulse/default.pa
load-module module-udev-detect tsched=no
~/.pulse/daemon.conf
default-fragment-size-msec=5

pulseaudioの再起動
$ pulseaudio -k
$ start-pulseaudio-x11

もっと詳しいことは
$ man pulseaudio
$ man pulse-daemon.conf
$ man default.pa
PR

コメント