Страницы:Кликните, чтобы указать произвольную страницуназад1234567171172173далее
pka2001: Обработка видео с помощью AviSynth (Ависинт) (часть 2)
Начинающим: Ссылка на ВВОДНУЮ СТАТЬЮ по AviSynth, другие полезные ресурсы и ПРАВИЛА ЗАДАНИЯ ВОПРОСОВ
Статья про Avisynth на iXBT
Avisynth на русском - сайт Fizick'a с документацией и плагинами

Как задать вопрос по AviSynth, чтобы получить ответ.
1. Задавать вопрос, только если Вы хотя бы несколько минут попытались разобраться сами, и хотя бы заглянули в его русскую документацию, советы по решению проблем ( http://avisynth.org.ru/docs/russian/troubleshooting.htm) или например в данную ветку, или статью по основам. Ответ Вы все равно получите не быстро, и скорее всего по характеру вопроса последует совет посмотреть доки или просто отправят в поиск.
2. На вопрос типа: мне некогда читать всю эту длинную ветку, я страшно занятой, ну-ка бросайте ваши дела и скорей бегите сюда отвечать на вопросы моего величества - будет ответ "А пошел ты ... в поиск". На жалобный вариант "сижу на модеме" - будет ответ: нажмите маленькое слово "печать" вверху рядом с номерами страниц, сохраните всю ветку и почитайте отключившись, хотя бы несколько последних страниц, и поищите слова вопроса в этом тексте.
3. Это в частности относится к вопросам типа: А есть ли такая вот функция...
4. Если у Вас не работает (сообщает об ошибке) какая-то команда, или скрипт, в вопросе приведите скрипт полностью, копированием.
5. Сообщите точную (английскую) фразу сообщения об ошибке. Вы можете скопировать текст из окошка сообщения об ошибке VirtualDub в буфер Windows клавишами Ctrl-C и вставить его в текст на форуме клавишами Ctrl-V (или правой кнопкой мыши и т.п.). Или используйте клавиши Alt-PrintSreen, чтобы скопировать окно сообщения как изображение, сохраните в файл в редакторе рисунков и выложите его в интернет.
6. Предварительно лучше попробовать самому убрать (закомментировать) все работающие команды, и оставить минимальный набор команд, который при проверке вызывает эту ошибку (все равно Вас в ответе попросят это сделать).
7. Обязательно сообщите точную версию AviSynth (все равно Вас переспросят, т.к. разные версии имеют особенности).
8. Если ошибка в некотором внешнем плагине, обязательно также сообщите версию данного плагина.
9. Лучше выложить кадрик или небольшой (несколько кадров) проблемный кусочек видео на какой-то интернет сайт, чтобы гуру могли посмотреть его и сказать совет-приговор. Годятся такие сайты как например http://zalil.ru или http://www.mytempdir.com и подобные.
10. Не ждите разумного ответа на вопрос типа "А какой шумоподавитель (скрипт) - самый лучший?", так как даже если бы и существовал суперфильтр, то у него все равно были бы различные настройки, зависящие от типа видео и ваших личных предпочтений. Лучше, если Вы скажете, что вы попробовали, что понравилось, а что не совсем устраивает.

В принципе, все эти правила необязательны, и Вы можете спрашивать и писать что угодно, если Вас не интересует результат .
Просто представьте себя на месте гуру, который вынужден вытаскивать у каждого новичка эти сведения клещами, и через сколько раз ему это надоест.
А на хорошо поставленные вопросы отвечать и помогать хочется (даже если не знаем ответа ), так как вопрос понятен и видна заинтересованность.

Желаем Вам перейти от вопросов к сообщениям об успехах и новинках, ну и к ответам на вопросы новых новичков!
alexx7777
Member
381/635 ответов
13 лет на iXBT, с ноября 2011
Чаще пишет РІ "Видеозахват" (48%)
Россия, Химки
Инфо Ответить
a
alexx7777 Member
11 лет назад / 10 февраля 2014 02:58
Jenyok
Попробовал, на выходе 0.06 - 0.10 к/c. Очень медленно. Пробовал вот так -
01SetMemorymax(1000)
02SetMTMode(5)
03DirectShowSource("video",fps=25,convertfps=true)
04Setmtmode(2)
05AssumeTFF()
06#AssumeBFF()
07edeintted = eedi3(field = -2,                 \
08                  sclip = nnedi3(field = -2,  \
09                                 qual  =  2))
10TDeint(edeint   = edeintted,     \
11       order    = -1,            \       
12       mode     = 2,             \
13       sharp    = true,          \
14       mtnmode  = 3,             \
15       full     = false,         \
16       tryWeave = false,         \
17       type     = 2,             \
18       emask    = TMM(mode = 1))
Можно как-нибудь ускорить?
Процессор -Intel I5 2410M, ОЗУ - 8 Gb, Windows 8.1 (64), кодек Canopus HQ.
Jenyok
Member
389/595 ответов
19 лет на iXBT, с ноября 2005
Чаще пишет РІ "Видеозахват" (63%)
Россия, Russia, Moscow
Инфо Ответить
J
Jenyok Member
11 лет назад / 10 февраля 2014 06:47
alexx7777
.
Ускорить нельзя, либо качество, либо скорость.
.

Добавление от 10.02.2014 06:51:

01LoadPlugIn("C:\PROGRAM FILES\AVISYNTH 2.5\PLUGINS\NNEDI2\nnedi2.dll")
02#LoadPlugin("C:\PROGRAM FILES\AVISYNTH 2.5\PLUGINS\EEDI3\eedi3.dll")
03#LoadPlugin("C:\PROGRAM FILES\AVISYNTH 2.5\PLUGINS\NNEDI3\nnedi3.dll")
04LoadPlugIn("C:\PROGRAM FILES\AVISYNTH 2.5\PLUGINS\TDEINT_20070122\tdeint.dll")
05LoadPlugIn("C:\PROGRAM FILES\AVISYNTH 2.5\PLUGINS\TMMV1\tmm.dll")
06  
07AssumeTFF()
08#AssumeBFF()
09  
10edeintted = nnedi2(field = -2, \
11                   qual  =  3)
12TDeint(edeint   = edeintted,   \
13       order    = -1,          \        
14       mode     = 2,           \
15       sharp    = true,        \
16       mtnmode  = 3,           \
17       full     = false,       \
18       tryWeave = false,       \
19       type     = 2,           \
20       emask    = TMM(mode=1))
.
.
Вот деинтерлейс попроще и побыстрее.
.
Howler
Member
553/5819 ответов, #7 в рейтинге
22 года на iXBT, с января 2003
Чаще пишет РІ "Игры" (58%)
Инфо Ответить
H
Howler Member
11 лет назад / 10 февраля 2014 11:07
Jenyok
А если задать в QTGMC те же параметры настройки для NNEDI3 и EEDI3? Ведь по умолчанию в QTGMC qual = 1 да и прочие параметры необходимо задать аналогичные, как у вас. Кроме того не все пресеты QTGMC выполняют деинтерлейс качественно, а начиная, пожалуй, с preset="Fast".

Исправлено: Howler, 10.02.2014 14:41

Howler
Member
554/5820 ответов, #7 в рейтинге
22 года на iXBT, с января 2003
Чаще пишет РІ "Игры" (58%)
Инфо Ответить
H
Howler Member
11 лет назад / 12 февраля 2014 21:59
Скачал HDTVRip сериалов "Две зимы и три лета" и "Пока станица спит". Результат: бленд на бленде. Качаю исходник, который показывает канал "РоссияHD", а там всё заблендино до ужаса тоже. Чувствую не исправить уже никак, да и MediaInfo показывает, что материал прогрессивный. Мысля у кого-нибудь есть, как такую проблему с блендами исправить или уже всё, смириться?

Исправлено: Howler, 12.02.2014 22:52

Tima182614
Member
151/182 ответов
13 лет на iXBT, с апреля 2011
Чаще пишет РІ "Видеозахват" (47%)
Россия, Пермь
Инфо Ответить
T
Tima182614 Member
11 лет назад / 13 февраля 2014 14:18
Подскажите как добавить для прогрессива 23.976 кадр/с плавность движения?
Kisa_AG
Member
2698/4649 ответов, #18 в рейтинге
22 года на iXBT, с апреля 2002
2 фото на iXBT.photo
Чаще пишет РІ "Видеозахват" (57%)
Инфо Ответить
K
Kisa_AG Member
11 лет назад / 13 февраля 2014 17:39
Tima182614
Подскажите как добавить для прогрессива 23.976 кадр/с плавность движения?

Моушн блюром, вестимо. Я тут раз 15 приводил пример скрипта. Можно в АР или АЕ с помощью ReelSmart Motion Blur плагина.
Tima182614
Member
152/183 ответов
13 лет на iXBT, с апреля 2011
Чаще пишет РІ "Видеозахват" (47%)
Россия, Пермь
Инфо Ответить
T
Tima182614 Member
11 лет назад / 13 февраля 2014 20:58
Howler
Мне бы от вас помощь, т.к я с дабом не работаю. А только с вашими скриптами и программы xvid, или карбон кодер.

Добавление от 13.02.2014 20:59:

Kisa_AG
Не, я с дабом не умею работать. И он не кодирует матроску h.264.
MAG79
Member
435/4514 ответов
20 лет на iXBT, с февраля 2005
8 фото на iXBT.photo
Чаще пишет РІ "ДК TV" (58%)
Россия, г.Иркутск
Web-страница
Инфо Ответить
M
MAG79 Member
11 лет назад / 14 февраля 2014 03:55
Tima182614
как добавить для прогрессива 23.976 кадр/с плавность движения?
плагин Interframe
морда для него InterFrameGUI
и полным полно альтернатив. См. в таблицах в первом сообщении темы:
Просмотр видео на компьютере с эффектом плавности движений (Trimension DNM, MSU FRC, MVTools и др.) (часть 3)

итоговое видео будет иметь частоту кадров выше, чем 23.976
alexx7777
Member
382/636 ответов
13 лет на iXBT, с ноября 2011
Чаще пишет РІ "Видеозахват" (48%)
Россия, Химки
Инфо Ответить
a
alexx7777 Member
11 лет назад / 14 февраля 2014 18:41
Как правильно избавиться от блочности интерлейсного видео с помощью MPEG2Source?
womble
Member
781/1161 ответов
16 лет на iXBT, с мая 2008
Чаще пишет РІ "Видеозахват" (40%)
Инфо Ответить
w
womble Member
11 лет назад / 14 февраля 2014 18:46
У меня больной файл в формате Mpeg-Ps, частота кадров 25 fps. Каждый 3-й кадр в нем повторяет предыдущий. Поставив в настройках кодера частоту кадров 12,5 fps, я получил на выходе фильм без повторяющихся кадров. Однако у меня большой проект, в котором остальные клипы нормальные, с частотой кадров 25 fps. Как мне добавить свой больной файл с 12,5 fps к этому проекту? T.е. безболезненно преобразовать его в 25 fps. Я написал Changefps(25), нo тогда выходной файл получился тоже с дефектом - каждый 2-й кадр повторяется. Короче, как одним разом сделать из 12,5 гладкий 25 fps?
MAG79
Member
436/4515 ответов
20 лет на iXBT, с февраля 2005
8 фото на iXBT.photo
Чаще пишет РІ "ДК TV" (58%)
Россия, г.Иркутск
Web-страница
Инфо Ответить
M
MAG79 Member
11 лет назад / 14 февраля 2014 18:58
womble
Либо ускорить, либо добавить промежуточные интерполированные кадры.
Кстати, 25 к/сек и каждый 3 кадр дубль - это не 12.5, а 25/3*2 = 16.67 к/сек

Можно еще восстановить кадры-дубли, заменив их интерполированными. Подробнее: Замена выпавших кадров (drop'ов) и SVP
Howler
Member
555/5821 ответов, #7 в рейтинге
22 года на iXBT, с января 2003
Чаще пишет РІ "Игры" (58%)
Инфо Ответить
H
Howler Member
11 лет назад / 14 февраля 2014 19:54
Tima182614
Howler
Мне бы от вас помощь, т.к я с дабом не работаю. А только с вашими скриптами и программы xvid, или карбон кодер.

Подключите в фильтрации пресет InterFrame2 или DoubleFPS

Исправлено: Howler, 15.02.2014 01:14

Jenyok
Member
390/596 ответов
19 лет на iXBT, с ноября 2005
Чаще пишет РІ "Видеозахват" (63%)
Россия, Russia, Moscow
Инфо Ответить
J
Jenyok Member
11 лет назад / 14 февраля 2014 20:07
Интерполяция кадров.
.
001# function InterpolateFrames(clip clp, int FrameNumber, int FrameCount)     using MFlowInter(), GScript
002# function InterpolateFrames2(clip clp, int FrameNumber, int FrameCount)    using MFlowInter(), MRecalculate(), GScript
003  
004LoadPlugin("C:\PROGRAM FILES\AVISYNTH 2.5\PLUGINS\MVTOOLS-V2_5_11_3\mvtools2.dll")
005LoadPlugin("C:\PROGRAM FILES\AVISYNTH 2.5\PLUGINS\GSCRIPT_11\gscript.dll")
006  
007#
008# InterpolateFrames() function...
009#
010# FrameNumber is number of the 1-st frame in Source that needs replacing.
011# FrameCount  is total number of frames to replace.
012# InterpolateFrames(101, 5) would replace 101, 102, 103, 104, 105,
013# by using MFlowInter() interpolation.
014#
015function InterpolateFrames(clip clp, int FrameNumber, int FrameCount)
016{
017  # Constants
018  # MSuper()
019  #
020  hpad          = 8           # Maybe 4, 8, 16, 32,  !!! Change this constant for best tuning !!!
021  vpad          = 8           # Maybe 4, 8, 16, 32,  !!! Change this constant for best tuning !!!
022  pel           = 4           # default=2
023  sharp         = 2           # default=2 !!!
024  rfilter       = 4           # default=2
025  chroma        = true        # default=true
026  isse          = true        # default=true
027  planar        = false       # default=false
028  levels        = 0           # default=0
029  
030  # Constants
031  # MAnalyse()
032  #
033  blkh          = 32          # Maybe 4, 8, 16, 32,  !!! Change this constant for best tuning !!!
034  blkv          = 32          # Maybe 4, 8, 16, 32,  !!! Change this constant for best tuning !!!
035  overlap       = 4           # Maybe 2, 4,  8, 16,  !!! maybe blkh/2 or litle  !!! Change this constant for best tuning !!!
036  overlapV      = 4           # Maybe 2, 4,  8, 16,  !!! maybe blkv/2 or litle  !!! Change this constant for best tuning !!!
037  search        = 3           # default=4  !!! DO NOT CHANGE =3
038  searchparam   = 16          # default=2  !!! DO NOT CHANGE =16
039  dct           = 5           # default=0
040  plevel        = 2           # default=0
041  badrange      = (-24)       # default=24
042  badsad        = 10000       # default=10000
043  divide        = 0           # default=0
044  sadx264       = 0           # default=0
045  truemotion    = true        # default=true
046  
047  lambda        = (truemotion == false) ? 0   : (1000 * blkh * blkv / 64)   # default=0   truemotion=false, default=1000*blksize*blksizeV/64 truemotion=true
048  lsad          = (truemotion == false) ? 400 : 1200                        # default=400 truemotion=false, default=1200 truemotion=true
049  pnew          = (truemotion == false) ? 0   : 50                          # default=0   truemotion=false, default=50   truemotion=true
050  pzero         = pnew                                                      # default pzero=pnew
051  
052  # Constants
053  # MFlowInter()
054  #
055  thSCD1        = 800         # default=400  !!! DO NOT CHANGE =800
056  thSCD2        = 130         # default=130
057  iml           = 70          # default=100
058  blend         = true        # default=true
059  
060  
061  # Here is code of function...
062  #
063  # Restore bad frames with interpolation with MFlowInter
064  # Prepare functions
065  #
066  # function MSuper(clip, int "hpad", int "vpad", int "pel", int "levels", bool "chroma", \
067  #                 int "sharp", int "rfilter", clip "pelclip", bool "isse", bool "planar")
068  #
069  super = MSuper(clp,                 \
070                 hpad    = hpad,      \
071                 vpad    = vpad,      \
072                 pel     = pel,       \
073                 chroma  = chroma,    \
074                 sharp   = sharp,     \
075                 rfilter = rfilter,   \
076                 isse    = isse,      \
077                 planar  = planar,    \
078                 levels  = levels)
079  
080  # function MAnalyse(clip super, int "blksize", int "blksizeV", int "level", int "search", int "searchparam",        \
081  #                   int "pelsearch", bool "isb", int "lambda", bool "chroma", int "delta", bool "truemotion",       \
082  #                   int "lsad", int "plevel", bool "global", int "pnew", int "pzero", int "pglobal", int "overlap", \
083  #                   int "overlapV", string "outfile", int "dct", int "divide", int "sadx264", int "badSAD",         \
084  #                   int "badrange", bool "isse", int "full", bool "meander", bool "temporal")
085  #
086  backward1 = MAnalyse(super,                              \
087                       delta       = (FrameCount + 1),     \
088                       isb         = true,                 \
089                       blksize     = blkh,                 \
090                       blksizeV    = blkv,                 \
091                       overlap     = overlap,              \
092                       overlapV    = overlapV,             \
093                       search      = search,               \
094                       searchparam = searchparam,          \
095                       pelsearch   = pel,                  \
096                       lambda      = lambda,               \
097                       chroma      = chroma,               \
098                       truemotion  = truemotion,           \
099                       lsad        = lsad,                 \
100                       plevel      = plevel,               \
101                       pnew        = pnew,                 \
102                       pzero       = pzero,                \
103                       dct         = dct,                  \
104                       divide      = divide,               \
105                       sadx264     = sadx264,              \
106                       badSAD      = badsad,               \
107                       badrange    = badrange,             \
108                       isse        = isse,                 \
109                       levels      = levels,               \
110                       global      = true,                 \
111                       pglobal     = 0,                    \
112                       meander     = true,                 \
113                       temporal    = false,                \
114                       trymany     = false)
115  
116  # function MAnalyse(clip super, int "blksize", int "blksizeV", int "level", int "search", int "searchparam",        \
117  #                   int "pelsearch", bool "isb", int "lambda", bool "chroma", int "delta", bool "truemotion",       \
118  #                   int "lsad", int "plevel", bool "global", int "pnew", int "pzero", int "pglobal", int "overlap", \
119  #                   int "overlapV", string "outfile", int "dct", int "divide", int "sadx264", int "badSAD",         \
120  #                   int "badrange", bool "isse", int "full", bool "meander", bool "temporal")
121  #
122  forward1 = MAnalyse(super,                               \
123                      delta       = (FrameCount + 1),      \
124                      isb         = false,                 \
125                      blksize     = blkh,                  \
126                      blksizeV    = blkv,                  \
127                      overlap     = overlap,               \
128                      overlapV    = overlapV,              \
129                      search      = search,                \
130                      searchparam = searchparam,           \
131                      pelsearch   = pel,                   \
132                      lambda      = lambda,                \
133                      chroma      = chroma,                \
134                      truemotion  = truemotion,            \
135                      lsad        = lsad,                  \
136                      plevel      = plevel,                \
137                      pnew        = pnew,                  \
138                      pzero       = pzero,                 \
139                      dct         = dct,                   \
140                      divide      = divide,                \
141                      sadx264     = sadx264,               \
142                      badSAD      = badsad,                \
143                      badrange    = badrange,              \
144                      isse        = isse,                  \
145                      levels      = levels,                \
146                      global      = true,                  \
147                      pglobal     = 0,                     \
148                      meander     = true,                  \
149                      temporal    = false,                 \
150                      trymany     = false)
151  
152  GScript("""
153  if (FrameCount == 1) {
154  
155    # MFlowInter(clip source, clip super, clip mvbw, clip mvfw, float "time", float "mL", \
156    #            bool "blend", int "thSCD1", int "thSCD2", bool "isse", bool "planar")
157    #
158    inter2 = MFlowInter(clp,                 \
159                        super,               \
160                        backward1,           \
161                        forward1,            \
162                        time   = 50,         \
163                        mL     = iml,        \
164                        blend  = blend,      \
165                        thSCD1 = thSCD1,     \
166                        thSCD2 = thSCD2,     \
167                        isse   = isse,       \
168                        planar = planar)
169  
170    inter = inter2.Trim(FrameNumber, -1)
171  }        # End of If-Then
172  else {
173    # Fill an Inter variable with the MFlowInter() clips with different times
174    # Times are calculated in each step
175    #
176    for (i=0, FrameCount-1) {
177      itime = (100.0 / Float(FrameCount + 1)) * Float(i + 1)
178  
179      # MFlowInter(clip source, clip super, clip mvbw, clip mvfw, float "time", float "mL", \
180      #            bool "blend", int "thSCD1", int "thSCD2", bool "isse", bool "planar")
181      #
182      inter2 = MFlowInter(clp,                 \
183                          super,               \
184                          backward1,           \
185                          forward1,            \
186                          time   = itime,      \
187                          mL     = iml,        \
188                          blend  = blend,      \
189                          thSCD1 = thSCD1,     \
190                          thSCD2 = thSCD2,     \
191                          isse   = isse,       \
192                          planar = planar)
193  
194      if (i == 0) {
195        inter = inter2.Trim(FrameNumber, -1)
196      }    # End of If-Then
197      else {
198        inter = inter ++ inter2.Trim(FrameNumber, -1)
199      }    # End of If-Else
200    }      # End of For ()
201  }        # End of If-Else
202  """)     # End of GScript ()
203  
204  return (clp.trim(0, FrameNumber - 1) ++ inter ++ clp.trim(FrameNumber + FrameCount, 0))
205}
206  
207  
208  
209#
210# InterpolateFrames2() function...
211#
212# FrameNumber is number of the 1-st frame in Source that needs replacing.
213# FrameCount  is total number of frames to replace.
214# InterpolateFrames2(101, 5) would replace 101, 102, 103, 104, 105,
215# by using MRecalculate() and MFlowInter() interpolation.
216#
217function InterpolateFrames2(clip clp, int FrameNumber, int FrameCount)
218{
219  # Constants
220  # MSuper()
221  #
222  hpad          = 8           # Maybe 4, 8, 16, 32,  !!! Change this constant for best tuning !!!
223  vpad          = 8           # Maybe 4, 8, 16, 32,  !!! Change this constant for best tuning !!!
224  pel           = 4           # default=2
225  sharp         = 2           # default=2 !!!
226  rfilter       = 4           # default=2
227  chroma        = true        # default=true
228  isse          = true        # default=true
229  planar        = false       # default=false
230  levels        = 0           # default=0
231  
232  # Constants
233  # MAnalyse()
234  #
235  blkh          = 32          # Maybe 4, 8, 16, 32,  !!! Change this constant for best tuning !!!
236  blkv          = 32          # Maybe 4, 8, 16, 32,  !!! Change this constant for best tuning !!!
237  overlap       = 4           # Maybe 2, 4,  8, 16,  !!! maybe blkh/2 or litle  !!! Change this constant for best tuning !!!
238  overlapV      = 4           # Maybe 2, 4,  8, 16,  !!! maybe blkv/2 or litle  !!! Change this constant for best tuning !!!
239  search        = 3           # default=4  !!! DO NOT CHANGE =3
240  searchparam   = 16          # default=2  !!! DO NOT CHANGE =16
241  dct           = 5           # default=0
242  plevel        = 2           # default=0
243  badrange      = (-24)       # default=24
244  badsad        = 10000       # default=10000
245  divide        = 0           # default=0
246  sadx264       = 0           # default=0
247  truemotion    = true        # default=true
248  
249  lambda        = (truemotion == false) ? 0   : (1000 * blkh * blkv / 64)   # default=0   truemotion=false, default=1000*blksize*blksizeV/64 truemotion=true
250  lsad          = (truemotion == false) ? 400 : 1200                        # default=400 truemotion=false, default=1200 truemotion=true
251  pnew          = (truemotion == false) ? 0   : 50                          # default=0   truemotion=false, default=50   truemotion=true
252  pzero         = pnew                                                      # default pzero=pnew
253  
254  # Constants
255  # MRecalculate()
256  #
257  blkhR         = 8           # Maybe 4, 8, 16, 32,  !!! Change this constant for best tuning !!!
258  blkvR         = 8           # Maybe 4, 8, 16, 32,  !!! Change this constant for best tuning !!!
259  overlapR      = 4           # Maybe 2, 4,  8, 16,  !!! maybe blkhR/2 or litle  !!! Change this constant for best tuning !!!
260  overlapVR     = 4           # Maybe 2, 4,  8, 16,  !!! maybe blkvR/2 or litle  !!! Change this constant for best tuning !!!
261  searchR       = 3           # default=4
262  searchparamR  = 1           # default=2
263  thSAD         = 400         # default=200  !!! DO NOT CHANGE =400
264  
265  lambdaR       = (truemotion == false) ? 0 : (1000 * blkhR * blkvR / 64)   # default=0 truemotion=false, default=1000*blksize*blksizeV/64 truemotion=true
266  
267  # Constants
268  # MFlowInter()
269  #
270  thSCD1        = 800         # default=400  !!! DO NOT CHANGE =800
271  thSCD2        = 130         # default=130
272  iml           = 70          # default=100
273  blend         = true        # default=true
274  
275  
276  # Here is code of function...
277  #
278  # Restore bad frames with interpolation with MFlowInter
279  # Prepare functions
280  #
281  # function MSuper(clip, int "hpad", int "vpad", int "pel", int "levels", bool "chroma", \
282  #                 int "sharp", int "rfilter", clip "pelclip", bool "isse", bool "planar")
283  #
284  super = MSuper(clp,                 \
285                 hpad    = hpad,      \
286                 vpad    = vpad,      \
287                 pel     = pel,       \
288                 chroma  = chroma,    \
289                 sharp   = sharp,     \
290                 rfilter = rfilter,   \
291                 isse    = isse,      \
292                 planar  = planar,    \
293                 levels  = levels)
294  
295  # function MAnalyse(clip super, int "blksize", int "blksizeV", int "level", int "search", int "searchparam",        \
296  #                   int "pelsearch", bool "isb", int "lambda", bool "chroma", int "delta", bool "truemotion",       \
297  #                   int "lsad", int "plevel", bool "global", int "pnew", int "pzero", int "pglobal", int "overlap", \
298  #                   int "overlapV", string "outfile", int "dct", int "divide", int "sadx264", int "badSAD",         \
299  #                   int "badrange", bool "isse", int "full", bool "meander", bool "temporal")
300  #
301  backward1 = MAnalyse(super,                              \
302                       delta       = (FrameCount + 1),     \
303                       isb         = true,                 \
304                       blksize     = blkh,                 \
305                       blksizeV    = blkv,                 \
306                       overlap     = overlap,              \
307                       overlapV    = overlapV,             \
308                       search      = search,               \
309                       searchparam = searchparam,          \
310                       pelsearch   = pel,                  \
311                       lambda      = lambda,               \
312                       chroma      = chroma,               \
313                       truemotion  = truemotion,           \
314                       lsad        = lsad,                 \
315                       plevel      = plevel,               \
316                       pnew        = pnew,                 \
317                       pzero       = pzero,                \
318                       dct         = dct,                  \
319                       divide      = divide,               \
320                       sadx264     = sadx264,              \
321                       badSAD      = badsad,               \
322                       badrange    = badrange,             \
323                       isse        = isse,                 \
324                       levels      = levels,               \
325                       global      = true,                 \
326                       pglobal     = 0,                    \
327                       meander     = true,                 \
328                       temporal    = false,                \
329                       trymany     = false)
330  
331  # function MAnalyse(clip super, int "blksize", int "blksizeV", int "level", int "search", int "searchparam",        \
332  #                   int "pelsearch", bool "isb", int "lambda", bool "chroma", int "delta", bool "truemotion",       \
333  #                   int "lsad", int "plevel", bool "global", int "pnew", int "pzero", int "pglobal", int "overlap", \
334  #                   int "overlapV", string "outfile", int "dct", int "divide", int "sadx264", int "badSAD",         \
335  #                   int "badrange", bool "isse", int "full", bool "meander", bool "temporal")
336  #
337  forward1 = MAnalyse(super,                               \
338                      delta       = (FrameCount + 1),      \
339                      isb         = false,                 \
340                      blksize     = blkh,                  \
341                      blksizeV    = blkv,                  \
342                      overlap     = overlap,               \
343                      overlapV    = overlapV,              \
344                      search      = search,                \
345                      searchparam = searchparam,           \
346                      pelsearch   = pel,                   \
347                      lambda      = lambda,                \
348                      chroma      = chroma,                \
349                      truemotion  = truemotion,            \
350                      lsad        = lsad,                  \
351                      plevel      = plevel,                \
352                      pnew        = pnew,                  \
353                      pzero       = pzero,                 \
354                      dct         = dct,                   \
355                      divide      = divide,                \
356                      sadx264     = sadx264,               \
357                      badSAD      = badsad,                \
358                      badrange    = badrange,              \
359                      isse        = isse,                  \
360                      levels      = levels,                \
361                      global      = true,                  \
362                      pglobal     = 0,                     \
363                      meander     = true,                  \
364                      temporal    = false,                 \
365                      trymany     = false)
366  
367  # MRecalculate(clip super, clip vectors, int "thSAD", int "smooth", int "blksize", int "blksizeV",   \
368  #              int "search", int "searchparam", int "lambda", bool "chroma", bool "truemotion",      \
369  #              int "pnew", int "overlap", int "overlapV", string "outfile", int "dct", int "divide", \
370  #              int "sadx264", bool "isse")
371  #
372  backward2 = MRecalculate(super,                           \
373                           backward1,                       \
374                           blksize     = blkhR,             \
375                           blksizeV    = blkvR,             \
376                           overlap     = overlapR,          \
377                           overlapV    = overlapVR,         \
378                           search      = searchR,           \
379                           searchparam = searchparamR,      \
380                           lambda      = lambdaR,           \
381                           dct         = dct,               \
382                           truemotion  = truemotion,        \
383                           thSAD       = thSAD,             \
384                           isse        = isse,              \
385                           chroma      = chroma,            \
386                           pnew        = pnew,              \
387                           divide      = divide,            \
388                           sadx264     = sadx264,           \
389                           smooth      = 1)
390   
391  # MRecalculate(clip super, clip vectors, int "thSAD", int "smooth", int "blksize", int "blksizeV",   \
392  #              int "search", int "searchparam", int "lambda", bool "chroma", bool "truemotion",      \
393  #              int "pnew", int "overlap", int "overlapV", string "outfile", int "dct", int "divide", \
394  #              int "sadx264", bool "isse")
395  #
396  forward2  = MRecalculate(super,                           \
397                           forward1,                        \
398                           blksize     = blkhR,             \
399                           blksizeV    = blkvR,             \
400                           overlap     = overlapR,          \
401                           overlapV    = overlapVR,         \
402                           search      = searchR,           \
403                           searchparam = searchparamR,      \
404                           lambda      = lambdaR,           \
405                           dct         = dct,               \
406                           truemotion  = truemotion,        \
407                           thSAD       = thSAD,             \
408                           isse        = isse,              \
409                           chroma      = chroma,            \
410                           pnew        = pnew,              \
411                           divide      = divide,            \
412                           sadx264     = sadx264,           \
413                           smooth      = 1)
414  
415  GScript("""
416  if (FrameCount == 1) {
417  
418    # MFlowInter(clip source, clip super, clip mvbw, clip mvfw, float "time", float "mL", \
419    #            bool "blend", int "thSCD1", int "thSCD2", bool "isse", bool "planar")
420    #
421    inter2 = MFlowInter(clp,                 \
422                        super,               \
423                        backward2,           \
424                        forward2,            \
425                        time   = 50,         \
426                        mL     = iml,        \
427                        blend  = blend,      \
428                        thSCD1 = thSCD1,     \
429                        thSCD2 = thSCD2,     \
430                        isse   = isse,       \
431                        planar = planar)
432  
433    inter = inter2.Trim(FrameNumber, -1)
434  }        # End of If-Then
435  else {
436    # Fill an Inter variable with the MFlowInter() clips with different times
437    # Times are calculated in each step
438    #
439    for (i=0, FrameCount-1) {
440      itime = (100.0 / Float(FrameCount + 1)) * Float(i + 1)
441  
442      # MFlowInter(clip source, clip super, clip mvbw, clip mvfw, float "time", float "mL", \
443      #            bool "blend", int "thSCD1", int "thSCD2", bool "isse", bool "planar")
444      #
445      inter2 = MFlowInter(clp,                 \
446                          super,               \
447                          backward2,           \
448                          forward2,            \
449                          time   = itime,      \
450                          mL     = iml,        \
451                          blend  = blend,      \
452                          thSCD1 = thSCD1,     \
453                          thSCD2 = thSCD2,     \
454                          isse   = isse,       \
455                          planar = planar)
456  
457      if (i == 0) {
458        inter = inter2.Trim(FrameNumber, -1)
459      }    # End of If-Then
460      else {
461        inter = inter ++ inter2.Trim(FrameNumber, -1)
462      }    # End of If-Else
463    }      # End of For ()
464  }        # End of If-Else
465  """)     # End of GScript ()
466  
467  return (clp.trim(0, FrameNumber - 1) ++ inter ++ clp.trim(FrameNumber + FrameCount, 0))
468}
womble
Member
782/1162 ответов
16 лет на iXBT, с мая 2008
Чаще пишет РІ "Видеозахват" (40%)
Инфо Ответить
w
womble Member
11 лет назад / 14 февраля 2014 20:15
MAG79, какой конкретно скрипт надо написать, чтобы получить из 12,5 > 25 fps?
Ваш ответ:

Нет значка Нет значка Р’РѕС‚ тут! Лампочка Восклицание Р’РѕРїСЂРѕСЃ Класс! Улыбка Злость Огорчение РџРѕРіРѕРІРѕСЂРёРј? Краснею Подмигивание Ругаю РћРґРѕР±СЂСЏСЋBIUdelSxsupxsuboffsp spoilerqurlimgvideo• list1. list1 codeprecenter-hr-rusQWE→ЙЦУ
файлыочистить
Ваше имя: Авторизуйтесь Предпросмотр В полную форму
вставить выделенную цитату в окно ответа
Если Вы считаете это сообщение ценным для дискуссии (не обязательно с ним соглашаться), Вы можете поблагодарить его автора, а также перечислить ему на счет некоторую сумму со своего баланса (при отзыве благодарности перечисленная сумма не будет вам возвращена).
Также вы можете оценить сообщение как неудачное.
В течение суток можно 20 раз оценить сообщения разных участников (купите Premium-аккаунт, либо оплачивайте оценки сверх лимита).
Если Вы считаете это сообщение ценным для дискуссии (не обязательно с ним соглашаться), Вы можете поблагодарить его автора, а также перечислить ему на счет некоторую сумму со своего баланса (при отзыве благодарности перечисленная сумма не будет вам возвращена).
Также вы можете оценить сообщение как неудачное.
В течение суток можно 20 раз оценить сообщения разных участников (купите Premium-аккаунт, либо оплачивайте оценки сверх лимита).
Страницы:Кликните, чтобы указать произвольную страницуназад1234567171172173далее