View Single Post
Old 30th May 2016, 21:19   #2  |  Link
sneaker_ger
Registered User
 
Join Date: Dec 2002
Posts: 5,565
Quote:
Originally Posted by przemoc View Post
It confuses me, because it suggests that video playback starts at 512 or 512/12800 = 0.04 s, i.e. 40 ms into video stream, yet encoded video stream is not longer by that value and ffprobe clearly shows start_pts = 0.
I don't know what ffprobe's start_pts is exactly. But moov.trak.edts.elst[0].media_time = 512 does not necessarily mean that there's any actual delaying/skipping of the first video sample. I cannot see because your log is shortened but it may simply be to "counteract" a CTS of 512. 512 - 512 = 0. No delay, everything is fine. The edit list maps from media time line to actual presentation time line.


Quote:
Originally Posted by przemoc View Post
2. Isn't AAC encoder required to produce full access units (typically having 1024 samples)? 697024/1024 = 680.6875 is not an integer.
Good question. I'm note sure. It would make sense but is it an actual requirement? Maybe it would make more sense with a complete log.

Quote:
Originally Posted by przemoc View Post
3. I know that padding info (for start and end) can be stored within ITUNSMPB tag, but ffmpeg is not using that, adhering (I hope so) to ISO only, so where is this tail padding stored? Or is moov.trak.mdia.mdhd.duration allowed to be lower that real media duration (which would be divisible by 1024)?
It should be implied by edit list duration.

Quote:
Originally Posted by przemoc View Post
4. If ffmpeg is using ISO way of delaying AAC audio (instead of iTunes way), then shouldn't it also add sample group (sgpd) with roll distance set to -1, as edit list (elst) is not enough for signaling encoder delay?
Correct.
sneaker_ger is offline   Reply With Quote