swiths
So it seems it's the render/presenter's fault
Yes. I agree with you.

I was using 'Enhanced Video Render(custom presenter)'
This renderer sometimes produces dropped frames. One of method to avoid drops in EVR CP is to enable fullscreen D3D.

almost 247 of the total 256 frames are correct aaabb(3:2) cadence
This picture looks better wink
Can you tell what tools are you using for that (Memory 1 / m_dwStat)?

Dave_Scream
в новом скрипте этап перегона 30 в 60 выполняется (даже с избытком - не в 60, а в 480 фпс)?
Да. Все верно.

Имеет ли смысл смысл в SVSmoothFPS передать параметры для полноценного просчета промежуточных кадров, заполнив analyze_params и smoothfps_params
Можно, конечно, поэкспериментировать, но что значит "полноценного"? Сейчас выполняется расчет со значениям параметров по-умолчанию, они сбалансированы в отношении качество/скорость. Сдвинуть это равновесие можно в сторону усложнения расчетов, что уменьшит скорость, и возможно улучшит качество. Можно улучшить качество, но для этого нужен исходник, а далее сидеть и подбирать параметры, проверяя результат покадрово. Дело в том, что для разного типа видео для получения максимального эффекта нужен свой набор параметров.
Можно повысить скорость, упростив расчеты. На качестве это может сказаться не сильно, а может и сильно. Надо менять и смотреть на результат.

имеет ли смысл вместо увеличения FPS через ConvertFPS(Framerate*2), увеличивать фпс через функцию SVSmoothFPS?
ConvertFPS это не просто увеличение частоты кадров, это СМЕШИВАНИЕ кадров. SVSmoothFPS кадры не смешивает, а честно считает промежуточные положения объектов. Поэтому ответ, нет, не имеет.

ConvertFPS изменяет частоту кадров смешиванием. Т.к. уменьшение частоты кадров неподдерживается функцией ConvertFPS, то используется трюк повысить частоту кадров вдвое, добавив между исходными резкими кадрами их смешанные копии. Затем функцией SelectOdd избавляемся от исходных кадров, затем второй инструкцией SelectOdd избавляемся от половины смешанных кадров. В итоге, если были 4 кадра A B C D, то на выходе конструкции два смешанных кадра AB CD.
В принципе строчку

src.ConvertFPS(src.Framerate*2).SelectOdd.SelectOdd

можно записать так:

src.ConvertFPS(src.Framerate*2).SelectEvery(4,1)

Может даже скорость работы повысится

Dave_Scream
threads поставил 2 вместо 7
Согласно табличке количества потоков для двухъядерного процессора без GPU-ускорения надо указывать 3.

8600GT не поддерживает вычислений
Поддерживает: Совместимость видеокарт. Установите NVIDIA-драйвер с поддержкой OpenCL. Например, 335.28

ошибка происходит в модуле svpflow_cpu
Спасибо за сообщение об ошибке.
Это хорошо, что повторяется. Ошибка однозначно в библиотеке SVP. Будем исправлять. Для этого нам надо три кадра в формате PNG или BMP: 76-ой и оба соседа слева и справа от него.

swiths
MadVR has useful OSD statistics by Ctrl-J hotkey. Especially about dropped and pending frames.
What renderer did you use before?

swiths
ReClock official forum/site. See Readme file in the folder where application installed. Or in the Start button menu - Programs - ReClock - Read Me First! shortcut.

is that because of tearing?
I don't know is it tearing or not, but I see at your picture more than 2 identical frames at 5 positions.

alternative vsync
Use it if you really know what is it. I don't use it because I don't know. I use madVR's windowed overlay or fullscreen exclusive mode to avoid dropped frames.

Yes. ReClock is another DS-filter. It is audio-renderer.
But No. inaccurate is not some filter. Inaccurate is any try to show 59.94 fps at 60.xxx Hz display. ReClock fixes it by change 59.94 speed to 60.xxx speed. See ReClock documentation for more info.

kuusouhime
Intel Xeon E5645 x2
This CPU config use too many threads by default. Every thread needs some memory. MPC-HC crashes because of lack of memory for x86 process. Choose value of threads from SVP tray menu to restrict huge memory use.

swiths
If you want frame-accurate output then use ReClock. It can synchronize video framerate to display refresh rate by correcting speed of audio and video streams.
But frame time stamps marked red is abnormal in any case.

