[x264-devel] how i_scenecut_threshold values works

Jason Garrett-Glaser jason at x264.com
Sat Jan 15 19:52:05 CET 2011


On Sat, Jan 15, 2011 at 10:09 AM, Rafael Sousa <rafael.lmsousa at gmail.com> wrote:
> I need to modify it in realtime to match the network adversity like jitter
> and packet loss (obtained by RTCP), and so, to maintain the quality of the
> video streamed inserting I-frames more frequently or less frequently
> accordling to the network situation. In the source code, the description
> of i_scenecut_threshold says "how aggressively to insert extra I frames",
> and that is exactly what I need: to change the frequency of I-frames. I just
> want to know how the values of this variable works.

Inserting I-frames is not an appropriate method for dealing with loss.
 Here are some better methods:

1.  FEC.
2.  invalidate_reference: when the client loses a packet, tell the
encoder, and the encoder will magically fix it without forcing a
keyframe.  This can be combined with FEC.
3.  Intra refresh: this allows refreshing the image without the
latency induced by keyframes (i.e. due to the fact that keyframes are
large).  Like keyframes, intra refreshes can be called on-demand by
the caller.

Jason


More information about the x264-devel mailing list