Avisynth обрабатывать нечетные четные пары кадров

Мне нужно прочитать пары кадров с Avisynth и обработать их.

eg
frame1 + frame2 => result1    
frame2 + frame3 => result2
frame3 + frame4 => result3

Я знаю команды selecteven() и selectodd(), но они дают мне frame1 и 2 затем frame3 и 4.
Не существует способа выполнить if(), чтобы определить, на каком шаге я нахожусь, или отодвинуть назад захваченный кадр.

Есть идеи, как это реализовать?

1 ответ

//assuming video is the input

even = SelectEven(video)     
odd = SelectOdd(video)    

// should produce 0,1 1,2 2,3 ....
// seems bad to have to split into odd and even then interleave them back together 
//  but Select only works with interleaved sources

interleave(even,odd)    
SelectEvery(2,0,-1,0,1)    
trim(2,0)    

right = SelectEven()   
left = SelectOdd()   

даст 0,1 1,2 2,3 3,4 4,5 5,6 и т. д.

ps комментарии в avisynth являются # not //, но это нарушает форматирование SO.
pps не знает, почему это синтаксическая подсветка некоторых бит или как он угадал, на каком языке.

Другие вопросы по тегам