"Кинопередвижка" Форум любителей и коллекционеров плёночного кино.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » "Кинопередвижка" Форум любителей и коллекционеров плёночного кино. » AviSynth » Обработка отсканированного материала с помощью AviSynth


Обработка отсканированного материала с помощью AviSynth

Сообщений 1 страница 20 из 49

1

Скрипт который даёт киношный вид,чистит и стабилизирует видео.


--------------------------------------------------------------------------------

Import("C:\Program Files\AviSynth 2.5\plugins\03_RemoveDirtMC.avs")

AVISource("C:\Users\zzzzz2019zzzzz\Desktop\scan12.avi")

LanczosResize(1440,1080)

levels(0, 1.300, 255, 0, 255)

# Стабилизация --------------------------------------------------------------------------------------------
converttoyv12(matrix="rec709")
vectors=MSuper().MAnalyse(isb=false,blksize=8, overlap=0,search=5)
globalmotion=MDepan(vectors,pixaspect=1,thSCD1=500)
DepanStabilize(data=globalmotion,cutoff=0.5,mirror=15,prev=0,next=0,blur=50,pixaspect=1,subpixel=2,method=1)

# чистим шум,зерно
rest=last
calm = rest.temporalsoften(1,255,255,32,2).merge(rest,0.25)#.repair(rest,1).removegrain(11)
calm = calm.temporalsoften(1,255,255,16,2).merge(calm,0.25)
LOP = calm.bicubicresize(180,144).bicubicresize(1440,1080,1,0) # прописать разрешение какое у входного видео
HIP = rest.bicubicresize(180,144).bicubicresize(1440,1080,1,0) # прописать разрешение какое у входного видео
HIP = mt_makediff(rest,HIP)
mix = LOP.mt_adddiff(HIP,U=2,V=2)
sup1=rest.msuper(levels=1)
sup2=mix.removegrain(11).msuper()
bv2=sup2.manalyse(isb=true, delta=2,blksize=16,overlap=8,DCT=5)
bv1=sup2.manalyse(isb=true, delta=1,blksize=16,overlap=8,DCT=5)
fv1=sup2.manalyse(isb=false,delta=1,blksize=16,overlap=8,DCT=5)
fv2=sup2.manalyse(isb=false,delta=2,blksize=16,overlap=8,DCT=5)
rest.mdegrain2(sup1,bv1,fv1,bv2,fv2,thSAD=640)

# очистка от пыли,царапин
RemoveDirtMC(40,false)

# немного шарпим
sharpen(0.4).sharpen(0.4).blur(0.2)

ColorYUV(autogain=true, autowhite=true)
----------------------------------------------------------------------------------------------

2

dan74, хороший эффект!
Хотелось бы уточнить - кроме RemoveDirtMC, остальные фильтры встроенные?
Источник, как я понимаю, был прогрессивным?

И ещё вопрос, как в автоматическом режиме autogain=true удалось сохранить вход-выход из затемнения? Этот фильтр обычно пытается "вытянуть" яркость до "нормы", в результате получается уход в грязно-серый цвет, а не в чёрный. А у Вас всё получилось, как в исходнике.

Отредактировано GreifeR (19-08-2019 20:54:03)

3

GreifeR
Увы с Ависинтом я не на ты,поэтому тонкости работы скрипта для меня тёмный лес. Скрипт взят из этой ветки - Ссылка
Все фильтры(dll имею ввиду) у меня находятся в папке  - C:\Program Files\AviSynth 2.5\plugins\
Источник покадровый скан. А видео файл далее выдаёт программа извлечения звука AEO-Light v1.1.

Отредактировано dan74 (20-08-2019 07:26:49)

4

dan74
Проще исходные фотки открыть в AviSynth. Да и потери качества не будет из-за перекодирования двойного.

5

Huan-Carlos
Давно мечтаю о таком способе,покажите как это сделать.

6

dan74 написал(а):

Huan-Carlos
Давно мечтаю о таком способе,покажите как это сделать.

dan74, как у Вас называются (нумеруются) кадры захвата, в каком они формате?
А лучше залейте куда-нибудь 100-200 кадриков захвата, тогда напишу скрипт для AviSynth.

Отредактировано GreifeR (20-08-2019 16:15:21)

7

Я когда-то делал для "Феникс-клуба" инструкцию на похожую тему. Вот выдержки оттуда, может пригодятся:

