09.07.26 追記
Multi thread Media Encoder Frontend(マルチスレッド対応 マルチフロントエンド)をリリース。
マルチスレッド対応 lameフロントエンド (もどき)より、
高性能で安定性も高い…と思う。
GUIも付いたので、マウスだけでも操作できます。
http://mtmef.g.hachune.net/
ここより下の情報は古いです…(´・ω・`)スマソ
GWが終わったら、バグ取りと機能改善したものをリリースするよ(´・ω・`)、…と言って修正を開始し、とりあえず問題無く動くレベルになったので、リリースしてみた。
今回は、エンコードファイルのフィルタリング機能(ファイル名・ファイルサイズ・アクセス時間・更新時間で判別)と、スレッド数の上限の撤廃をメインに、いろいろ修正した。
以下テンプレ。
どういう処理をするのか、などの解説はこちら。
特徴
- lameのエンコード処理を並列して行うことができ(環境が許す限り無限に)、Corei7・PhenomⅡなどのマルチコア・マルチスレッドCPUや、デュアルプロセッサ環境も有効に使える。
- ディレクトリごとに一気にエンコードが可能。
- wav→mp3変換とmp3→mp3変換に対応。
- Ruby 1.8がインストールしてあれば、Windows、Unix、Linux、MacOSXなどの、どんなOSでも使用することができる(たぶん)
- Windowsの場合は、Rubyが無くても動く。
- Cygwinなどは必要ない。
- プロセスを多重起動しているだけなので、音質に影響するということがない。
- 大量のファイルを登録しても、登録エラーなどが発生しない(ハズ)
- エンコードのログを残せる。
- エンコードにかかった時間を計測できるようにしたので、ファイルやlameバイナリを統一すれば、mp3エンコードのベンチマークとして使える…かもしれない。
今回の変更・更新
- thread_mtlamef.rbを最適化。全行数が340行から40行に。
- スレッド数を無限に(エンコードするファイルの数だけ)増やせるようにした。
- 特定の文字列を含んだファイルやディレクトリを参照すると、強制終了する問題を一つ修正。
→未発見のものが他にも沢山ありそうな気が... - エンコードファイルフィルタリングを出来るようにした(ファイル名、ファイルサイズ、最終アクセス日時、最終更新日時)
- ディレクトリを変更する(cdする)時に、範囲外のディレクトリを選択すると必ず落ちる問題を解決。
- ディレクトリ選択時に、"/"でルートディレクトリに移動できない問題を修正。
解決していない問題
- mp3ファイルの再エンコードが終わってからでないとwavファイルのエンコードが開始できない。
- ディレクトリごとにしかエンコードできない(ファイルを個別にエンコードすることはできない)
- CUIである。
- aiffなどの形式に対応していない。
- サブディレクトリの数が多いと、マシンスペックによってはディレクトリ一覧表示処理が遅くなる(ディレクトリ数を確認するため)
- Windows用実行ファイルの起動に、5~10秒ほどかかってしまう。
- バグが取りきれていない可能性が…(´;ω;`)ウッ…
必ず必要なもの
プログラム本体のダウンロードはこちらから。
旧バージョンの管理が大変なので、全てMulti thread Media Encoder Frontendに纏めました。
http://mtmef.g.hachune.net/
スレッド数の制限が無くなった、ということで、同時に64スレッド実行してみた。
見事にタスクマネージャーがlameだらけに。
エンコテストなので、同じ曲を複数回リネームしてエンコードしているが、気にしないで欲しいんだ…('A`)
0 件のコメント:
コメントを投稿