駄文置場

PC、ガジェット、音楽に関して自分が興味がある事をツラツラと書いていく駄文置場です。

2017年06月

スマホが原因でオーディオノイズが発生

自宅でFX-AUDIO社のDAC-X4JというDAコンバータを使用しています。
現在の配置と問題点は図の通りです。

無題

ちなみにDAC-X4JをUSB接続でPCに直接続すると、
(つまりUSB-DACとして使用すると)ノイズは発生しません。

またUR824に刺さっているヘッドフォンやスピーカーからもノイズは聞こえません。
・・・という事はハードウエアの物理的故障は考えづらい状況です。

そこで、配線・OS・UR824のドライバの不調を疑い、以下を試してみました。
ですが、状況は改善されませんでした。

・UR824が不調かと思いPCのOS初期化やドライバ入れ直しした。
・パソコンとUR824を接続しているUSBケーブルを手持ちの物で交換してみた。
・UR824とDAC-X4Jの接続しているSPDIFケーブルを手持ちの物で交換してみた。

そこで問題を整理してみました。

・マウスをクリックしたり、照明のON/OFFなどトリガーがあって発生するノイズではない。
・ノイズの発生が不定期かつ、突発的である。
・ノイズが発生しても音の再生は途切れる事はなく、ノイズが重なって流れてくる。
・DAC-X4Jのみで発生している。
・物理的接続を見直しても、現象は解決しない。


ここまで考えて、外的要因によるものとしか説明がつかなくなりました。
という事で、続いて近くにあるノイズ源を見直しました。

そしてあれこれ調べてみて原因が判明。
なんと犯人はiPhone6Sでした…。

もちろん必ず発生するわけではなく、
iPhone6SがWIFIでなんらかの通信をしているときのみに発生します。

強制的にノイズを発生させる方法としてもっとも手ごろな方法は、
デザリングを有効にして近づけると確実に再現します。
何度やっても再現しましたので確実です。
(iPhoneのテザリングをONにするとWIFIの電波を周囲に発信するため)

確かにパソコンのデスクには、DACの他、iPhone6Sも常においてあります。
発生がランダムなのは、iPhone6SのWIFIの電波の強さに影響しているためで、
iPhone6Sから発するWIFI電波が強い時だけ、どうやらノイズがのるようです。

iPhone6SをDACや、DACから伸びているイヤホンケーブルから
30cm程離せばノイズはのらないので、置き場をかえて対処しました。

UR824では発生しないため、
DAC-X4Jの対ノイズ対応が弱い事が理由ではあったのですが、
なんだかなあという気分でもあります。。

Google Chrome用おすすめ拡張機能

Cache Killer

ChromeはなんでもCacheとして溜め込みますが、これが原因で逆にもっさり感を産んだり、
新しいタブを開いた時にURLがなかなか開かないなどの弊害も生みます。
この拡張機能はキャッシュを自動削除する事でもっさり感を解消します。

Douga Getter

ニコニコ動画エンコード用に動画を落とすために必須。

Ghostery

セキュリティ対策に。追跡トラッキングや広告ブロックの拡張機能です。
ミューブロックが強すぎる!という方(主に自分)おすすめ。

New Tab Redirect

Chromeは新しいタブを開くと履歴(サムネイル)画面が表示されますが、
この画面を開く事なく直接任意のURLを開くようにするための拡張機能です。

Click&Clean

Chromeを閉じる時に閲覧履歴などを自動消去してくれる拡張機能です。
Cache Killerとは別の不要なデータを削除できます。

Firefox 54にしても速くならない。

Firefox 54は、Chromeで既に採用されているように、
マルチプロセス化に対応する事で、
軽く速く動作するような仕組み
が導入されています。

ところが使用しているプラグインの種類によっては、
マルチプロセス化が有効にならないケースがあるようです。

FirefoxのURLの所に、「about:support」と入力すると、
”トラブルシューティング情報 ”という画面が開きます。

そこを下にスクロールしていくと、”マルチプロセスウィンドウ”という項目があるのですが、
ここが”0/1 (アドオンにより無効)”となっていて、高速化技術が動作していない事がわかります。

キャプチャ

アドオンが理由という事ですが、この理由を調べるためには、
Add-on Compatibility Reporter」 という、mozilla純正のアドオンを入れる必要があります。

このプラグインをインストールした後「about:addons」とURLバーに入力すると、
キャプチャ
FlashGot Mass Downloader」が非対応である事がわかりました。

FlashGotは、ニコニコから動画を落としてエンコードする時に愛用していたので、
これが使えないという事はとても痛いのですが、現時点では仕方なしです。

この状態でメモリの状態をみてみると、
確かにFirefoxは単一プロセスで動いてしまっている事がわかります。
1

そこでFlashGotを削除してみました。
このようにマルチプロセスウインドウが有効となりました。
キャプチャ