7..  А теперь соберём видео из серии картинок.
Для этого нам потребуется создать .avs-файл (исполняемый скрипт для программы AviSynth). Сделать это можно разными способами.
Самый простой - создать в Блокноте текстовой файл .txt, написать в нём следующий текст:
ImageSource("G:\Kino1\Kino1_"+"%d.bmp", 1, 1585, 25)
сохранить, а потом изменить расширение на .avs (все .avs-файлы можно открывать и редактировать с помощью Блокнота).

8.. Несколько пояснений.
ImageSource - говорит программе AviSynth, что нужно открыть файл(ы) картинок.
("G:\Kino1\G:\Kino1\Kino1_"+"%d.bmp" - в скобках и кавычках - путь к файлу, его название и расширение. Kino1_ - префикс названия, "+"%d говорит, что будут открываться файлы с номерами 0, 1, 2 ... 9, 10, 11 и т.д. по очереди. Расширение .bmp в случае, если мы сохраняли в .png, нужно изменить на соответствующее.
, 1, 1585, 25) - в скобках после кавычек и запятой - № первого кадра, № последнего кадра, частота воспроизведения (в примере 25 fps).
Писать надо очень внимательно. Любой неправильный символ приведёт к ошибке!

http://fenixclub.com/uploads/90668/img-587351-162143e323.jpg

9.. Рассмотрим другой вариант:
Картинки в папке без префикса, имеют номера вида 00000, 00001, 00002 .... 00009, 00010 и т.д. (такие номера дают картинкам некоторые программы, ведь не только VirtualDubMod умеет раскладывать на них видео), расширение .PNG и частоту 23,976 fps.  Скрипт в этом случае будет таким:
ImageSource("G:\TRENING\Kino2a\%05d.png", 00000, 00115, 23.976)
Если же номера будут иметь вид  000, 001, 002 ....009, 010, 011 и т.д., тогда вместо %05d нужно написать %03d.

http://fenixclub.com/uploads/90668/img-587405-df24fe0256.jpg

10.. Теперь открываем наш скрипт (avs-файл) в программе VirtualDubMod.
Если всё прошло успешно - поздравляю! Можете кодировать видео,  присоединять аудиодорожку и сохранять уже как видеофайл.
Но это уже другая история...

8

GreifeR
Вот небольшой фото скан в формате jpg - Ссылка

И вот такой вопрос, а когда я перетаскиваю первый кадр из папки со сканами, в окно ВиртуалДаба и сохраняю в видеофайл,это не одно и тоже?

Отредактировано dan74 (20-08-2019 16:47:41)

9

dan74, это не одно и то же.
Если Вы загоняете серию картинок сразу в ВиртуалДаб, то дальше можете пользоваться только фильтрами и настройками Даба.
А если хотите скрипты для Ависинта писать, то надо серию картинок открывать скриптом Ависинта, а потом уже можно писать скрипт дальше (кроп, ресайз, чистка зерна, стабилизация и т.д.)
Дело в том, что Ависинт сам по себе никакого интерфейса не имеет вообще. Нельзя "открыть Ависинт" как другие программы, он невидим. Но это не мешает ему обрабатывать видео по алгоритму, заданному скриптом с расширением .avs, только для того, чтобы видеть, что происходит, нужна какая-нибудь программа-визуализатор. В данном случае (и чаще всего) для этой цели используется ВиртуалДаб (или ВиртуалДабМод). Но avs-скрипты можно открыть и в других программах (СониВегас, Xvid4PSP и др.) Ну и окончательное кодирование видео происходит в ВиртуалДаб(Мод) или Xvid4PSP.

Отредактировано GreifeR (20-08-2019 18:43:07)

10

GreifeR
Спасибо,теперь вроде понятно.

11

dan74, вот скрипт для открытия Ваших картинок:

ImageSource("[Путь к папке]\Images\%08d.jpg", 00000001, 00000410, 24)

Если получится открыть, могу рассказать про дальнейшую обработку (обрезку кадра и т.д.)

Отредактировано GreifeR (20-08-2019 22:31:35)

12

GreifeR
Открыть получилось, но как приспособить это к скрипту в начале темы? Что бы каждый кадр был почищен, стабилизирован.

Отредактировано dan74 (21-08-2019 09:41:35)

13

