[Libav-user] avcodec_receive_packet output for every input frame

Henri Zikken zikken at xs4all.nl
Thu Apr 5 12:57:51 EEST 2018


You can’t change this. The encoder needs to start it’s encoding and it needs input for this. However, 58 frames seems like a lot.

 

You can try this:

 

av_opt_set(context->priv_data, "tune", "zerolatency", 0);

 

to see if this improves the situation.

 

Also take a look at this:

 

https://trac.ffmpeg.org/wiki/StreamingGuide#Latency

 

 

 

 

 

 

Van: Libav-user <libav-user-bounces at ffmpeg.org> Namens Vittalprasad
Verzonden: donderdag 5 april 2018 11:03
Aan: libav-user at ffmpeg.org
Onderwerp: [Libav-user] avcodec_receive_packet output for every input frame

 

At the beginning of encoding, the H264 Encoder is accepting multiple input frames without returning a encoded stream, in my case it is accepting  58 input frames.

what changes are required  at encoder side to get output frame for every input frame, i.e o/p frame for i/p frame iteration?

below is encoder code.

ret = avcodec_send_frame(c_enc, frame);

        if (ret < 0)

        {

                fprintf(stderr, "Error sending a frame for encoding\n");

                exit(1);

        }

 while (1) {

 ret = avcodec_receive_packet(c_enc, pkt);

        if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF)

                break;

       else

     ///dump encoded packet in to file

}



-- 

Thanks & Regards
Vittal Prasad B R





-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ffmpeg.org/pipermail/libav-user/attachments/20180405/b4390e11/attachment.html>


More information about the Libav-user mailing list