Alex_Dragon
Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Не устраивает громоздкостью выражений, неудобно получается. Ситуация какая: есть две записи одной передачи, одна качеством похуже, другая получше. Но в лучшей на некоторых кадрах есть артефакты — срывы кадров, какие-то помехи. Возникла мысль заменить их на соответствующие хорошие кадры из первого клипа. Но это получается, сперва нужно сделать клип с нужным кадром, потом обрезать обрабатываемый клип до плохого кадра, сложить с клипом, в котором хороший кадр, сложить с клипом, который представляет собой обрезок исходного клипа после плохого кадра. Если плохих кадров достаточно много — слишком уж длинно получается и диапазоны высчитывать надо. Это геморнее, чем было бы просто указать какой кадр на какой менять. А штуки типа FreezeFrame или DuplicateFrame работают только в пределах одного клипа, механизма же, как в них передать аргументом номер кадра из другого клипа, я не нашёл. Вот черновик: LoadPlugin("h:\Dgmpgdec\DGDecode.dll") Clip1=mpeg2source("Csk_part_1.d2v") Clip1=FieldDeinterlace(Clip1) Clip1=Crop(Clip1,16,0,684,570) Clip1=Bilinearresize(Clip1,384,288) Clip1=Trim(Clip1,386,97516) Clip0=Clip1 Clip1=Trim(Clip1,0,12439) Clip2=mpeg2source("Csk_v2.d2v") Clip2=FieldDeinterlace(Clip2) Clip2=Crop(Clip2,16,0,684,570) Clip2=Bilinearresize(Clip2,384,288) Clip2=Trim(Clip2,204,84895) ClipFull=Clip1+Clip2 # тут по ходу решается та проблема, что второй, более качественный клип, начал писаться не сначала, поэтому недостающий кусок берётся из первого. Frm15128=Trim(Clip0, 15128, 15128) #хорошие кадры для замены Frm18351=Trim(Clip0, 18351, 18351) Clip0_15127=Trim(ClipFull, 0, 15127) # кусок до плохого кадра Clip15129_18350=Trim(ClipFull, 15129, 18350) # кусок после плохого кадра и до следующего плохого ClipLast=Trim(ClipFull, 18352, 0) # хвост от последнего плохого кадра и до конца ClipAll=Clip0_15127+Frm15128+Clip15129_18350+Frm18351+ClipLast # итоговый клип |