[Libav-user] Keeping all frames in mp4 with h264 codec
Arthur Muller
muller at vki.com
Wed Feb 10 19:35:05 CET 2016
Hi Bernhard,
>after real frames are handled did you call avcodec_encode_video2 with NULL as frame as many times as got_packet returns true?
>
>Depending on codec you have to "flush" encoder several times, until all frames have gone to output.
Success!! Thanks!
But I do need one clarification: it just so happens that I have 36 frames, half return got_packet=0 and half return got_packet=1. So I called avcodec_encode_video2 18 times with a NULL frame. So here are my questions:
1) You mention I call this function with a NULL frame as many times as got_packet returns true (=1). Shouldn’t it be the other way around? That is, I should only flush as many times as got_packet returns false (=0)?
2) Is there a way to know exactly how many times I should call this function with a NULL frame? I can certainly count the number of got_packets={0 or 1}; but I’m wondering whether the ffmpeg api wouldn’t have that information itself in a way that would be more self-contained.
3) Is it safe to call this function with a NULL packet several times – even more than necessary to flush everything?
4) Finally, is it safe to call this function several times for other codecs – even if nothing needs to be flushed? In other words, would ffmpeg treat this call as a no-op if it’s not necessary?
Thanks again!
-Arthur
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ffmpeg.org/pipermail/libav-user/attachments/20160210/4d453f60/attachment.html>
More information about the Libav-user
mailing list