Вот файл, который имеет описание M4A (лучшее, что я мог найти до сих пор) на странице 67: http://iweb.dl.sourceforge.net/project/audiotools/audio%20formats%20reference/2.14/audioformats_2.14_letter.pdf
A typical M4A begins with an 'ftyp' atom indicating its file type...
10.2.1 the ftyp atom
[0 31] ftyp Length [32 63] 'ftyp' (0x66747970)
[64 95] Major Brand [96 127] Major Brand Version
[128 159] Compatible Brand₁ ...
The 'Major Brand' and 'Compatible Brand' elds are ASCII strings.
'Major Brand Version' is an integer.
В сначала я понял, что «ftyp» будет определять формат, но судя по этому списку, который больше похож на сам тип файла (уже известный как m4a): http://www.ftyps.com/index.html
http://www.ftyps.com/what.html Описывает несколько больше форматов.
Если Ftyp не дифференцируются, то я думаю, что в поле «Major Brand» может относиться к Fourcc на этой странице: http://wiki.multimedia.cx/index.php?title=QuickTime_container Один для Apple Lossless быть «ALAC» и AAC, вероятно, «mp4a»
страница с открытым исходным кодом в формате Lossless от Apple указывает на то, что Ftype является «ALAC» (немного противоречива выше) http://alac.macosforge.org/trac/browser/trunk/ALACMagicCookieDescription.txt
пока что я могу сказать, что 4 байта следующие FtyP всегда (в небольшом объеме выборки) 'M4A'.
Где-то в первых ~ 200 (шестнадцатеричных) байтах или около того имеется ascii «mp4a» для сжатия AAC или «alac» для Apple Lossless. «Алак» всегда кажется парами ~ 30 байт («mp4a» только один раз).
Извините, что это не более конкретно, если я нахожу точное местоположение или префикс, я снова обновлю. (Моя догадка заключается в том, что более ранняя часть заголовка имеет размер, указанный где-то.)
Какой язык вы используете? – aglassman
Вы делаете это на каком-то конкретном языке или ищете интерфейс Linux на базе CLI? – Lee
Вы пробовали другую сборку FFMPEG? Я удивлен, что он не распознает правильный кодек. – Brad