5 ms·
H.264 and most other modern codecs support “intra refresh” to avoid this problem, at the cost of a marginally higher bitrate overall. Think of this as a “rollin
by tatersolid 6y ago
H.264 and most other modern codecs support “intra refresh” to avoid this problem, at the cost of a marginally higher bitrate overall. Think of this as a “rolling keyframe slice” which marches across the screen every few seconds.
http://www.chaneru.com/Roku/HLS/X264_Settings.htm#intra-refresh http://www.chaneru.com/Roku/HLS/X264_Settings.htm#intra-refr...
- dimes 6y agoI was not aware of this at the time of writing, but it solves a large problem we've been having. Thank you so much for pointing that out. Edit: I've just tried using intra refresh, and it works pretty well, but the key frame interval is still required.
- Dylan16807 6y agoI would say intra refresh solves a different problem. You still have to wait for the intra refresh to cover the frame before you can start watching properly. That takes just as long as waiting for a keyframe, and needs slightly more bytes. The benefit of intra refresh is that you avoid having any particularly large frames. If you're using a sub-second buffer, then intra refresh makes your maximum frame size much smaller without sacrificing quality. It's a godsend for getting latency down to tiny amounts. But if you have 1 or 2 seconds of buffer then it's no big deal if a keyframe is an order of magnitude bigger than other frames, and intra refresh is pointless. Also it's not really a codec thing, it's a clever encoder trick that you can do on basically anything.
- dimes 6y agoYes, this is a good point. Intra refresh does reduce variability of the bitrate, but the bitrate is still higher than it would need to be if rtcp was supported.
- beagle3 6y agoYou could do on most things, but it has to be part of the codec to actually work. If you aren’t aware of this scheme, you can just wait until the next key frame. With IDR there is a lot more bookkeeping to do so you can figure out when every single needed pixel has been accounted for. And although it is part of the standard, I’ve encountered players that don’t support it even though they are based on ffmpeg - probably because they do look for key frames to seek to or something.
- Dylan16807 6y ago> And although it is part of the standard, I’ve encountered players that don’t support it even though they are based on ffmpeg - probably because they do look for key frames to seek to or something. I think that supports my point. It doesn't matter if the technique is explicitly listed in the codec or not. You need clients that will tolerate infinite P-frames, and they will work equally well whether you're using intra refresh techniques on h.264 or h.262 The dumbest possible renderer would have full support; it takes extra logic to get in the way and break it.