how to change keyframe interval in ffmpeg

Samarth Misra picture Samarth Misra · Jun 22, 2015 · Viewed 48.6k times · Source

I wanted to set the keyframe interval of an input video to 5 seconds. Only then can I achieve a constant 5 second HLS segmentation using FFmpeg. How to set the keyframe interval to 5 seconds using FFmpeg? (FFmpeg prompt line code appreciated)

Answer

Ely picture Ely · Jun 22, 2015

You'll need to reencode. Set x264's keyint parameter to 5*fps and disable scenecut. If your fps is 24 for example :

ffmpeg -i <input> -vcodec libx264 -x264-params keyint=120:scenecut=0 -acodec copy out.mp4

This is obviously not optimal for quality but it'll match your demand.

Edited to change no-scenecut to scenecut=0, as per sigh-boy suggestion.