Hi Richard, all, I tried what you suggested, to send a NULL frame to flush the decoder, but I couldn't reset the codec anymore to accept the incoming frames again, I tried using with avcodec_flush_buffers(). So I ended up resending my first frame (most important registration frame of my algorithm) in a while loop until I don't receive EAGAIN as return code. Apart from that everything is the same and I send the next frames as mentioned in my previous mail. But there are still some issues when I play the movie in VLC or so. The movie is not 5 seconds, what I expected after sending ( 120 frames at 24 fps ). Can you or anyone else answer the following questions, please?
1. Why is it that if I use intra frame encoding the decoder buffers the images first? it only needs one frame for encoding that frame,right? 2. Is my solution of sending the first frame multiple times a good solution from your expert point of view 3. Why is the movie playing so fast and not for 5 seconds? If I use ffprobe.exe to analyze this movie I see that the frame rate is 297.37 and not 24. Thank you in advance ________________________________ Van: Libav-user <[email protected]> namens Richard Hussong <[email protected]> Verzonden: donderdag 29 april 2021 06:14 Aan: This list is about using libavcodec, libavformat, libavutil, libavdevice and libavfilter. <[email protected]> Onderwerp: Re: [Libav-user] H264 intra frame coding On Tue, Apr 27, 2021 at 4:19 PM laddoe <[email protected]<mailto:[email protected]>> wrote: Hi there, thanks for responding but I do flush the codec in the "close()" function or is this not the correct place? To flush the codec, after you call avcodec_send_frame with a NULL frame you need to loop on avcodec_receive_packet until you get an AVERROR_EOF return. That will return all the queued packets in the codec. ________________________________ Van: Libav-user <[email protected]<mailto:[email protected]>> namens Richard Hussong <[email protected]<mailto:[email protected]>> Verzonden: dinsdag 27 april 2021 18:47 Aan: This list is about using libavcodec, libavformat, libavutil, libavdevice and libavfilter. <[email protected]<mailto:[email protected]>> Onderwerp: Re: [Libav-user] H264 intra frame coding On Sun, Apr 25, 2021 at 8:15 PM laddoe <[email protected]<mailto:[email protected]>> wrote: Hello, I'm trying to use h264 with intra frame coding, but I can't seem to understand why my code isn't fully working. I can see that the first 13 frames aren't written to the file while all the other frames are. I have 120 images that needs to be encoded of which the first one is very important because it's a registration image. I understand that the first few frames send to the encoder will be buffered and as soon as a frame is available it can be written, as I have done in my code. But how can I make sure that the buffered frames are written as well? I don't see why the first few frames aren't written, but it looks as though you aren't flushing the codec by sending a null frame at the end. This would cause the last few buffered frames not to be written. Not the same problem, but a problem nonetheless. _______________________________________________ Libav-user mailing list [email protected]<mailto:[email protected]> https://ffmpeg.org/mailman/listinfo/libav-user To unsubscribe, visit link above, or email [email protected]<mailto:[email protected]> with subject "unsubscribe". _______________________________________________ Libav-user mailing list [email protected]<mailto:[email protected]> https://ffmpeg.org/mailman/listinfo/libav-user To unsubscribe, visit link above, or email [email protected]<mailto:[email protected]> with subject "unsubscribe".
_______________________________________________ Libav-user mailing list [email protected] https://ffmpeg.org/mailman/listinfo/libav-user To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".
