lameでWAVをMP3に変換

オーケストラの練習をリニアPCMレコーダーで録音している。

録音はWAV形式だが、配布用にMP3に変換している。

今まではWindowsAudacityを使っていた。分割・連結も必要なことがあったため。

WSL2のUbuntulameを使ってフォルダ内の一括変換をするようにしてみたのでメモ。

$ ls ./*.WAV | sed -e 's/.WAV$//g' | xargs -IXXX lame --noreplaygain -b 320 -q 2 "XXX.WAV" "XXX.mp3"

ffmpegも試してみたがlameの方が音が良い気がする。オプションを変えたら変わるだろうか。ffmpeg

ffmpeg -i "XXX.WAV" -vn -ac 2 -ar 48000 -ab 320k -acodec libmp3lame -f mp3 "XXX.mp3" でやった。

Audacityはデフォルトではlameのライブラリを使っているようだ。ffmpegライブラリを使うように設定することもできる。

複数ファイルの合計サイズ計算にwcやduを使う

備忘。

複数ファイルの合計サイズの確認にwcが使えます。

$ find /tmp/hoge/ -type f -user user00 | xargs wc -c
           0 /tmp/hoge/A0F-2D47-7F8AD0CA1700-285E-2-29.bin
  9850546468 /tmp/hoge/A0F-2D47-7F8ACBFFF700-285E-2-19.bin
  5504904268 /tmp/hoge/A0F-2D47-7F8ACBFFF700-285E-2-1.bin
  5537057945 /tmp/hoge/A0F-2D47-7F8ACBFFF700-285E-2-15.bin
(略)
           0 /tmp/hoge/A0F-2D47-7F8AD0CA1700-285E-2-D.bin
341439837510 合計

そしてduでもできると知った。-hが使えるのでこちらの方がいいかも。

$ find /tmp/hoge/ -type f -user user00 | xargs du -hc
0       /tmp/hoge/A0F-2D47-7F8AD0CA1700-285E-2-29.bin
9.2G    /tmp/hoge/A0F-2D47-7F8ACBFFF700-285E-2-19.bin
5.2G    /tmp/hoge/A0F-2D47-7F8ACBFFF700-285E-2-1.bin
(略)
0       /tmp/hoge/A0F-2D47-7F8AD0CA1700-285E-2-D.bin
329G    合計

Windows環境パフォーマンスカウンターのCPU使用率「系」カウンターまとめ

Windows環境運用の初心者によるメモです。

Windowsのパフォーマンスカウンターには、CPU使用率を示す様々なカウンターがありますが
各カウンター同士の関係性(包含関係の有無など)がわかっていなかったので調べました。

Windows Server 2008 R2/Windows 7 に存在するカウンターをベースにしています。

カウンター

"使用率"系

  • \Processor Information\% Idle Time …… アイドル状態になっている時間
    • \Processor Information\% C1 Time …… C1低電力アイドル状態にある時間
    • \Processor Information\% C2 Time …… C2低電力アイドル状態にある時間
    • \Processor Information\% C3 Time …… C3低電力アイドル状態にある時間
  • \Processor Information\% Processor Time …… アイドル以外のスレッドを実行するために使用した経過時間
    • \Processor Information\% User Time …… ユーザーモードで経過した非アイドルのプロセッサ時間
    • \Processor Information\% Priviledged Time …… プロセスのスレッドが特権モードでコード実行に費やした経過時間(Linuxのシステム時間に似ている)
      • \Processor Information\% Interrupt Time …… ハードウェア割り込みを受け取り処理するための費やした時間
      • \Processor Information\% DPC Time …… 遅延プロシージャ呼び出し(DPC)の受け取り、処理に費やした時間
  • \Processor Information\% Priotiry Time …… 優先度の低くないスレッドを実行するために使用した経過時間(優先順位の低いスレッドまたはアイドルスレッドの実行に使用する時間の割合を計測し、その値を100%から引いて算出)

それ以外

  • \Processor Information\% of Maximum Frequency …… 現在の最大周波数の定格周波数に対する比率(省電力技術やターボ・ブースト・テクノロジーが有効な場合、最大周波数が変化する)

カウンター同士の関係

  • 『% Idle Time』 + 『% Processor Time』 = 100%
  • 『% Idle Time』 = 『C0ステートのアイドルだった時間(カウンターなし)』 + 『% C1 Time』 + 『% C2 Time』 + 『% C3 Time』
  • 『% Processor Time』 = 『% User Time』 + 『% Priviledged Time』
  • 『% Priviledged Time』 = 『% Interrupt Time』 + 『% DPC Time』 + 『その他カーネルモードの処理の時間(カウンターなし)』
  • 『% Priotiry Time』 = 100% - ( 『% Idle Time』 + 『優先度の低いスレッドを処理した時間(これがよくわからない)』 )

参考

www.wmifun.net

Cステート制御設定の調整 - マイクロネット

Pythonパッケージをオフライン環境にインストールするTIPS

オフライン環境にPythonパッケージを追加するときのTIPS。

"できなかった"は詳しく調べていないので勘違いかも

パッケージファイルのダウンロード

  • pip install --download で指定したディレクトリにPyPIからファイルをダウンロードできる。
    • ディレクトリは事前に作成しておく必要あり。
    • 依存するパッケージもダウンロードされる。
    • --no-binary :all: は全パッケージでソース形式のファイルをダウンロードする指定。
      • 指定しないとwheel形式のファイルがダウンロードされる。
      • 古いpipにはこのオプションがない。pip 1.4.1にはなかった。
## awscli と依存するパッケージのファイル(ソース形式)をダウンロードする

$ mkdir /tmp/src
$ pip install --download /tmp/src --no-binary :all: awscli

パッケージの導入

$ pip install --no-deps /tmp/src/*
  • pip install ソース形式ファイル で導入できる。
  • 特定のディレクトリに依存関係のあるパッケージファイルを集めて一括導入もできる。
    • --no-deps は指定しないと、個々のパッケージインストール中に依存するパッケージをダウンロードしようとするため追加している。
      • --no-index --find-links="file:///tmp/src" で依存するパッケージをディレクトリ内から探してくれるかと期待したがそうならなかった。

VPC内EC2インスタンスにPublic IPを割り当てるには

軽くはまったのでメモ

  • VPC内のEC2インスタンスにもEIPでないPublic IPを割り当てることができるようになっている。
  • ただしこの設定はインスタンスをローンチするときしかできない
    • (2015/07/29追記)変更するにはいったんAMI化して再ローンチすればよい。
  • インスタンスのローンチ時にManagement Console経由であれば「Step 3: Configure Instance Details」で「Auto-assign Public IP」属性を「Enable」に設定する。
  • インスタンスのローンチ時に明示して設定しないと、VPC SubnetのAuto-assign Public IP属性の値が引き継がれる。
  • Auto-assign Public IPが有効/無効に関わらず、EIPのアタッチはできる。

iperfで計測できるのは上りか下りか

備忘としてメモ。

デフォルトではクライアント→サーバー方向のスループットが計測される。が結論。

-rオプションでサーバー→クライアント方向のスループットも計測できる。

サーバー側(172.11.4.110)

[root@ip-172-11-4-110 ~]# iperf -s 
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 172.11.4.110 port 5001 connected with 172.11.4.85 port 49136
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec  1.17 GBytes  1.00 Gbits/sec
------------------------------------------------------------
Client connecting to 172.11.4.85, TCP port 5001
TCP window size:  444 KByte (default)
------------------------------------------------------------
[  4] local 172.11.4.110 port 33607 connected with 172.11.4.85 port 5001
[  4]  0.0-10.0 sec  1.16 GBytes   998 Mbits/sec

クライアント側(172.11.4.85)

[root@ip-172-11-4-85 ~]# iperf -c 172.11.4.110 -r
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
------------------------------------------------------------
Client connecting to 172.11.4.110, TCP port 5001
TCP window size:  481 KByte (default)
------------------------------------------------------------
[  3] local 172.11.4.85 port 49136 connected with 172.11.4.110 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.17 GBytes  1.01 Gbits/sec
[  5] local 172.11.4.85 port 5001 connected with 172.11.4.110 port 33607
[  5]  0.0-10.0 sec  1.16 GBytes   997 Mbits/sec

サーバー側でのトラフィック推移(dstat)

[root@ip-172-11-4-110 ~]# dstat -n
-net/total-
 recv  send
(略)
  52B  154B
1552B  208B
  52B  154B
 104B  260B
  52B  154B
  68M  284k
 122M  497k
 119M  492k
 121M  499k
 120M  493k
 121M  496k
 121M  493k
 120M  493k
-net/total-
 recv  send
 120M  497k
 120M  492k
  54M   67M
 399k  121M
 393k  120M
 400k  121M
 397k  121M
 394k  121M
 398k  121M
 396k  120M
 378k  114M
 387k  118M
 180k   55M
  52B  154B
  52B  154B
(略)

ftpコマンドでアクティブモードを使う(Linux)

少し時間を使ったのでメモ。

LinuxftpコマンドでFTPサーバーへの接続確認をしていたところ、 acliveモードしか利用できないFTPサーバーでPUT/GETができなかった。

ftpコマンドはデフォルトでpassiveモードを使うようになっていることがわかった。

$ ftp -h
(略)
       -p: enable passive mode (default for ftp and pftp)
(略)

activeモードを使うには、 FTPサーバーに接続してから「passive」コマンドを送信して passiveモードの有効/無効を切り替える。

ftp> passive
Passive mode off.

好き勝手できない環境だと、こういうベーシックなツールに関する理解が必要になる場面が多くて、それはそれで勉強になる。