How to set the H.264 GOP length in x264enc?

Krzysztof Konopko krzysztof.konopko at konagma.eu
Wed Mar 28 06:50:46 UTC 2018


On Tue, 2018-03-27 at 15:11 -0700, Andres Gonzalez wrote:
> Hi,
> 
> I have been tasked to test some decoders regarding how they respond
> to
> different streams with various  GOP lengths (GOP length is the ratio
> of
> Intracoded-to-Predictive or I-to-P frames). I am using several
> pipelines
> with the x264enc plugin and all seems to be working fine. But in
> reviewing
> the properties for x264enc, it is not clear to me how to configure
> x264enc
> so I can nail it down for various GOP lengths. There are a lot of
> properties
> related to B frames but not too many for I/P frames.
>  
> Two x264enc properties:
> ip-factor: Quantizer factor between I- and P- frames     This appears
> to
> relate to quantizing and not a ratio; plus it is only in the range of
> 0-2
>  
> key-int-max: Maximal distance between two key-frames     Again, only
> deals
> with the frequency of I frames regardless of what kind of frames come
> between them.
> 
> So, how can I configure x264enc for various GOP lengths like 1, 15,
> or 30?
> 

I'm not sure if this is the best way of achieving this, but in my test
app I had a pad probe on a source element and sent an event with
`gst_video_event_new_downstream_force_key_unit()` whenever I needed an
I-frame (close a GOP).  This was also nice to test fancy cases with
variable GOP lengths.

Kris


More information about the gstreamer-devel mailing list