また、メモリプロセスもしっかり分割されている事も確認できました。
2

効果はかなり劇的で、起動した後に、複数のタブを使ったり、
新しいウインドウを開く時などに、Firefoxがキビキビ動くようになります。

FlashGotが使えなくなったのだから思い切ってChromeに・・・とも考えたのですが、
別アプリにはなってしまいますが「Craving Explorer」を使う事にしました。
別アプリではなく、アドオンでという事でしたら「Video DownloadHelper」を使うという手もありますが、
ダウンロード速度が遅い?ようなので私はパスしました。

それでもFirefoxに拘る理由は、FlashGot以上に便利である
DownThemALL」という分割ダウンローダの存在の大きさです。
幸いな事にDownThemALLはマルチプロセス対応しているので安心して使う事ができるようです。

Firefox54にしたけど、もっさりしたまま速くならない!という方の助けになればと思います。

KabeLake時代のQSVエンコード画質について考える

tかなり前にrigayaさんにご相談しながら情報を教えていただき、
以下のような記事をかきました。

Haswell時代のQSVエンコード画質について考える

今となっておはずかしいのですが、
H265でもH264でも両方ともQSVで対応していますが、
当時の記事はQSV=H264みたいな書きっぷりですね。
お恥ずかしい・・・。謹んで訂正させていただきます。

さて、時代はいつのまにやらKabyLake時代になり、
今年度後半には、次のCoffieLakeなるCPUの登場も予告されていますが、
やっぱり今でもQSV=H264かなと思っています。
H265は正直まだ早いかなと。エンコードが極めて遅いですし。

という事で結論からいうと、以下のレートが今でも生きているとおもっていて、
結局はICQ最高!という結論です。

「CQPで異常に低いQP指定 > LA-ICQ > ICQ >> CQP ≒ VQP > LA >>>(超えられない壁)>>> VBR = AVBR > CBR」

そういえばAviUtilでQSVのエンコードをするには、
rigayaさんが作られたQSVEncを使えば簡単にエンコードできますが、
今日はTMPGEnc Video Mastering Works 6の設定を少し書いておこうと思います。

無題

mp4の初期値からいくつか設定を変更しています。

映像エンコーダ Intel Media SDK Hardware
レート調整モード VBR(固定品質) VBV無し
パフォーマンス 遅い
品質 64
音声 320

なかでも固定品質モードの値を64にしている理由ですが、

51 - (TVMWの品質値 * 0.5)

このような計算式で求められる事をペガシスに確認済みです。
結果として crf=19 という値になります。
crf=19 はさすがにやりすぎでは?という意見もあろうかと思いますが、
SSIMという画質評価指標の値があり、

moni様が

x264のcrf値はどれくらいが適切なのか?  

という記事で検証されているのですが、
SSIMの値が0.985を下回ると、人間の目には画質が劣化したと映るようです。

そもそも最近はHDDの容量も大きくなっていますし、
自宅保管用の画像でしょうから、多少容量大きくなっても、
きれいな画質で残しておきたいものです。
という事で迷わず ctf=19 を採用しています。

肝心のエンコード時間ですが、7700K定格クロックで、
1時間半程度の動画が15分とかそのあたりだったと思います。速いですね!

Raspberry Pi 3の初期設定、セキュリティ、VPN

Raspberry Pi 3を購入したので、
初期設定、セキュリティ設定、VPNサーバー立ち上げまでの流れを書いてみます。
基本的にWindows上で操作しますが、一部だけRaspberry Pi 3で操作します。

1)Raspbian Jessie with PIXELのダウンロード

https://www.raspberrypi.org/downloads/raspbian/

Version: April 2017
Release date: 2017-04-10
Kernel version: 4.4

これを落とした。

2)Win32 Disk Imagerのダウンロード

https://sourceforge.net/projects/win32diskimager/files/Archive/

Win32DiskImager-1.0.0-binary.zip

これを落とした。

3)SDカードへの書き込み(Transcend microSDHCカード 16GB Class10 UHS-I対応 TS16GUSDU1P)

Writeで書き込む。

a

4)USBマウスとキーボード、HDMIケーブルでモニタを取り付けた上で Raspberryの設定で以下を設定(Raspberry Pi 3で作業)

Raspberry Pi 3にSDカードを装着し、起動してから以下を設定
これらはGUIのraspberry pi configurationから変更できる

・ホスト名変更(任意)
・SSHの有効化
・ロケール、タイムゾーン、キーボード、無線LANを日本に設定

5)IPアドレスの固定化(Raspberry Pi 3で作業)

ターミナルを開き以下の設定を最下段に追加(xxの所は自分の環境にあわせて設定)

$ sudo nano /etc/dhcpcd.conf

