It may come to surprise for you: the term "MP4" does not mean something certain. This is a general name of the technology, but there are several different standards for this compression, and several different media compression algorithms and supporting
codec. Moreover, the same streams can be packed in different file/stream formats, commonly called "media containers".
No wonder, browsers support only some subsets of the very big set of all possible variants, different subsets for different browsers. All you can do about it is to re-master your media files to something most common. The situation with acceptable used by HTML5
<video>
element is extremely complicated and is a subject of permanent change. For some background, please see:
http://en.wikipedia.org/wiki/Digital_container_format[
^],
http://en.wikipedia.org/wiki/Codec[
^],
http://en.wikipedia.org/wiki/Codec[
^],
http://en.wikipedia.org/wiki/MPEG-4[
^],
http://en.wikipedia.org/wiki/HTML5_Audio[
^],
http://en.wikipedia.org/wiki/HTML5_video[
^].
—SA