I won’t try to explain the difference between a codec and a container. You just need to know that aac is a codec and mp4/m4a is a container. And also there is no technical difference between MP4 and M4A. M4A is created by Apple just to differentiate between video and audio files inside MP4 container. (Wiki articles: codec, container)
Why it is a good idea wrap raw aac files into M4A container? Because some music players only supports certain file types and aac is not a popular one, one other problem is that aac does not have a standardized documentation for tagging songs. So if you tag your files in one application another application may not be able to read these.
Lately I have been using a wonderful stream saver application called StreamWriter with which you can listen online radios and at the same time save the songs, you can even specify some keywords and StreamWriter will save every song that matches your keywords depending on their tags whether or not you are listening them at the time. Most of my favorite radios are streaming with aac format since it is more efficient than mp3. The problem with aac is like I explained above its tagging features (or lack of them). I cannot use auto tagging programs like MusicBrainz Picard with this format. So I decided to convert all my aac files to M4A without losing any quality. And since aac is a raw format and M4A is only a container it is possible.
Download MP4Box for wrapping the files and Batchenc for automating the process for all the files.
Extract all the files in one folder.
Open Batchenc and drag all the files onto it.
MP4Box.exe -add <infile> <outfile.m4a>
in Command line area, you can change m4a to mp4 if you like (you can also add this line in Batchenc_presets.cfg for future uses – open cfg file in notepad).
If you want you can specify a different output directory.
Click start and few seconds later you are done.