概要
- SH703i で再生できる AAC は、特にエンコードのパラメータにこだわなくても作れそう
再生できるビットレート、サンプルレートの確認
16?320kbps の範囲のビットレートと、8,000?48,000Hz の範囲のサンプルレートで AAC を作って、SH703i で再生できるか実験してみた。
実験の結果、全180通りの全てのファイルが再生できた。ただし、高ビットレートになると、まれに音飛びが起きた。
極端な値にしなければ、特に再生できないということになならないようだ。
ただし、ビットレートは56?256kbps、サンプルレートは8,000?22,050kHzの範囲から外れると、ファイルサイズがほとんど変化していないので、指定しても意味がないようだ。ソースファイルによるものか、FAAC の仕様よるものなのかわからないけど。
実験に使った AAC は次のスクリプトで作った。
var CWD = WScript.ScriptFullName.substr(0, WScript.ScriptFullName.lastIndexOf("\\")+1); var INFILE = CWD + "072_C4KM56_S.wav"; var bitrates = [ null, 16, 20, 24, 32, 40, 48, 56, 64, 80, 96, 128, 160, 192, 224, 256, 288, 320 ]; var freqs = [ null, 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 ]; var n = 1; // Logfile var fso = WScript.CreateObject("Scripting.FileSystemObject"); var ts = fso.CreateTextFile(WScript.ScriptFullName + ".log", true); var bitrate, freq, outfile, options, time, filesize, status; for(var i=0;i<bitrates.length;i++) { bitrate = bitrates[i]; for(var j=0;j<freqs.length;j++) { freq = freqs[j]; outfile = "MMF" + ("000" + n).slice(-4) + ".mp4"; options = { bitrate: bitrate, freq: freq }; var tmp = new Date().getTime(); status = faac(INFILE, outfile, options); time = new Date().getTime() - tmp; // check if AAC file created try { filesize = fso.GetFile(outfile).Size; } catch(ex) { filesize = undefined; } // append record to Logfile ts.WriteLine([outfile, filesize, time, status, options.bitrate, options.freq].join("\t")); n++; } } ts.Close(); WScript.Echo("all processed"); function faac(infile, outfile, options) { var oExec; var faac = "faac"; faac += options.quality ? " -q " + options.quality : ""; faac += options.bitrate ? " -b " + options.bitrate : ""; faac += options.freq ? " -c " + options.freq : ""; faac += " -w"; // Wrap AAC data in MP4 faac += outfile ? " -o " + outfile : ""; faac += " " + INFILE; oExec = WScript.CreateObject("WScript.Shell").Exec(faac); while(oExec.Status == 0) { WScript.Sleep(100); } return oExec.Status; }
参考文献
- WshShell オブジェクト <http://msdn.microsoft.com/ja-jp/library/cc364436(v=MSDN.10).aspx>