IMHO, MP4 (ISO/IEC 14496-12) is quite complicated. This question is meant for those familiar with ins and outs of MP4, so I try to be brief. Otherwise, this question could be a long essay.
I am trying to create fMP4 with C# (the language is not relevant here). The created fMP4 file does not play. Using the tool ffprobe to check the file generates the following:
ffprobe "foo.mp4"
[h264 @ 0000021625d10e40] no frame!
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'foo.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: avc1mp42isomiso6
creation_time : 2022-09-11T00:24:35.000000Z
Duration: 00:00:10.06, start: 0.000000, bitrate: 2078 kb/s
Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x800 [SAR 1:1 DAR 8:5], 2077 kb/s, 12.22 fps, 30 tbr, 1000k tbn, 2000k tbc (default)
Metadata:
creation_time : 2022-09-11T00:24:35.000000Z
handler_name : Media Handler
vendor_id : [0][0][0][0]
encoder : AVC Coding
Please note the error:
[h264 @ 0000021625d10e40] no frame!
When I use:
ffprobe -show_frames "foo.mp4"
It shows hundreds of frames of this small MP4 file that seem flawless. I cannot paste them here there are thousands of lines. However, ffprobe shows two errors at the start:
[h264 @ 000001b015110ec0] no frame!
[h264 @ 000001b01545e7c0] no frame!
Please note these two "no frame!" errors generated by ffprobe -show_frames are different from the first one by ffprobe without the -show_frames option.
I wonder if anyone could offer a tip about what these "no frame!" errors mean and where I should chase the culprit.
The following is what Mp4 Explorer shows:
Update 2022-09-17
Here is an fMP4 file: example.mp4. Every video player seems to be able to play it except for VLC Player. VLC Player is an important player. I would love to make it work for it. Could anyone offer a clue about why VLC Player does not like it?

