MP3ファイルの分割(ffmpeg, Ruby)
ffmpeg と Ruby を使って、MP3ファイルを分割します。
こんな感じ。
cut_mp3.rb
file = DATA.gets.chomp ts = DATA.gets.split.map {|t| t.split(":").map(&:to_i)} Dir.chdir(File.dirname(file)) bname = File.basename(file, ".mp3") ts.map {_1 * 3600 + _2 * 60 + _3}.each_cons(2).with_index(1) do |(s, e), i| `ffmpeg -i "#{file}" -ss #{s} -t #{e - s} "#{bname + ("_%02d" % i)}.mp3"` end __END__ /home/***/Music/TAPEMP3/Bach.mp3 00:00:00 00:18:20 00:36:57 00:56:20 01:14:23 01:38:45 01:58:20
これだと、パス /home/***/Music/TAPEMP3/Bach.mp3
を6ファイルに分割します。最初のファイルは 00:00:00~00:18:20 まで、2番目のファイルは 00:18:20~00:36:57 までで、最後のファイルは 01:38:45~01:58:20 までとなります。