can we verify if AviSynth+ffdshow is doing the selectevery correctly?
Yes.

ScriptClip("subtitle(string(current_frame))")
selectEvery(2, 0, 0, 0, 1, 1)

It shows frame number at left top corner of frame.

Dave_Scream

загружено на 100% только 1 ядро процессора вместо двух
У Вас разве не четырехядерный i5-3570?

в скрипте SVP есть функция SVAnalyse, но параметры в ней идут совсем другие чем в MAnalyze
Да. Параметры записываются с использованием JSON в одну текстовую строку analyse_params. Некоторые параметры изменились, некоторые добавились. Подробное описание параметров там.

как указать чтобы скрипт работал в несколько потоков?
Добавить три строки в соответствующих местах (перед функцией открытия, перед обработкой, в конце скрипта):

SetMTMode(3,[число потоков])
SetMTMode(2)
Distributor()

переписать этот скрипт в более оптимизированный вариант?
Получился скрипт svp_MotionBlur:

global svp_scheduler=true
global threads=7
global multi=4
global blendtimes=2

LoadPlugin("C:\Program Files (x86)\SVP\plugins\svpflow1.dll")
LoadPlugin("C:\Program Files (x86)\SVP\plugins\svpflow2.dll")

function BlendEveryTwoFramesIntoOne(clip src, int HowManyTimes)
{
  blend = src.ConvertFPS(src.Framerate*2).SelectOdd.SelectOdd
  return HowManyTimes<=0 ? src : BlendEveryTwoFramesIntoOne(blend, HowManyTimes-1)
}

SetMTMode(3,threads)
AVIsource("2.avi")
ConvertToYV12()
SetMTMode(2)

super_params="{gpu:1}"
analyse_params="{}"
smoothfps_params="{rate:{num:"+string(multi)+",den:1},scene:{blend:true}}"

super=SVSuper(super_params)
vectors=SVAnalyse(super, analyse_params)
SVSmoothFps(super, vectors, smoothfps_params, mt=threads, url="www.svp-team.com")

BlendEveryTwoFramesIntoOne(blendtimes)

Distributor()

Настраивать три параметра в начале скрипта:
threads=7 - количество потоков, подробнее о выборе значения: Количество потоков
multi=4 - коэффициент повышения частоты кадров вставкой интерполированных кадров
blendtimes=2 - количество смешиваний каждых двух кадров в один
и один параметр в середине:
gpu:1 - использование GPU для построения кадров, 1 - использовать, 0 - не использовать
Для сохранения частоты кадров следить за тем, чтобы multi равнялось двойке в степени blendtimes, возможные пары это (multi:blendtimes): 4:2, 8:3, 16:4 и т.д.

На текущих настройках скрипт между двумя соседними исходными кадрами вставляет три интерполированных и смешивает эти три кадра с исходным кадром. На выходе каждый кадр видео содержит четыре положения движущихся объектов.

Dave_Scream
По порядку обработки:

1. исходник в Lagarith (900x720 @ 60 - после SVP)
Зачем? Если затем применяется функция MFlowBlur, которая строит много промежуточных кадров и смешивает их между собой. Надо оставить исходные 30 к/сек, сложность обработки сразу снизится в 2 раза. Кроме этого отпадет необходимость в последнем вызове SelectOdd.

2. Я думаю, Вы прочитали описание функции MFlowBlur и понимаете, что blur=100 самый затратный способ получения размытия движения, интервал смаза равен одному межкадромому интервалу, т.е. 1/60 сек для 60 к/сек. Далее вызов ConvertFPS(Framerate*2).SelectOdd.SelectOdd дает смешивание двух соседних кадров, выкидывает исходные и выкидывает половину смешанных кадров. Остается 30 к/сек с интервалом смаза 1/60+1/60 = 1/30 сек. Требуется именно такое размытие движения?

3. загружено на 100% только 1 ядро процессора вместо двух
Все верно. В скрипте не указано разделение обработки на потоки для использования многоядерности процессора.

Насчет вопросов:

задача, которую выполняет SVP более сложная
та же самая, только MFlowBlur выполняет намного больше вычислений: SVP считает один-два промежуточных кадра, а MFlowBlur считает пачку таких кадров и еще и смешивает их друг с другом, чтобы получить один кадр на выходе.

может можно как-то переписать этот скрипт, чтобы он использовал более свежие и оптимизированные функции из svp-шных dll
Наверняка можно. Видеокарта ведь имеется? Вроде бы GTX260. Тогда можно еще и ее задействовать. Самостоятельно справитесь?

