有馬総一郎のブログ

(彼氏の事情)

2017年03月03日 21:22:12 JST - 3 minute read - Comments - Audio Player

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

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

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


追記: 2021-04-09
数年後、SoundEngineで分割できないWaveをいくつか確認した。より確実な Audacityを使うことをオススメする。
Audacityでラベル毎にファイル分割・変換する
追記ここまで


前のブログで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ファイルを開いて、スクリプトタブに上記の内容を貼り付ける。そして、 実行をクリックする。

SoundEngine

スクリプトタブ

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

SoundEngine

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

SoundEngine

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

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

SoundEngine

保存ダイアログ

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

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

Excel

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

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

Excel

数式

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

Tags: Audio Player

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

comments powered by Disqus