[Libav-user] How to foce h264 encoder to duplicate the same frame into the stream?

Gustav González xtingray at gmail.com
Wed May 11 15:03:36 EEST 2022


On Wed, May 11, 2022 at 6:24 AM Aleksei Komarov <abkomarov at gmail.com> wrote:

> Hi,
> I'm encoding VFR frame sequence to Constant Frame Rate output stream (in
> real-time)
> E.g. to maintain 60 fps I have to DUPLICATE frames from 30 fps stream (or
> any VFR video streams).
> To do this I`m copying the same frame binary data and feed it to
> avcodec_receive_packet() once again. (It works but is not optimal)
> What is the proper way to tell the encoder that the new frame is the same
> as the last one besides timestamp data (PTS/DTS). In other words how
> to duplicate last frame in the stream without reencoding the frame again?
> I've seen  this type of video ( generated by OBS ) where MANY frames were
> really duplicated, where pkt_size=48 or lower!
>

I'm just shooting in the dark, but what if you don't focus on the AVFrame
data but on saving a copy of the AVPacket of the previous frame after it is
encoded? In that way, you could avoid calling the whole encoding process
again. Just guessing.

--
  Gustav Gonzalez
  xtingray at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://ffmpeg.org/pipermail/libav-user/attachments/20220511/63546a6c/attachment.htm>


More information about the Libav-user mailing list