aacが厄介(2)
昨日の日記ではヘッダを
FF F8 XX 80
と仮定して処理を行っていましたが、どうやら
FF F8 XX 40
となっている放送もあるようです。
ですので、昨日のスクリプトを修正しました。
「FF F8」が登場したら、それ以降を抜き出します。
使用は自己責任で。無保証。
#!ruby # # fixaac.rb # # usage: # ruby fixaac.rb INFILE OUTFILE # ifn = ARGV[0] ofn = ARGV[1] open(ifn) do |fi| found = false until fi.eof? byte1 = fi.read(1) if byte1[0] == 0xff byte2 = fi.read(1) if byte2[0] == 0xf8 found = true break end end end if found puts "Header is found. Processing..." fi.seek fi.pos - 2 open(ofn, "w") do |fo| until fi.eof? fo.write fi.read(1024 * 1024) end end else puts "Invalid AAC file." end end