mp4 file will not play video, only audio on quicktime, fine on VLC I have an mp4 file that will not play video, only audio, on QuickTime (10.4 on Yosemite) - and by extension does not show the correct icon in Finder not will it play properly on iOS devices.

Others play fine. Video encoding is H264, audio is AAC, so it should work. I tried remuxing it with ffmpeg, no luck. 

Mac console shows "QuickTime Player: ava error: fail in SeqAndPicParamSetFromCFDictionaryRef"

Happy to remux (prefer not to re-encode, but I will if I have to) using ffmpeg, mp4box, whatever.

Below is file information:


 * Movie Info *
    Timescale 600 - Duration 02:15:51.210
    Fragmented File no - 2 track(s)
    File Brand M4A  - version 0
    Created: GMT Sun Nov 27 14:25:55 2011

File has root IOD
Scene PL 0xff - Graphics PL 0xff - OD PL 0xff
Visual PL: AVC/H264 Profile (0x15)
Audio PL: AAC Profile @ Level 2 (0x29)
No streams included in root OD

Track # 1 Info - TrackID 1 - TimeScale 48000 - Duration 02:15:51.210
Media Info: Language "Undetermined" - Type "soun:mp4a" - 382088 samples
MPEG-4 Config: Audio Stream - ObjectTypeIndication 0x40
MPEG-4 Audio AAC LC - 2 Channel(s) - SampleRate 48000
Self-synchronized

Track # 2 Info - TrackID 2 - TimeScale 24000 - Duration 02:15:51.143
Media Info: Language "Undetermined" - Type "vide:avc1" - 195432 samples
MPEG-4 Config: Visual Stream - ObjectTypeIndication 0x21
AVC/H264 Video - Visual Size 1216 x 544 - Profile High @ Level 4.1
NAL Unit length bits: 24
Pixel Aspect Ratio 1:1 - Indicated track size 1216 x 544
Synchronized on stream 1


I cannot imagine it is the order of tracks, audio before video. I have a suspicion it has something to do with the ftyp, but unsure?

EDIT:

After the suggestion by #ProfessorSparkles below, I changed the Profile Level using subler... but it still doesn't work, same problem. Sound is fine, no video. Here is the updated mp4 info:


* Movie Info *
    Timescale 600 - Duration 02:15:51.210
    Fragmented File no - 2 track(s)
    File Brand M4A  - version 0
    Created: GMT Sun Nov 27 14:25:55 2011

File has root IOD
Scene PL 0xff - Graphics PL 0xff - OD PL 0xff
Visual PL: AVC/H264 Profile (0x15)
Audio PL: AAC Profile @ Level 2 (0x29)
No streams included in root OD

Track # 1 Info - TrackID 1 - TimeScale 48000 - Duration 02:15:51.210
Media Info: Language "Undetermined" - Type "soun:mp4a" - 382088 samples
MPEG-4 Config: Audio Stream - ObjectTypeIndication 0x40
MPEG-4 Audio AAC LC - 2 Channel(s) - SampleRate 48000
Self-synchronized
Alternate Group ID 1

Track # 2 Info - TrackID 2 - TimeScale 24000 - Duration 02:15:51.143
Media Info: Language "Undetermined" - Type "vide:avc1" - 195432 samples
MPEG-4 Config: Visual Stream - ObjectTypeIndication 0x21
AVC/H264 Video - Visual Size 1216 x 544 - Profile Main @ Level 3.1
NAL Unit length bits: 24
Pixel Aspect Ratio 1:1 - Indicated track size 1216 x 544
Synchronized on stream 1
You will have to re-encode or use a tool to change your h264 level, f.e. this one http://coolsoft.altervista.org/en/h264leveleditor but its windows only, there might also be a Mac tool that does the same. Your video is encoded with High Profile Level 4.1. iOS only support Level 3.1 and probably the same with QuickTime on Yosemite.