lameでWAVをMP3に変換
オーケストラの練習をリニアPCMレコーダーで録音している。
録音はWAV形式だが、配布用にMP3に変換している。
今まではWindowsのAudacityを使っていた。分割・連結も必要なことがあったため。
WSL2のUbuntuでlameを使ってフォルダ内の一括変換をするようにしてみたのでメモ。
$ 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』 + 『優先度の低いスレッドを処理した時間(これがよくわからない)』 )
参考
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" で依存するパッケージをディレクトリ内から探してくれるかと期待したがそうならなかった。
- --no-deps は指定しないと、個々のパッケージインストール中に依存するパッケージをダウンロードしようとするため追加している。
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)
少し時間を使ったのでメモ。
Linuxのftpコマンドで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.
好き勝手できない環境だと、こういうベーシックなツールに関する理解が必要になる場面が多くて、それはそれで勉強になる。