I’ve got a library i’ve just copied over from a windows system, all the files play perfectly under iTunes directly. (most files are aac files).
These files weren’t made with iTunes, were they? They were made with nero or faad or something like that?
Turns out there are two ways to build aac files. One way puts the data in the front of the file, and the metadata at the end. The other way puts the metadata at the front, and the data at the end.
Either way is fine when playing locally, as iTunes can skip to the end of the song, read the metadata about the bitrate, etc, then skip back to the front of the song and start playing.
But if the data is first and the metadata last on a streaming song, iTunes can’t skip to the end to get the metadata it needs to decode the data. I just has to punt.
Formatting aac files so they can be decoded while streaming is called “fast-start streaming”, and you can convert a file to fast-start using mp4creator from the MPEG4IP project.
Command line necessary to do that is discussed here