thedeemon: (Default)
[personal profile] thedeemon
Давно хотел простой способ попиксельно работать с видео, теперь вот, когда очередной раз понадобилось, наконец организовал себе таковой. Сохраняю в текстовом редакторе скрипт, переоткрываю файл в VirtualDub и сразу вижу результат. Для этого потребовалось написать один маленький плагин для AviSynth, который берет в качестве параметра имя файла с исходником на Leo, при загрузке вызывает мой компилятор, тот выдает байткод, который плагин исполняет с помощью LeoVM при обработке каждого кадра. Ависинтовский скрипт выглядит так:
LoadPlugin("leovid.dll")
AviSource("source.avi").ConvertToRGB32().RunLeo("fire.leo")
Его-то я и открываю в VirtualDub'e.

В качестве теста вспомнил детство, когда мы во времена DOS'a и VGA мониторов дергали прерывание 10h для перехода в режим 13h (320x200, 256 цветов) и рисовали там всякие штуки, например, огонь. Помнится, на первом курсе мы соревновались у кого короче получится реализация - рисующая огонь программа занимала около сотни байт. Сейчас модифицировал его алгоритм, чтобы картинка исходного видео задавала вероятности и интенсивности появления источников огня, получился довольно симпатичный эффект:





В оригинале видео более зернистое, ютюб его размазал. Исходник эффекта.

Date: 2010-06-17 04:11 pm (UTC)
From: [identity profile] volodymir-k.livejournal.com
Зачем давать .leo, если гугол не даёт leovid.dll?

Date: 2010-06-17 05:04 pm (UTC)
From: [identity profile] thedeemon.livejournal.com
Чтобы интересующиеся могли увидеть алгоритм.

Profile

thedeemon: (Default)
Dmitry Popov

December 2025

S M T W T F S
 12 3456
789101112 13
14151617181920
21222324252627
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 29th, 2026 06:01 am
Powered by Dreamwidth Studios