On 12/21/2015 3:19 PM, Claudiu Rad wrote:


On 12/20/2015 2:55 AM, Laine Lee wrote:
On 12/18/15, 12:41 PM, "ffmpeg-user on behalf of Claudiu Rad" <[email protected] on behalf of [email protected]> wrote:

anyone? i really need to find a solution without re-encoding the whole

I worked around this issue by using Remux 1.3.1 in OS X, available from MacUpdate. When I saw a similar issue in Mencoder output, I discovered that "-lavfopts format=mp4” appeared to solve it, but even with an ffmpeg equivalent, it would mean re-encoding, of course.

so just remuxing without reencoding? this would confirm that the issue is fixable by only fiddling around with the timestamps as i suspected. ffmpeg by default also automatically fixes this if i just reencode, probably because it knows to properly decode the input and then regenerates timestamps. it's a pity though that timestamps / frame order in ffmpeg cannot be easily controlled without reencoding. after all, this is not actual media content, just metadata (although mandatory for playback).
maybe a bitstream filter would to the trick?

i also filled a bug at apple in the meantime and got back an interesting answer:
/
/
/"Please know that our engineering team has determined that this issue behaves as intended based on the information provided./
/
/
/The movie clearly has b-frames and requires frame reordering, but it lacks a ‘ctts’ (also known as the Composition Offsets table) in the header. So, we play back the frames in the order which they were decoded./
/
/
/This is clearly a malformed mp4, since it lacks the required Composition Offset table. Other players may play back the movie without regard for this movie header information, but we strictly adhere to the timing information they provide - not doing so will cause us to disregard what may be intentional updates to this header data./
/
/
/If you can, you have authored this content with your own tools you should update your tools to correctly add this composition offset information. Otherwise, if you know what tools were used to author the media, you should report this issue so that they can cease creating invalid content."/

so this gets interesting as due to the lack of CTTS, they strictly adhere to decoding order, unlike ffmpeg and others, thus, the playback issue. why isn't ffmpeg regenerating this table when transcoding if it doesn't exist?

in this case i see two possible ways of going further:
- somehow regenerate CTTS (anyone has any ideas? maybe converting to some other container formats?) - somehow force frame reordering, although not very sure this would fix the issue in this particular case. still, i do believe it's possible because my current setup takes input from the same encoder and without reencoding the output has nice monotonically increasing timestamps. i still have to figure out who does this in the processing chain

--
Claudiu

_______________________________________________
ffmpeg-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

Reply via email to