有馬総一郎のブログ

(彼氏の事情)

SoundEngine FreeスクリプトでWAVを一括分割する

以前、さあ、タイナカサチよ、これであなたもハイビジョンの世界にいらっしゃいで書いたとおり、今までWave分割を WaveZというソフトを使っていた。

しかし、このソフトは分割単位が分:秒:ミリ秒(mi:ss.ff)だったので、時間を分に計算したりする必要があり、また2GB超えると動かないので、2時間ぐらいを目処に分割する必要があった。

前のブログでSoundEngineが駄目と書いたが、今回改めて使ってみると2GB以上のファイルであっても問題ない。しかもスクリプトを使って一括分割ができる。

BDInfoで出力した再生時間が以下である場合

Number          Time In         Length          Avg Video Rate  Max 1-Sec Rate  Max 1-Sec Time  Max 5-Sec Rate  Max 5-Sec Time  Max 10Sec Rate  Max 10Sec Time  Avg Frame Size  Max Frame Size  Max Frame Time  
------          -------         ------          --------------  --------------  --------------  --------------  --------------  --------------  --------------  --------------  --------------  --------------  
1               0:00:00.000     0:02:28.081     7,831 kbps      31,943 kbps     00:00:55.488    30,322 kbps     00:00:38.605    29,075 kbps     00:00:36.903    85,570 bytes    640,646 bytes   00:00:00.000    
2               0:02:28.081     0:04:08.114     0 kbps          0 kbps          00:00:00.000    0 kbps          00:00:00.000    0 kbps          00:00:00.000    0 bytes         0 bytes         00:00:00.000    
3               0:06:36.195     0:03:34.080     0 kbps          0 kbps          00:00:00.000    0 kbps          00:00:00.000    0 kbps          00:00:00.000    0 bytes         0 bytes         00:00:00.000    
4               0:10:10.276     0:03:10.523     0 kbps          0 kbps          00:00:00.000    0 kbps          00:00:00.000    0 kbps          00:00:00.000    0 bytes         0 bytes         00:00:00.000
・・・以下、省略・・・

Time Inの列を矩形選択して、Vim(エディター)に貼り付ける。

0:00:00.000
0:02:28.081
0:06:36.195
0:10:10.276
・・・以下、省略・・・

%s/^/\[Mark\]\rPos=0/gを入力し、正規表現を使っての置換を行う。

[Mark]
Pos=00:02:28.081
[Mark]
Pos=00:06:36.195
[Mark]
Pos=00:10:10.276
・・・以下、省略・・・

SoundEngine Freeで分割したいWaveファイルを開いて、スクリプトタブに上記の内容を貼り付ける。そして、 実行をクリックする。


スクリプトタブ

そうすると、分割したい時間にマークされるので、今度はそのマークを右クリックしてコンテキストメニューを開いて、 マークで分割保存をクリックする。


マークが自動設定されている


コンテキストメニューを開いて「マークで分割保存」

保存するファイル名、フォルダを選択するダイアログが表示されるので、保存するフォルダを開き、分割ファイルは連番で名前(NewFile_01.wav, NewFile_02.wav)が振られる。


保存ダイアログ

いやー、知らんかったー。7年前かー、前にWave分割について調べたのは、今思えば自分のやり方が間違っていただけのような気もする。 WaveZは時間を分に変換するのが地味に面倒だったし、ミリ秒は2桁だったし、2GB以上のファイルは、途中で分割する必要があったし…

今回、ディスクでは連続しているが、実際の音声ファイルは分割してあった(0:00:00.000から1:55:51.945までと、そこからと別ファイル)。その場合は、エクセルを開いて、ミリ秒(3桁)まで計算可能となるように表示形式を[hh]:mm:ss.000とユーザー定義したセルに Lengthの列をコピペする(ここではB列)。


エクセルでミリ秒3桁まで表示

数式で上の列の Lengthを足した結果を表示するようにセルA2=A1+B1と記述して、1:55:51.945からのファイルの Time Inを求める。その後は、同様にスクリプトを作成して分割保存する。まあ、二つのファイルを結合して、それから分割した方が楽かもしれないけど。


数式

ともあれ、そんなこんなでBlu-rayから音源を抜き出して、トラック毎に分割することも楽になったわけだ。

[cate: foobar2000 ] [tags: foobar2000 ]

« UbuntuでDVDを再生する boot領域が一杯でupgradeに失敗した »

Comments