Previously I've done a bit of work with internal coding of MPEG4 files
so I know my way around. MP4 have a data structure which is a tree made
up of "atoms".
The "alac" atom describes the details of the alac encoding and there is
a difference between working MP4 and the file created using ffmpeg from
a flac version of the same file.
"alac" atom for working file
Code:
--------------------
"01 - Last Of My Kind.m4a": type alac (moov.trak.mdia.minf.stbl.stsd.alac)
"01 - Last Of My Kind.m4a": reserved1 = <6 bytes> 00 00 00 00 00 00 |......|
"01 - Last Of My Kind.m4a": dataReferenceIndex = 1 (0x0001)
"01 - Last Of My Kind.m4a": soundVersion = 0 (0x0000)
"01 - Last Of My Kind.m4a": reserved2 = <6 bytes> 00 00 00 00 00 00 |......|
"01 - Last Of My Kind.m4a": channels = 2 (0x0002)
"01 - Last Of My Kind.m4a": sampleSize = 24 (0x0018)
"01 - Last Of My Kind.m4a": compressionId = 0 (0x0000)
"01 - Last Of My Kind.m4a": packetSize = 0 (0x0000)
"01 - Last Of My Kind.m4a": timeScale = 1996488704 (0x77000000)
"01 - Last Of My Kind.m4a": type alac
(moov.trak.mdia.minf.stbl.stsd.alac.alac)
"01 - Last Of My Kind.m4a": decoderConfig = <28 bytes>
--------------------
"alac atom for ffmpeg created file
Code:
--------------------
"01flactoalac.m4a": type alac (moov.trak.mdia.minf.stbl.stsd.alac)
"01flactoalac.m4a": reserved1 = <6 bytes> 00 00 00 00 00 00 |......|
"01flactoalac.m4a": dataReferenceIndex = 1 (0x0001)
"01flactoalac.m4a": soundVersion = 0 (0x0000)
"01flactoalac.m4a": reserved2 = <6 bytes> 00 00 00 00 00 00 |......|
"01flactoalac.m4a": channels = 2 (0x0002)
"01flactoalac.m4a": sampleSize = 16 (0x0010)
"01flactoalac.m4a": compressionId = 0 (0x0000)
"01flactoalac.m4a": packetSize = 0 (0x0000)
"01flactoalac.m4a": timeScale = 0 (0x00000000)
"01flactoalac.m4a": type alac (moov.trak.mdia.minf.stbl.stsd.alac.alac)
"01flactoalac.m4a": decoderConfig = <28 bytes>
--------------------
The file 01flactoalac.m4a was created by ffmpeg and would show as 16 bit
in LMS and white noise when played. After I did a binary edit and
changed the single byte changing sample size from 16 to 24 - the file
then showed up as 24 bits in LMS and plays OK.
In summary, there is a bug in ffmpeg when creating 24bit alac files and
should be reported to ffmpeg developers.
------------------------------------------------------------------------
bpa's Profile: http://forums.slimdevices.com/member.php?userid=1806
View this thread: http://forums.slimdevices.com/showthread.php?t=102059
_______________________________________________
Squeezecenter mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/squeezecenter