Я хочу перекодировать видео, используя H264, и я хочу контролировать количество i-кадров, содержащихся в перекодированном видео. Я попробовал следующее.
ffmpeg -i video.mp4 -y -c:v libx264 -crf 21 -sc_threshold 40 -c:a copy reencoded_video.mp4
Это успешно перекодирует видео, но я не могу повлиять на количество i-кадров, отрегулировав значения -crf
и -sc_threshold
, как я проверил с помощью ffprobe
. В большинстве случаев один и тот же набор i-кадров получается независимо от установленных мной значений -crf
и -sc_threshold
.
Как контролировать (до некоторой степени) количество i-кадров в перекодированном видео? Например, как мне сделать каждый кадр и i-frame? Как мне перекодировать его так, чтобы каждые 2 секунды было около 1 i-кадра?
РЕДАКТИРОВАТЬ
Кажется, я просто не пробовал достаточно большой диапазон для -sc_threshold
; установка его на 9999 решила проблему. Я до сих пор не могу найти документацию для действительного диапазона -sc_threshold
, может ли кто-нибудь указать мне на официальную документацию, которая описывает его действительный диапазон?