dan74, попробую сегодня-завтра написать более полный скрипт. Дело в том, что у меня многие фильтры из ваших не установлены, надо вникать. Я чистку и стабилизацию другими фильтрами делаю, но ваш скрипт тоже интересен.
Только у меня несколько вопросов:
1. Планируется ли делать кроппинг по размеру кадра (обрезать звуковую дорожку и прочие лишние поля)?
2. Какой конечный размер кадра надо получить?
3. Требуется ли формировать кадр по правилам для релизов в интернете или для личного просмотра?
4. В какой программе делали окончательное кодирование и в какой формат?
5. На какой стадии Вы извлекаете звук, в какой формат, и как присоединяете звуковую дорожку к видео?
6. Каким образом Вы выбрали числовые значения в фильтре levels(0, 1.300, 255, 0, 255)?

14

GreifeR
Спасибо за участие,но мне так много не надо. Главное Ваша строка избавила от двойного перекодирования,как и писал Huan-Carlos.

Вставил Вашу строчку скрипта в начало скрипта вместо AVISource и сработало. Теперь осталось только звук wav файл прописать и синхронизировать.

Правильно?
audio = WavSource("music.wav") # источник музыки

синхронизировать нашёл  такую строчку - правильно?
Delayaudio(0.05) # смещение в секундах звуковой дорожки относительно видео дорожки, если знак минус, то опережение звука, без знака — отставание

по поводу 5 и 6 вопроса,  извлекаю звук в AEO-Light там и вывожу видео и звук ,  автолевелс прописан как в оригинале скрипта.По ссылке выше.

Отредактировано dan74 (21-08-2019 09:50:06)

15

dan74
про Delayaudio(0.05) правильно, только я дорожку присоединяю в другой программе.

А по поводу применения Вашего скрипта в целом остаются вопросы. Дело в том, что там не все установки автоматические (levels, например). И если в данном конкретном случае получилось удачно, то не факт, что для другого набора картинок эти же установки не ухудшат видео. С Ависинтом нельзя работать вслепую. Это очень сложная программа, но с огромными возможностями, многие из которых недостижимы в "больших" профессиональных видеоредакторах. Ависинт позволяет работать с некачественными и (или) нестандартными исходниками, чем Ваши сканы и являются (как и мои VHS-захваты). Именно поэтому каждый находит свои подходы и скрипты, но они не универсальны. Системных уроков по Ависинту очень мало, поэтому так ценен обмен опытом.

А параметры levels совершенно необходимо подбирать под каждый исходник (в Вашем случае серию картинок) индивидуально, иначе можно сильно навредить. Есть конкретные методы, как определить его параметры объективно, как в Фотошопе по гистограмме.
В Вашем конкретном случае возможные негативные последствия сглаживаются командой autogain=true, но это может сработать не всегда.

Отредактировано GreifeR (21-08-2019 10:02:47)

16

dan74

я пользуюсь другим фильтром
CoronaSequence("F:\test\sve*.jpeg")
AssumeFPS(24)
ConvertToYV12()

соотвественно, чтобы все работало надо заменить строчку AVISource("C:\Users\zzzzz2019zzzzz\Desktop\scan12.avi") на эти 3.

17

Huan-Carlos
а ссылку на CoronaSequence можете дать? Что-то не могу найти такой фильтр...

18

GreifeR
наверное вот это - Ссылка

19

dan74, Huan-Carlos, спасибо, интересный фильтр!

Отредактировано GreifeR (21-08-2019 11:11:42)

20

на заметку

Простейший скрипт, ничего лишнего. Только стабилизация и чистка.

----------------------------------------------------------------------------------------

AVISource("C:\Users\zzzzz2019zzzzz\Desktop\8889.avi")

#  стабилизация
maxstabH=50  #максимальные значения для стабилизатора
maxstabV=50
mdata=DePanEstimate(last,trust=1.0,dxmax=maxstabH,dymax=maxstabV)
DePanStabilize(last,data=mdata,dxmax=maxstabH,dymax=maxstabV,method=1,mirror=15,cutoff=1,damping=1,prev=0,next=0,blur=0)

# очистка от пыли,царапин
RemoveDirtMC(40,false)

Отредактировано dan74 (07-09-2019 20:56:32)


Вы здесь » "Кинопередвижка" Форум любителей и коллекционеров плёночного кино. » AviSynth » Обработка отсканированного материала с помощью AviSynth