CentOS 7上のxawtvでノイズが発生することへの対応 [Linux]
・xawtv-3.105-2.el7.x86_64
・alsa-lib-1.1.6-2.el7.x86_64
・alsa-plugins-pulseaudio-1.1.6-1.el7.x86_64
・alsa-utils-1.1.6-1.el7.x86_64
・pulseaudio-10.0-5.el7.x86_64
・kernel-3.10.0-957.10.1.el7.x86_64
(saa7134 モジュール、saa7134_alsa モジュールを使用)
1. 発生事象
xawtv の音声にノイズが発生する。
・起動直後にはノイズは発生しない。
・しばらく使用しているとノイズが発生する。
(30〜60 分程度の連続使用で、音がこもる/割れる。)
・xawtv を再起動すると改善される。
・xawtv の機能により、ミュートの設定/解除を行うと改善される。
・改善された後も、しばらく使用していると再発する。
・ノイズが発生する場合には、下記のようなメッセージが出力される。
ALSA lib pcm.c:8424:(snd_pcm_recover) overrun occurred
(ただし、当該メッセージが出力されてもノイズが発生するとは限らない。)
(補足)
・/dev/mixer の存在しない状態で使用している。
・xawtv の画像に関しては、問題は発生していない。
2. 対処方法
現時点では、根本的な解決方法は不明である。
また、取り敢えず、下記の手順により対応可能である。
(1) ~/bin/xawtv-patch の作成
下記の処理を行うスクリプトを作成する。
(a) xawtv の機能により、mute の状態を取得する。
v4lctl show mute
(注意)
xawtv-remote に同じ引数(同じコマンド)を指定しても何も出力されない。
(b) mute されていない場合、xawtv の機能により mute/unmute を実施する。
xawtv-remote volume mute on sleep 0.1 xawtv-remote volume mute off
・mute の実施により、一時的に音声出力が途切れる。
・mute と unmute の間に sleep を入れた方が、より効果が得られる。
(注意)
v4lctl に同じ引数(同じコマンド)を指定しても求める効果が得られない。
(2) cron への ~/bin/xawtv-patch を実行する設定の追加
・例えば、20 分毎に ~/bin/xawtv-patch を実行する。
・再発した場合には、手動で mute の設定/解除を実施することで対応する。