H.264 AVC MP4 CBR - Audio and Video header streams declared in the wrong order
Problem:
When we export our spec (25Mbps CBR High @ L4.1 H.264 MP4) the MP4 header declares the audio stream before the video:
Stream #0:0[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 317 kb/s (default)
Metadata:
creation_time : 2023-01-20T14:36:48.000000Z
handler_name : #Mainconcept MP4 Sound Media Handler
vendor_id : [0][0][0][0]
Stream #0:1[0x1](eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1920x1080, 24981 kb/s, 25 fps, 25 tbr, 25k tbn (default)
Metadata:
creation_time : 2023-01-20T14:36:48.000000Z
handler_name : ?Mainconcept Video Media Handler
vendor_id : [0][0][0][0]
encoder : AVC Coding
Whilst this it technically possible, it is highly unusual and is causing problems with our broadcast system, resulting in no audio being played.
Using the exact same settings, but with the Bitrate Encoding as VBR (1 or 2-Pass), the output has the correct orientation:
Stream #0:0[0x1](eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1920x1080, 24900 kb/s, 25 fps, 25 tbr, 25k tbn (default)
Metadata:
creation_time : 2023-01-20T17:35:34.000000Z
handler_name : ?Mainconcept Video Media Handler
vendor_id : [0][0][0][0]
encoder : AVC Coding
Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 317 kb/s (default)
Metadata:
creation_time : 2023-01-20T17:35:34.000000Z
handler_name : #Mainconcept MP4 Sound Media Handler
vendor_id : [0][0][0][0]
Expected Outcome / Resolution:
Set the stream declaration when setting as CBR to be the same as VBR. The video should be declared first, then the audio.
We unfortunately cannot pivot to VBR due to customer constraints on the outputs, so we are currently having to re-mux the outputs to rewrite the header so the orientation is correct.
Specs & Vital Stats:
Premiere Version: (24.3.0 (Build 59)
OS: MacOS 14.5 & Windows 11
Sys Info: N/A
Video Format: See Above - AVC, 4:2:0
Steps to reproduce: Export video as per the above specs, and the stream header will define the audio before the video.
