mp4 is simply a container, much like avi and ogv are.
As for why it won't play, it could be a number of things. In the manual for your reader it will likely say what it expects in formats. Could be a limited bitrate, or if it's a specific feature set of Mpeg-4. Quite often h.264 AVC (Advanced Video Codec) requires more processing power than it's willing to work on for decoding, while a previous encoding version might be acceptable like XVid or DivX. If it has very little memory (say 32 Megs or ram or something) a number of extra compression techniques require multiple frames to be decoded that it back references, while there's an optimization option during encoding to drop those so it doesn't require any extra latency to decode. (x264 codec offers this, i use it in VirtualDub at times).