VLC+Radeonハードウェアデコードでブロックノイズが出る場合の対処(Windows)
大きなスポーツイベントが開催されたので約10年ぶりにPCによる録画に挑戦してみた。機材はPT2 on Core2Duo。OSがUbuntu 12.04 LTSだったので20.04 LTSを新規インストールして臨んだ。
録画したファイルをWindows上のVLCで再生してみる。
えっ何ですかこれは。
BS放送のみブロックノイズが発生している。録画が失敗したのだろうか。それはそれで諦めるとしても、こういう不調を放置するのは好きじゃない。なんとかして原因や対処方法を突き止めたい。
試行錯誤
1.ハードウェア周りの調査・変更
拙宅では録画の1か月ほど前にプロによるアンテナ工事が行われている。地デジ録画は問題なくBS録画のみ問題が発生していることから、十中Hack、アンテナ線などのハードウェア周りの不具合であろう。おそらく原因はそこにあるはずだ。
アンテナ線周りの改善→NG
配線変更、ブースター追加&撤去、アッテネーションなど、いろいろやってみた。しかし、どれも改善に至らず。そもそもCNRが16~17dBほど得られているので問題があるのか無いのかよくわからない。
購入したブースターが余ってしまった。
チューナーの変更→NG
チューナーPT2の故障を疑い、USBチューナーを購入してみるも同じ症状を確認。
軽く落ち込む。また、つまらぬものを買ってしまった。
2.録画ファイルと再生環境の調査
ハードウェアの問題でなければ、録画ファイルや再生環境の問題だろうか。録画ファイルのストリームコンテナから所望のデータのみ抜き出せれば手がかりが掴めるかも知れない。
ffmpegでprogramを抜き出す→NG
同じ症状を確認。ならばさらにその中身を抜き出してみよう。
ffmpegでprogram中のvideoとaudioだけ抜き出す→NG
同じ症状を確認。まじかー。方向転換しよう。
ffmpegでmp4エンコード→OK
あれれ??、ブロックノイズが出ない。なんだこれは。
MPC-BEで再生→OK
VLCの代わりにMPC-BEを使ってみる。録画ファイルの再生でもブロックノイズが出ない!。ということは、VLCの再生に限って問題があるのか。
VLCの設定変更
ハードウェアデコード設定の変更→OK
おそらく、デコーダーを変えれば良いのだろう。
ツール→設定から設定画面が開くので、入力/コーデック欄を見てみる。デフォルトは「ハードウェアアクセラレーションによるデコード」が「自動」だが、他の選択肢へ変更してみる。
やった!、改善した。「DirectXビデオアクセラレーション(DXVA)2.0」へ変更すれば良いようだ。
GPUの試行錯誤
GPUドライバの変更→NG
コーデックの「ハードウェアアクセラレーション」とはGPUの動画再生支援のことだろう。試しに、GPUのドライバをWindowsUpdateで入るものから、メーカー(Lenovo)推奨のバージョンへ変更してみる。いったんVLCの設定は元に戻しておく。
AMD Radeon(TM) Vega 11 Graphics バージョン30.0.13023.1012
↓
AMD Radeon(TM) Vega 11 Graphics バージョン26.20.14054.5001(メーカー推奨バージョン)
結果は改善せず、同じ症状を確認。GPUドライバを変更して改善できるものではないようだ。
結論
Radeon GraphicsのWindows PCにて、VLCで再生時にブロックノイズが出た場合、VLCのツール→設定→入力/コーデックから「ハードウェアアクセラレーションによるデコード」を「DirectXビデオアクセラレーション(DXVA)2.0」へ変更すれば解消できる場合があることがわかった。
Discussion