Dave_Scream
VirtualDub через AVS скрипт обрабатывает всего 3-4 кадра в секунду
А если без сохранения выполнить Run video analysis pass?

Результат работы скрипта мне очень нравится, но скорость просто неприемлема
Какую скорость обработки Вы бы назвали приемлемой?

Open Performance graphs window from SVP tray menu - Information.
What is SVP-index value while playback with video delay? It must be 1x

SmoothRadio
All I did was download and install SVP
If you downloaded SVP Full bundle then MPC HC must be customized for SVP. SVP Core bundle needs to be configured manually.

http://www.svp-team.com/forum/misc.php?item=3182

More info: FAQ # SVP Manager tells "Waiting for ffdshow video..."

Dave_Scream
как перестроить скрипт GameDropFix_v4 под видео с количеством FPS отличным от 60
Ничего перестраивать не надо. Этот скрипт работает одинаково корректно для видео с любой частотой кадров. Хоть 60, хоть 30, хоть 25.

если кадры выпадают и FPS изменяется постоянно
Надо определить для себя какую ПОСТОЯННУЮ частоту кадров выбрать. Сейчас многие выбирают 30 к/сек, т.к. это компромисс плавности движений, затратности на производство, размера видео и возможностей онлайн сервисов (тот же YouTube).

есть ли возможность совместить в одном скрипте GameDropFix_v4 и SVP с наилучшими настройками и самым качественным шейдером и вконце обратно конвертнуть в 30 фпс плавным блендингом?
Теоретическая наверное есть. Но скрипт GameDropFix_v4 очень требовательный к памяти и капризный к многопоточности. Может просто нехватить ресурсов. Плюс нужно иметь некоторую подготовку и свободное время, чтобы заниматься такими экспериментами. Проще сделать эту обработку отдельными этапами. С контролем картинки на выходе каждого этапа. Так даже быстрее получается, как показывает практика.

Dave_Scream
Если есть возможность поменять графическую карту GTX260 на GTX 6xx и выше, то это позволит записывать полноэкраное видео без падения производительности в игре. Приложение называется ShadowPlay (подробнее).

прочитал, про функцию ConvertFPS. Нельзя ли спомощью него сделать псевдо 60 фпс на 30 фпсном видео?
Можно. Как сделать видео 30fps такого же качества?

What status has SVP icon while you point mouse to system tray?

jchrono703
If error in OpenCL-part then it mean CL_DEVICE_NOT_AVAILABLE.
Looks like you point GPU to use in the script but don't have it in the system.

What you did when you got this error?
SVPFlow.avis and movie.60fps.16px.avs are not standard SVP files.
Show source code of these files.

I think you have OpenCL-driver for your GPU properly installed.

2,569

(3 replies, posted in Using SVP)

vicente213
gtx 760
Go to NVIDIA Control Panel - 3D Params - 3D Params management - Vertical Sync - Enable

Dave_Scream
перед выкладыванием на youtube
Youtube поддерживает видео с частотой максимум 30 к/скек.
Какие параметры у Ваших видеозаписей (разрешение, частота кадров)?

чтобы он не только уплавнял, но и восстанавливал выпавшие кадры
SVP сам выпавшие кадры не восстанавливает. Но есть вариант использовать его библиотеки как раз для этой цели: Замена выпавших кадров (drop'ов) и SVP

куда и как этот AVS скрипт подсовывать?
В программу-кодировщик видео. Самое простое - это создавать видео через GDSMux.

Dave_Scream
зависает, когда он только начал уплавнять и ты опять перематываешь.
Так и есть, причем от версии к версии эта особенность то исчезает, то снова появляется. Победить эту проблему полностью на 100% не получается. В принципе, можно приноровиться и перематывать либо быстрее, либо медленнее той скорости нажатий кнопок, на которой зависает чаще всего.

2,572

(15 replies, posted in Using SVP)

GPU/CPU saturation

What? hmm

Enough to guess! Please read ReClock readme file.

2,573

(1 replies, posted in Using SVP)

No. Only one. And for SVP one GTX 770M is enough. wink

2,574

(15 replies, posted in Using SVP)

Mystery
So. What about topic? It is closed?

2,575

(8 replies, posted in Using SVP)

Mystery
You can use double crop for this video: Auto crop black bars + By four pixel on each side.