----------------------------------------
interface eth0
static ip_address=192.168.xx.xx/24
static routers=192.168.xx.xx
static domain_name_servers=192.168.xx.xx
----------------------------------------

$ sudo reboot

6)Tera Termのダウンロード

https://ja.osdn.net/projects/ttssh2/

zip版の最新版を落とした。

7)Tera TermでSSH接続

192.168.xx.xx に接続

ユーザ名 pi
パスワード raspberry

8)pi / rootのパスワードを設定

$ sudo passwd pi
$ sudo passwd root

9)Swap廃止、ramdisk構築(ramdiskは64mb)

$ sudo swapoff --all
$ sudo apt-get remove dphys-swapfile
$ sudo nano /etc/fstab

----------------------------------------
tmpfs    /tmp    tmpfs    defaults,size=64m,noatime,mode=1777 0 0
tmpfs    /var/tmp    tmpfs    defaults,size=64m,noatime,mode=1777 0 0
----------------------------------------

$ sudo reboot

10)アプリのインストール
リモートデスクトップと、ファイアウォールを入れた。

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install tightvncserver
$ sudo apt-get install xrdp
$ sudo apt-get install ufw
$ sudo reboot

11)xrdp(リモートデスクトップ)の初期設定


$ cd /etc/xrdp/
$ sudo wget http://w.vmeta.jp/temp/km-0411.ini
$ sudo ln -s km-0411.ini km-e0010411.ini
$ sudo ln -s km-0411.ini km-e0200411.ini
$ sudo ln -s km-0411.ini km-e0210411.ini
$ sudo service xrdp restart

12)ファイアウォールの初期設定


$ sudo ufw disable
$ sudo ufw default deny
$ sudo ufw allow from 192.168.x.0/24
$ sudo ufw enable

※ローカル接続のみ許可しそれ以外の外部接続をすべて拒否に。

13)ログファイルを最低限しか作成しないように変更

$ sudo nano /etc/rsyslog.conf

----------------------------------------
〜〜中略〜〜
###############
#### RULES ####
###############

#
# First some standard log files.  Log by facility.
#
auth,authpriv.*                 /var/log/auth.log
*.*;auth,authpriv.none          -/var/log/syslog
#cron.*                         /var/log/cron.log
#daemon.*                       -/var/log/daemon.log
#kern.*                         -/var/log/kern.log
#lpr.*                          -/var/log/lpr.log
#mail.*                         -/var/log/mail.log
#user.*                         -/var/log/user.log

#
# Logging for the mail system.  Split it up so that
# it is easy to write scripts to parse these files.
#
#mail.info                      -/var/log/mail.info
#mail.warn                      -/var/log/mail.warn
#mail.err                       /var/log/mail.err

#
# Some "catch-all" log files.
#
#*.=debug;\
#       auth,authpriv.none;\
#       news.none;mail.none     -/var/log/debug
*.=info;*.=notice;*.=warn;\
        auth,authpriv.none;\
        cron,daemon.none;\
        mail,news.none          -/var/log/messages

#
# Emergencies are sent to everybody logged in.
#
*.emerg                         :omusrmsg:*
----------------------------------------

14)1日1回再起動するように変更

$ sudo crontab -e

----------------------------------------
00 11 * * * /sbin/reboot
----------------------------------------

例では11時に再起動。

==== ここまでで基本的な初期設定完了 ===

以下VPN構築をしたい場合のみ作業を行う。

15)ファイアウォールの追加設定

以下はVPNを構築したい場合のみ作業となります。

500と4500=vpn
443=SoftEtherクライアント(ローカルからの接続のみ許可)

外部へは500/udp 4500udpのみ開放となる。
それ以外は全て閉じている状態になります。

公開されたポートはL2TP/IPsecで接続を許可する事になるので、
ここのセキュリティ管理(SoftEtherの初期設定、一番最後に記載)を重視しておけば
ほぼセキュリティは問題ないと考えます。

$ sudo ufw disable
$ sudo ufw allow 500/udp
$ sudo ufw allow 4500/udp
$ sudo ufw allow from 192.168.x.0/24 to any port 443 proto tcp
$ sudo ufw enable

16)SoftEther VPN Serverのインストール

最新の製造工程版、SoftEther VPN Server (Ver 4.20, Build 9608, rtm) を入れる事にした。

$ su-

# wget http://jp.softether-download.com/files/softether/v4.20-9608-rtm-2016.04.17-tree/Linux/SoftEther_VPN_Server/32bit_-_ARM_EABI/softether-vpnserver-v4.20-9608-rtm-2016.04.17-linux-arm_eabi-32bit.tar.gz

# tar zxvf softether-vpnserver-v4.20-9608-rtm-2016.04.17-linux-arm_eabi-32bit.tar.gz

# cd vpnserver
# make
# cd ../
# mv vpnserver /usr/local/
# cd /usr/local/vpnserver
# chmod 600 *
# chmod 700 vpn*

