試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

MP3とOgg Vorbisの音声ファイルを無劣化で直接分割/切り取りする

MP3オーディオの分割

mp3spltというツールにより、MP3形式のオーディオデータを無劣化で分割することができる。
開始位置と終了位置は「[分].[秒]」形式(例:「0.42 4.25」で0分42秒から4分25秒まで)*1で指定し、終了位置を複数指定して一気に複数個に分割することもできる。
元のデータが無音部分を含む場合、-sオプションを付けることで無音部分を検出*2し、これを区切りとして自動的に分割することもできる。いずれも出力ファイル名は自動的に決められるが、-oオプションで書式を指定することもできる。

(1つの領域を切り取る)
$ mp3splt -n [入力ファイル].mp3 [開始/分].[開始/秒] [終了/分].[終了/秒]
(複数の領域に分割)
$ mp3splt -n [入力ファイル].mp3 [開始/分].[開始/秒] [終了1/分].[終了1/秒] [終了2/分].[終了2.秒] [終了3/分].[終了3.秒] ...
(無音部分で自動的に分割)
$ mp3splt -sn [無音部分で分割したい.mp3ファイル]

-nオプションを付けないと余計なタグ情報を付けるので、付けるのを推奨。
音声の最後を終了位置としたい場合、「99999.0」のように十分大きな値を終了位置に指定するとよい。

Ogg Vorbisオーディオの分割

vorbis-toolsに含まれるvcutというコマンドにより、Ogg Vorbis形式のオーディオデータを無劣化で分割することができる。
細かい挙動のオプション指定はなく、指定した場所で前後2つに分割するだけとなる。分割位置を秒数で指定するには「+」を付ける。サンプル値指定ではより細かい場所を指定できるが、値としては非常に大きなものとなる(分割位置やエンコード時の設定にもよるが、数百万以上のことが多い)。

(秒数による指定)
$ vcut [入力ファイル].ogg [出力ファイル1].ogg [出力ファイル2].ogg +[秒数]
(サンプル値による指定)
$ vcut [入力ファイル].ogg [出力ファイル1].ogg [出力ファイル2].ogg [サンプル値]

使用したバージョン:

  • mp3splt 2.1c
  • vorbis-tools 1.2.0

*1:「時」指定はなく、1時間以上でも60以上の「分」数で指定する

*2:無音検出に関する細かい設定は-pオプションで可能