Question / Help "Keyframe interval is too high"

carlmmii

Active Member
Setting keyframe interval to 0 actually means setting it to auto -- this makes the encoder use its own judgement based on when it thinks it needs to add an I frame to get the image quality back up after the string of P/B frames.

Having too far of a gap between I-frames poses a real issue, especially for streaming -- anyone coming in has to wait until the next I-frame to start getting a video feed, since you can't get a picture without a reference point (P-frames are predictive frames, so it's just differences between frames, and B-frames are helper frames that need the adjacent I-frames). This also applies to any time a viewer ends up buffering -- there's no way for the player to start back up again unless it has a proper frame to catch up on, which has to be an I-frame.

Take an extreme example. Let's say it's 2 minutes between I-frames -- that means if you're watching and have a slight hiccup in your connection, it's going to take upwards of 2 minutes before you can start viewing again. If the player is aggressive and tries to feed you an image without the reference I-frame, it's going to appear like a grey blurry mess because it's just showing you the raw P-frames changing a mid-gray plate.

So... yeah. Use twitch's recommended 2 second I-frame interval. Unless you're trying to do extreme bit-saving (like, having to compress <600kbps), then there's no reason to change this.
 

CydoniaTV

New Member
Setting keyframe interval to 0 actually means setting it to auto -- this makes the encoder use its own judgement based on when it thinks it needs to add an I frame to get the image quality back up after the string of P/B frames.

Having too far of a gap between I-frames poses a real issue, especially for streaming -- anyone coming in has to wait until the next I-frame to start getting a video feed, since you can't get a picture without a reference point (P-frames are predictive frames, so it's just differences between frames, and B-frames are helper frames that need the adjacent I-frames). This also applies to any time a viewer ends up buffering -- there's no way for the player to start back up again unless it has a proper frame to catch up on, which has to be an I-frame.

Take an extreme example. Let's say it's 2 minutes between I-frames -- that means if you're watching and have a slight hiccup in your connection, it's going to take upwards of 2 minutes before you can start viewing again. If the player is aggressive and tries to feed you an image without the reference I-frame, it's going to appear like a grey blurry mess because it's just showing you the raw P-frames changing a mid-gray plate.

So... yeah. Use twitch's recommended 2 second I-frame interval. Unless you're trying to do extreme bit-saving (like, having to compress <600kbps), then there's no reason to change this.

Thanks for the response.

To be honest, I've always had it set to 0 and have had no real problems with it. Only recently it's warning me about it. I also noticed the other day that my stream kept freezing on Twitch but I assume it's because of the keyframe interval.

I'll keep it on 2 from now on, thanks again for your help :)
 

ILIG GAMER

New Member
Setting keyframe interval to 0 actually means setting it to auto -- this makes the encoder use its own judgement based on when it thinks it needs to add an I frame to get the image quality back up after the string of P/B frames.

Having too far of a gap between I-frames poses a real issue, especially for streaming -- anyone coming in has to wait until the next I-frame to start getting a video feed, since you can't get a picture without a reference point (P-frames are predictive frames, so it's just differences between frames, and B-frames are helper frames that need the adjacent I-frames). This also applies to any time a viewer ends up buffering -- there's no way for the player to start back up again unless it has a proper frame to catch up on, which has to be an I-frame.

Take an extreme example. Let's say it's 2 minutes between I-frames -- that means if you're watching and have a slight hiccup in your connection, it's going to take upwards of 2 minutes before you can start viewing again. If the player is aggressive and tries to feed you an image without the reference I-frame, it's going to appear like a grey blurry mess because it's just showing you the raw P-frames changing a mid-gray plate.

So... yeah. Use twitch's recommended 2 second I-frame interval. Unless you're trying to do extreme bit-saving (like, having to compress <600kbps), then there's no reason to change this.
Hi there! I have a (pack of) questions XD. 1stly, thanks a lot for your amazing knowledge here and elsewhere!

- My n-1 question is : While streaming with CBR, as it is CBR with a limit of 6Mbps, does that mean that the Keyframe interval of 2 would actually give me better quality than Keyframe interval of 1 ?

And it the same time,

- while using B-frames, does it give better quality because again it has a limited Bitrate? (n-2 question)

- ( as for n-3 question ) And I wonder does B-frames give a delay (between the exact time I'm streaming and the second that my video is watchable by my viewer when there non-internet-problem) because theoretically, they need to load 2 frames forward as well in purpose to what the frame in front of them? ( I know 2 frame isn't much, especially while streaming at 60fps but yet still, I want to know if it does give the delay or not? )
 
Top