See this Post. It has the Answer you need to understand. Your MPEG elementary stream is in AVCC. This means to make it like usual H.264 (Annex B) you must replace each of the 4-bytes that represent a NAL Unit's size (in MP4) with a start code like 00 00 00 01
. Then you can use MPEG-es same as H.264 in your MP4Parser tool. Maybe my Answer here can help you recognise the NALUs.
Get a hex editor and check the difference between the raw H.264 and then check same H264 data when now contained inside an MP4 file (find "mdat"
in MP4 then onwards it will your H.264 bytes). See how the NALU's have changed from starting with 00 00 00 01
to having (hex) numbers D8 9C 00 00
for bytes size?
PS: If you know FFmpeg, I recommend you convert 1 picture into an H.264 video frame then also codec copy
the H264 into an MP4 container. Now you can find H.264 easily in MP4 file (like it was copy/pasted into there). Once you can convert a small 1-frame MPEG-es back into H264 then try longer files.