起動スクリプトを作成する

# nano /etc/init.d/vpnserver

----------------------------------------
#!/bin/sh
### BEGIN INIT INFO
# Provides:                 vpnserver
# Required-Start:           $local_fs $network
# Required-Stop:            $local_fs $network
# Default-Start:            2 3 4 5
# Default-Stop:             0 1 6
# Short-Description:        SoftEther VPN 4.20 RTM
# Description:              Start vpnserver daemon SoftEther VPN 4.20 Server
### END INIT INFO

DAEMON=/usr/local/vpnserver/vpnserver
LOCK=/var/lock/vpnserver

. /lib/lsb/init-functions
test -x $DAEMON || exit 0

case "$1" in
start)
sleep 3
log_daemon_msg "Starting SoftEther VPN 4.20 Server" "vpnserver"
$DAEMON start >/dev/null 2>&1
touch $LOCK
log_end_msg 0
sleep 3

# SoftEther VPNで追加した仮想tapデバイス名を調べる
tap=`/sbin/ifconfig -a| awk '$1 ~ /^tap/ {print $1}'`
/sbin/brctl addif br0 $tap
;;

stop)
log_daemon_msg "Stopping SoftEther VPN 4.20 Server" "vpnserver"
$DAEMON stop >/dev/null 2>&1
rm $LOCK
log_end_msg 0
sleep 2
;;

restart)
$DAEMON stop
sleep 2

$DAEMON start
sleep 5
# SoftEther VPNで追加した仮想tapデバイス名を調べる
tap=`/sbin/ifconfig -a| awk '$1 ~ /^tap/ {print $1}'`
/sbin/brctl addif br0 $tap
;;

status)
    if [ -e $LOCK ]
    then
        echo "vpnserver is running."
    else
        echo "vpnserver is not running."
    fi
;;
*)

echo "Usage: $0 {start|stop|restart|status}"
exit 1
esac
exit 0
----------------------------------------

# chmod +x /etc/init.d/vpnserver
# apt-get -y install chkconfig
# chkconfig --add vpnserver
# reboot

17)SoftEtherの初期設定

以後クライアント側の設定となりWindows上で作業をするが、
画面がないと煩雑なので以下URL参照の事。(リンクは貼っていません)

http://俺の技術メモ.net/raspberry-pi2-vpnserver-part2/

ただしこのURLの一番最後にある「本番設定」「起動スクリプトを作り直す」の2つは、
仮想HUBを作っていないので、作業不要。

==== ここまででVPNの設定完了 ===

==== 以下余談です。 ===

本体の設定方法

IMG_0337

こんな感じで背面の熱を放熱しやすい向きに設置すると良いかと。

vcgencmd measure_temp

このコマンドでCPU温度を見ることができる。
ラズバイ3のCPUは最大85度まで動く模様。
我が家はケース装着、自然冷却で60度~67度の間をウロウロ。

<2017/6/21追記>
ケースファンを追加した。
見た目は格好悪いですが、ケースの横に紐でくくりつけて運用中。

IMG_0342

Scythe AS-71G2 [USB変換ケーブル]
オウルテック Owltech FANGuard-M8(B)/II [ファンガード 8cm ブラック]
オウルテック Owltech SF8-S2 [ケースファン 1300RPM 80mm角 25mm厚 リブ無し]


この3点セットです。最大10dbと超静音でノイズは全くきにならず。
これを常時まわしてあげると、
48~49度で飽和し-15度位さがったので十分かと!
これで電源を入れっぱなしでも熱暴走リスクはないと思います。

それと最後に少しだけ。

セキュリティ対策で"pi"という初期ユーザ名を別の名前に変更したり、
sshのポートを22番以外に変更する方もいるようですが、
メンテナンス性に影響がでるので今回は行っていません。

またSDカードの寿命対策で、swapを止めたり、
/tmp や /var/tmp のRAMDISK化はしましたが、
アプリによって細かな設定変更や、
起動時にRAMDISKを構成するスクリプトの記載が必要になるため、
/var/log の RAMDISK化はトラブル防止で行っていません。

そもそもSDカードは安価なものはTLCが多く、
1000回書き換えすると寿命を迎えるとありますが、
ここで言う1000回というのは、SDカード上の全く同じ場所・同じ領域を、
上書きで延々1000回書き換えたら壊れるかも?という意味を示します。

通常はSDカードは同じ場所に延々書き込みしないように、
書き込みする場所をうまくローテーションする
ウェアレベリング機能という仕組みが組み込まれているので、
1000回リブートしたらSDカードが壊れてしまうという事はありません。

仮に壊れて起動できなくなっても再構築はさほど難しくありませんので、
その時に考えればいいかな・・・と、笑
livedoor プロフィール
記事検索
最新コメント
アーカイブ