exekutive
17th January 2022, 11:49
It has happened to me a few times that an h.264 MP4 file will not play in Quicktime player, but does in most other software. When I press play, there's is a long pause, and after a few seconds the elapsed time starts to count up. The video freezes on one of the first frames, and the audio plays in the background. I'm trying to find out what would cause it not to play.
I have tried remuxing a file, but that did not help. Removing the audio didn't help either. One common theme seems to be they were encoded by Lavf58.12.100 (other versions work fine)
Here is some technical info from one example file that doesn't play:
General
Complete name : /Users/joe/stage/corrupt.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom (isom/iso2/avc1/mp41)
File size : 527 MiB
Duration : 40 min 39 s
Overall bit rate : 1 812 kb/s
Encoded date : UTC 2020-08-08 11:08:03
Tagged date : UTC 2020-08-08 11:08:03
major_brand : isom
minor_version : 0
compatible_brands : isommp42
creation_time : 2020-08-08T11:08:03.000000Z
encoder : Lavf58.12.100
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L3.1
Format settings : CABAC / 4 Ref Frames
Format settings, CABAC : Yes
Format settings, Reference frames : 4 frames
Format settings, GOP : M=1, N=12
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 40 min 39 s
Bit rate : 1 614 kb/s
Width : 960 pixels
Height : 544 pixels
Display aspect ratio : 16:9
Original display aspect ratio : 16:9
Frame rate mode : Variable
Frame rate : 23.976 (23976/1000) FPS
Minimum frame rate : 11.987 FPS
Maximum frame rate : 59.733 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.129
Stream size : 469 MiB (89%)
Language : English
Encoded date : UTC 2020-08-08 11:08:03
Tagged date : UTC 2020-08-08 11:08:03
Codec configuration box : avcC
Audio
ID : 2
Format : AAC LC
Format/Info : Advanced Audio Codec Low Complexity
Codec ID : mp4a-40-2
Duration : 40 min 39 s
Bit rate mode : Constant
Bit rate : 192 kb/s
Channel(s) : 2 channels
Channel layout : L R
Sampling rate : 44.1 kHz
Frame rate : 43.066 FPS (1024 SPF)
Compression mode : Lossy
Stream size : 55.8 MiB (11%)
Language : English
Default : Yes
Alternate group : 1
Encoded date : UTC 2020-08-08 11:08:03
Tagged date : UTC 2020-08-08 11:08:03
Frame header output from 'h264_analyze' tool (first 100 KB)
https://pastebin.com/wW2kYZPC
avcC header (extradata) of MP4 file:
61766343 0142C01F FFE20020 6742C01F 95A03C04 5B011000 003E9000 0EA60E00 000493E0 000493E1 BBCB8280 00176742 C01F5680 F0116C04 40000003 00400000 0E03C60C A8020004 68CE3C80 00046848 E3C8
Output of 'ffprobe -show_streams -show_data' :
https://pastebin.com/9RDB90gC
It has been suggested that Quicktime Player might not support 8x8 macroblocks, or multiple b-frames.
But here is a video which I think was encoded with both those features, and it plays fine in QT
https://www.sendspace.com/file/59pn6x
6.2: sps->direct_8x8_inference_flag: 1
6.4: pps->transform_8x8_mode_flag: 1
4.2: pps->weighted_bipred_idc: 2
I am open to any suggestions. Thanks.
I have tried remuxing a file, but that did not help. Removing the audio didn't help either. One common theme seems to be they were encoded by Lavf58.12.100 (other versions work fine)
Here is some technical info from one example file that doesn't play:
General
Complete name : /Users/joe/stage/corrupt.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom (isom/iso2/avc1/mp41)
File size : 527 MiB
Duration : 40 min 39 s
Overall bit rate : 1 812 kb/s
Encoded date : UTC 2020-08-08 11:08:03
Tagged date : UTC 2020-08-08 11:08:03
major_brand : isom
minor_version : 0
compatible_brands : isommp42
creation_time : 2020-08-08T11:08:03.000000Z
encoder : Lavf58.12.100
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L3.1
Format settings : CABAC / 4 Ref Frames
Format settings, CABAC : Yes
Format settings, Reference frames : 4 frames
Format settings, GOP : M=1, N=12
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 40 min 39 s
Bit rate : 1 614 kb/s
Width : 960 pixels
Height : 544 pixels
Display aspect ratio : 16:9
Original display aspect ratio : 16:9
Frame rate mode : Variable
Frame rate : 23.976 (23976/1000) FPS
Minimum frame rate : 11.987 FPS
Maximum frame rate : 59.733 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.129
Stream size : 469 MiB (89%)
Language : English
Encoded date : UTC 2020-08-08 11:08:03
Tagged date : UTC 2020-08-08 11:08:03
Codec configuration box : avcC
Audio
ID : 2
Format : AAC LC
Format/Info : Advanced Audio Codec Low Complexity
Codec ID : mp4a-40-2
Duration : 40 min 39 s
Bit rate mode : Constant
Bit rate : 192 kb/s
Channel(s) : 2 channels
Channel layout : L R
Sampling rate : 44.1 kHz
Frame rate : 43.066 FPS (1024 SPF)
Compression mode : Lossy
Stream size : 55.8 MiB (11%)
Language : English
Default : Yes
Alternate group : 1
Encoded date : UTC 2020-08-08 11:08:03
Tagged date : UTC 2020-08-08 11:08:03
Frame header output from 'h264_analyze' tool (first 100 KB)
https://pastebin.com/wW2kYZPC
avcC header (extradata) of MP4 file:
61766343 0142C01F FFE20020 6742C01F 95A03C04 5B011000 003E9000 0EA60E00 000493E0 000493E1 BBCB8280 00176742 C01F5680 F0116C04 40000003 00400000 0E03C60C A8020004 68CE3C80 00046848 E3C8
Output of 'ffprobe -show_streams -show_data' :
https://pastebin.com/9RDB90gC
It has been suggested that Quicktime Player might not support 8x8 macroblocks, or multiple b-frames.
But here is a video which I think was encoded with both those features, and it plays fine in QT
https://www.sendspace.com/file/59pn6x
6.2: sps->direct_8x8_inference_flag: 1
6.4: pps->transform_8x8_mode_flag: 1
4.2: pps->weighted_bipred_idc: 2
I am open to any suggestions. Thanks.