Но не все так просто, как кажется из заголовка. Нужно не просто сделать -r 25, а через каждые 5 - убирать по одному кадру. Похоже, что такое можно сделать с помощью фильтра select. В документации есть такой пример:Select one frame every 100:select='not(mod(n\,100))'Можно как-то применить к моему случаю? Просто какой-то мудак перевел 25 fps в 30 и теперь каждый 6 кадр просто дублируется, а я хочу перевести в 25 fps с удалением дублирующихся кадров.
>>1871564 (OP)>В документации есть такой пример:>Select one frame every 100:>select='not(mod(n\,100))'>Можно как-то применить к моему случаю?А сам ты как думаешь? Вот что, по-твоему, в строках выше написано?
>>1871570написано как из 100 выбрать 1 кадр. А мне нужно из нескольких убрать 1 кадр.
-vf decimate=cycle=6
>>1871579>написано как из 100 выбрать 1 кадрНеверно. Там написано, как из 100 выбрать 99 кадров.
>>1871607> -vf decimate=cycle=6Спасибо, не замечал этого фильтра.
>>1871610>select='not(mod(n\,100))'Разберем по порядку:not - Return 1.0 if expr is zero, 0.0 otherwise.mod(x, y) - Compute the remainder of division of x by y.n - The (sequential) number of the filtered frame, starting from 0.Текущий номер кадра делится на 100. Если без остачи, то пропускается, если с остачей - отсекается. Надо узнать как инвертировать значение not, чтоб работало при значении не 0.На деле оказывается, что есть фильтр decimate >>1871607. Он сработал как надо.