OpenVisualCloud / SVT-HEVC

SVT HEVC encoder. Scalable Video Technology (SVT) is a software-based video coding technology that is highly optimized for Intel® Xeon® processors. Using the open source SVT-HEVC encoder, it is possible to spread video encoding processing across multiple Intel® Xeon® processors to achieve a real advantage of processing efficiency.
Other
519 stars 169 forks source link

Is there any way to force key frame insertion #423

Closed rexvl closed 4 years ago

rexvl commented 4 years ago

It there any way to request that an input frame be encoded as a key frame? Another encoders (nvenc, quicksync, libx264, etc) provides the posibility to force key frame insertion to align keyframes across abr group.

So I tried to set sliceType=EB_IDR_PICTURE in buffer passed to EbH265EncSendPicture without success.

If it is only possible to set key frame interval in frames, please inform us if there is a plan to implement key frame insertion. Thank you.

tianjunwork commented 4 years ago

Yeah, setting sliceType=EB_IDR_PICTURE in buffer passed to EbH265EncSendPicture should work. It failed on me too. We will debug and fix. To support ABR encoding, you can use -intra-period which is the interval between I frames. E.g. -intra-period 14 will give you Gop with 15 frames. Also -irefresh-type to indicate I frame type. -1: CRA, 0: IDR. N>0 means repeat vps/sps/pps every N+1 Gop.

Austin-Hu commented 4 years ago

Hi @rexvl , please help check whehter PR #426 fixes the issue. Thanks!

Austin-Hu commented 4 years ago

BTW, we also verified the function PR #250 targetted, that VPS/SPS/PPS can ben inserted for IDR frames.

rexvl commented 4 years ago

Hi @Austin-Hu great tnx for the fix. It is working for me. Should I close the ticket?