Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
|
![]() |
#1 | Link |
Registered User
Join Date: Nov 2020
Posts: 2
|
Some AVC files unplayable in Quicktime
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: Code:
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 https://pastebin.com/wW2kYZPC avcC header (extradata) of MP4 file: Code:
61766343 0142C01F FFE20020 6742C01F 95A03C04 5B011000 003E9000 0EA60E00 000493E0 000493E1 BBCB8280 00176742 C01F5680 F0116C04 40000003 00400000 0E03C60C A8020004 68CE3C80 00046848 E3C8 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 Code:
6.2: sps->direct_8x8_inference_flag: 1 6.4: pps->transform_8x8_mode_flag: 1 4.2: pps->weighted_bipred_idc: 2 |
![]() |
![]() |
![]() |
#4 | Link |
Moderator
![]() Join Date: Jan 2006
Location: Portland, OR
Posts: 4,571
|
Did you encode the H.264 elementary stream, or is it from some other source? It's much easier to debug if you know and can control the parameters. But if all you have is a file encoded by someone else, it might have some fundamental bitstream error and you might just have to reencode it to get it to work. You've already done the basic troubleshooting I recommend by remuxing and trying without audio.
|
![]() |
![]() |
![]() |
#5 | Link |
Registered User
Join Date: Feb 2022
Posts: 9
|
I've had some issues with h264 or h265 videos not playing on apple devices when they clearly should. I extracted the bitstreams using ffmpeg, remuxed using bento4's mp4 muxer, and then finally remuxed using ffmpeg to add the audio track back in. It's a convoluted process, but it works. I believe it has something to do with metadata/timestamps being stripped when extracting the raw h264 then regenerating the metadata and timestamps using an updated muxer such as bento4. modern ffmpeg versions don't seem to support generating timestamps when remuxing streams no matter what command, so use bento4. I noticed in mediainfo your frame rate is listed as variable and has a wide range, so if its frame rate truly is what's listed in mediainfo and not corrupted timestamps, you will have sync issues. If your source has a constant frame rate, this method should not cause sync issues.
|
![]() |
![]() |
![]() |
#6 | Link | |
Broadcast Encoder
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,664
|
Quote:
1) Use constant frame rate and not VFR 2) Use 8bit 3) Not exceed --ref 4 4) Not exceed --level 4.1 5) Use Closed GOP 6) Use --keyint = framerate (23,976p --keyint 24, 25p --keyint 25, 29,970 --keyint 30 etc) 7) Mux using MP4Box as a muxer |
|
![]() |
![]() |
![]() |
Thread Tools | Search this Thread |
Display Modes | |
|
|