Watermarking mp3 files is possible, and it's free. See:
http://www.cl.cam.ac.uk/~fapp2/steganography/mp3stego/However I can see various problems about this approach:
- the mp3 encoder within mp3stego is very basic, thus you'll not get great sound quality,
- the hidden data will be destroyed if you transcode the mp3 file.
- the fact that mp3stego was used for encoding, should be fairly obvious when analyzing
The advantages of having a steganography-aware encoder:
- the original WAV data is untouched
- the encoder can take psychooacoustics into account to seamlessly store the hidden data.
I think the hidden data is stored as very small "details" in the MDCT coefficients of several (all?) frames of the mp3 file. If it's well done it could survive a mp3trim, but not a transcoding.
So in short, if you're in desperate need for steganography you can use this.. but if you're an audiophile, I suggest you use LAME and one of the following tricks:
- Make every mp3 encoding "unique", which means, encode each mp3 from a source file which has some bits swapped (64 changed bits in total should be enough). Keep track of the checksums of a few mp3 frames (or maybe the checksums of the bare mp3 data without tags and headers). Then distribute the files.
If people transcode (ie: re-encode) your files, you're screwed anyway. But otherwise, except for the obvious hate that file-sharing people will have for you, you can try it

Since many people re-tag their mp3's (and windows media player even does this automatically sometimes), this will require probably require some development for the integrity checking.