I am experimenting with the encoder 
example<https://github.com/FFmpeg/FFmpeg/blob/master/doc/examples/encode_video.c>.
 According to the FFmpeg encoding and decoding API 
overview<https://ffmpeg.org/doxygen/3.3/group__lavc__encdec.html>, the codec 
might accept multiple input frames without returning a packet, until its 
internal buffers are filled.

Is there a way to receive a packet as soon as I send a frame?

Specifically, I am using libx265. The first frame is always an I frame (key 
frame) which can be encoded without later frames. However, I have to send quite 
a few following frames to obtain the first packet, and this leads to severe 
latency.

I tried av_opt_set(codecContext->priv_data, "x265-params", "force-flush=1", 0); 
and avcodec_flush_buffers(), but both of them don't work. I also tried to look 
into 
AVCodecContext<https://github.com/FFmpeg/FFmpeg/blob/ed6549887a1969636b30295b3da87313b7c46864/libavcodec/avcodec.h>
 structure but failed to find any related option.



Thankful for any help you can offer.

Regards,
Zehui Lin
_______________________________________________
ffmpeg-user mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".

Reply via email to