walkman(NW-A35)にradikoや「らじるらじる」のストリーミングデータを転送しようとしたときにハマった話

前提1:再エンコード(re-encode)したくない
前提2:radikoや「らじるらじる」はHE-AAC形式
当初の手順:
  • 1.radikoや「らじるらじる」からFLVで保存(ここでは解説しない)
  • 2.FFMPEGでraw AACに以下のように変換
ffmpeg -vn -i input.flv -acodec copy input.aac
  • 3.MP4BOXでm4aに以下のように変換
MP4Box -add input.aac input.m4a -new
なぜかこれではうまくいかない。音声の速度とピッチが1/2になっているように感じられる。


これを次に変更
  • 3.MP4BOXでm4aに変換するが、以下のように -sbr オプションをつける必要があった
MP4Box -sbr -add input.aac input.m4a -new

これはMp4Bpxのドキュメントによると

Note : MP4Box cannot detect whether AAC input is regular or SBR AAC, so you must use one fo these options if you want to import AAC SBR files.

とある。
要は、MP4BOXはAAC-LCかHE-AACかを判断できない。
よって、HE-AACのときには手動で-sbr オプションが必要。

ちなみに、HE-AACかどうかはMediaInfoなどで確認できる

f:id:pylab:20170620233249p:plain