> I am no expert but I imagine it is keeping the old packets around so it can 
> refer to them from later packets, and it only sends them when it no longer 
> needs to refer back to them.

I guess the lag is indeed because of keeping the old packets. But I think 
libx265 could have kept the old frames instead of the old packets.

> I suppose you could configure the codec to send an I fraame for every frame 
> or every second frame?  You'd get almost no compression but the latency would 
> probably be quite low.
> You could also consider increasing the frame rate, e.g. 30 fps in, 120 fps 
> out.  Since you'd be submitting each input frame multiple times, the encoder 
> would produce an output packet sooner.
> There are probably much better ways than this but I imagine you'd have to 
> delve into the codec source code.

I dig into the settings and finally find two related libx265 options: 
"rc-lookahead" and "bframes".
It seems that when B frames are enabled, the lag in frames will be (3 + 
"rc-lookahead" + "bframes"), and "rc-lookahead" has to be greater than 
"bframes" even if "b-adapt" is disabled.
I want a median compression (max_b_frames>=3) with a low latency (<=5 frames). 
Perhaps the only solution is to modify libx265's source code.

Thanks for your advice.

Grateful,
Zehui
_______________________________________________
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