2010-08-30 2 views
0

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

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

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

Любая идея, как реализовать это?

ответ

0
//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 и т.д.

пс комментарии в AviSynth являются # не // но это разбивает ТАК форматирование.
pps не знаю, почему это синтаксис, выделяющий некоторые бит или как он догадался, на каком языке.

+0

Я не уверен, почему 'SelectEvery' будет работать только с чередующимися источниками» ... В AviSynth нет понятия чередующихся источников, просто последовательность кадров (которые могут быть основаны на фреймах или на основе полей). Кроме того, это в основном звучит как обходной способ «Interleave (видео, видео)». – jamesdlin

+0

@jamesdlin - возможно, он изменился за последние 5 лет, но я больше не использую его. Пожалуйста, отредактируйте/предоставите лучший ответ, если сможете - вот в чем смысл SO –

Смежные вопросы