Сайт | Пользователи | Кто в онлайне? | Поиск
AKPOCC Форум » ОСНОВНЫЕ ФОРУМЫ » ТЕХНИЧЕСКАЯ ЧАСТЬ » VapourSynth
 Логин
 Пароль
 Регистрация :: Забыли пароль?
Страницы: (4) « [1] 2 3 4 » ответить новая тема новое голосование
 Тема: VapourSynth (все вопросы и советы по использованию)« Предыдущая тема | Следующая тема » 
Artofeel 
01001000 00101011
 Сообщений: 1824
 Автор АКРОССа
 
Профиль Личные сообщения   ЦИТАТА
main
doom9
ChangeLog

В чем преимущества?
-полная мультипроцессорность
-новые цветовые пространства
-язык программирования Python (хотя сомнительно, если ты не проггер)
-практически полная поддержка плагинов Avisynth
-плюс еще что то там, до чего у меня еще руки не дошли проверить..

Специально для особо ленивых, я собрал полный пак всего что нужно (и не очень нужно) для работы.
http://pc.cd/aCbotalK
В авхиве запакованно все то что папке рядом. Качайте что нужно.


Для работы необходим Python
поселению 3ю версию (32 и 64 бита)

Для автозагрузки плагинов, они должны быть помещены в следующие директории
для 32 битных:
VapourSynth\plugins32
для 64 битных:
VapourSynth\plugins64

для ручной загрузки плагинов, используется следующая строка:
Исходный код
core.std.LoadPlugin(path=r'F:\VapourSynth\filters\avisource.dll')



Для легкого создания скрипта, используйте прикрепленный к этому посту .bat файл
запустите его для инсталляции\удаления
если выбрать добавление в контекстное меню проводника, то создание скрипта осуществляется простой командой:
RMB -> VapourSynth
ну или просто drag-and-drop файлы на самом VapourSynth.bat

в батнике есть два дополнительных режима
debug и advanced
первый для отладки, второй для дополнительных опций
просто откройте .bat файл в блокноте и замените 0 на 1


Далее самое основное для написания скрипта:

Открытие avi файла без альфы
Исходный код
# первые две строчки обязательны
import vapoursynth as vs
core = vs.get_core()
# открытие видео файла; переменная v теперь видео объект
v = core.avisource.AVISource(path=r'c:\video\render.avi')
# добавление пустой альфы, нужно для совместимости
v = core.resize.Bicubic(v, format=vs.COMPATBGR32)
# установка на вывод видео
v.set_output()

"r" перед путем нужна для того чтобы использовать один \ без нее придется писать два: F:\\VapourSynth\\filters

Открытие avi файла с альфой
Исходный код
import vapoursynth as vs
core = vs.get_core()
v = core.avisource.AVISource(path=r'c:\video\render.avi')
v = core.resize.Bicubic(v[0], format=vs.COMPATBGR32)
v.set_output()

avisource помещает два видео в массив, т.е. v[0] это RGB, а v[1] это Gray альфа
соответственно, простое обращение к "v" как к видео потоку, невозможно.
данная функция обращается к RGB и дорисовывает пустую альфу
resize.Bicubic не делает никакого ресайза, результат побитово совпадает с оригиналом.
а если не добавлять эту строчку и вывести RGB так: v[0].set_output()
получим:
Цитата
VFW module doesn't support RGB24 output                                                

*альфу подобным образом, вывести можно.

Если видео выводится верх тормашками, добавляем перед "v.set_output()", следующую строку
Исходный код
v = core.std.FlipVertical(v)


Открытие любых других форматов через FFMS2:
Исходный код
import vapoursynth as vs
core = vs.get_core()
v = core.ffms2.Source(source=r"C:\Video\source.mkv")
v.set_output()

Все предельно просто.

Если ffms2 фейлит, можно попробовать LSMASHSource:
Исходный код
import vapoursynth as vs
core = vs.get_core()
v = core.lsmas.LibavSMASHSource(source=r"C:\Video\source.mkv")
v.set_output()

или
Исходный код
import vapoursynth as vs
core = vs.get_core()
v = core.lsmas.LWLibavSource(source=r"C:\Video\source.mkv")
v.set_output()



Открытие сиквенса
плагин качать здеcь
Исходный код
import vapoursynth as vs
core = vs.get_core()
import os
ext = '.png'
dir = r'C:\Video\render/'
srcs = [dir + src for src in os.listdir(dir) if src.endswith(ext)]
v = core.imwrif.Read(srcs)
v = core.std.AssumeFPS(clip=v, fpsnum=30, fpsden=1)
v.set_output()

ext — расширение файлов
dir — директория, обязательно должна оканчиваться на: / иначе файлы не откроются, также не забываем про волшебную "r"
для задания корректного фпс, юзаем AssumeFPS с fpsnum=30, fpsden=1 — где первое это numerator, а второе denominator соответственно.
Если сортировка работает некорректно, например если у вас начало сиквенса на 3х-значном числе (001) а конец на 4-5-значном (5621), то вам следует либо переименовать недостающие файлы, либо использовать следующую строчку для "srcs" переменной
Исходный код
srcs = sorted([dir + src for src in os.listdir(dir) if src.endswith(ext)], key = lambda x: int(x.split("_")[2].split(".")[0]))

где split("_") это символ разделителя между именем и цифрой
Спасибо aZZe :)


Написание AviSynth кода прямо в вайпе:
Исходный код
import vapoursynth as vs
core = vs.get_core()
core.avs.LoadPlugin(path=r'C:\DGDecNV\DGDecodeNV.dll')
v = core.avs.DGSource("C:\Video\source.dgi")
v.set_output()

.vpy скрипт также можно открыть ависинтом, обычным AviSource, при условии что на выходе поддерживаемое видео. Также можно открыть .avs скрипт в VapourSynth через core.avisource.AVISource

Конвертирование цветовых пространств / Глубины цвета / Ресайз
плагин качать здеcь
из YUV в RGB
Исходный код
v = core.fmtc.resample(v, css="444", kernel="spline64")
v = core.fmtc.resample(v, w=1280, h=720, kernel="spline64")
v = core.fmtc.matrix(v, mat="709", col_fam=vs.RGB, fulls=1, fulld=1)
v = core.fmtc.bitdepth(v, bits=8, dmode=3)

из RGB в YUV
Исходный код
v = core.fmtc.matrix(v, mat="709", col_fam=vs.YUV, bits=16, fulls=1, fulld=1)
v = core.fmtc.resample(v, css="420", kernel="point")
v = core.fmtc.bitdepth(v, bits=8, dmode=3)

плагин работает в максимально-качественнном режиме, т.е. только в 4:4:4 и конвертирует 8 бит в float (32 бита) или работает в 16 битах если они были изначально.
Все это направлено на получение более лучшего результата (на мой взгляд спорно) ценой потери скорости вычисления...

dmode=3 — это дихтеринг
дихтеринг срабатывает при следующих условиях:
- при уменьшении глубины цвета с 16\32 до 8, или 32 до 16
- при конвертировании PC Range <-> TV Range у 8\16 битных форматов
собсно может быть:
0 Ordered dithering (Bayer matrix).
1 No dither, round to the closest value.
2 Round, may be a bit faster but possibly less accurate.
3 Sierra-2-4A error diffusion, aka “Filter Lite”. Quick and excellent quality.
4 Stucki error diffusion. Preserves delicate edges better but distorts gradients.
5 Atkinson error diffusion. Generates distinct patterns but keeps clean the flat areas.
6 Floyd-Steinberg error diffusion. Classic.
7 Ostromoukhov error diffusion. Slow, available only for integer input at the moment.

mat="709" — матрица, могёт:
"601" ITU-R BT.601 / ITU-R BT.470-2 / SMPTE 170M. For Standard Definition content.
"709" ITU-R BT.709. For High Definition content.
"240" SMPTE 240M
"FCC" FCC
"YCgCo" YCgCo
"RGB" RGB. Identity, no cross-plane calculations.

fulls=1 — PC Range на входе (если не указывать, то ставится на 1 если RGB на входе)
fulld=1 — PC Range на выходе (если не указывать, то ставится на 0 если YUV на выходе)

css="###" — цветовая субдискретизация:
"444" or "4:4:4" 4:4:4, no chroma subsampling.
"422" or "4:2:2" 4:2:2, horizontal 2x chroma subsampling.
"420" or "4:2:0" 4:2:0, horizontal and vertical 2x chroma subsampling.
"411" or "4:1:1" 4:1:1, horizontal 4x chroma subsampling.
т.к. плагин работает только c 4:4:4, перед операциями нужно конвертить именно в нее, если сорс не в ней.
уменьшение следует добавлять перед строчкой с уменьшением битности.

w=1280, h=720 — ресайз, kernel отвечает за способ, может быть:
"point" Nearest neighbour interpolation. Same as Avisynth’s PointResize.
"rect" or "box" Box filter.
"linear" or "bilinear" Bilinear interpolation. Same as Avisynth’s BilinearResize.
"cubic" or "bicubic" Bicubic interpolation. Same as BicubicResize. The b and c variables are mapped on a1 and a2 and are both set to 1/3 by default.
"lanczos" Sinc function windowed by the central lobe of a sinc. Use taps to specify its impulse length. Same as LanczosResize.
"blackman" Blackman-Harris windowed sinc. Use taps to control its length. Same as BlackmanResize.
"blackmanminlobe" Another kind of Blackman windowed sinc, with a bit less ringing. Use taps for you know what.
"spline16" Cubic spline based kernel, 4 sample points. Same as Spline16Resize.
"spline36" Spline, 6 sample points. Same as Spline36Resize.
"spline64" Spline, 8 sample points. Same as Spline64Resize.
"spline" Generic splines, number of sample points is twice the taps parameter, so you can use taps = 6 to get a Spline144Resize equivalent.
"gauss" or "gaussian" Gaussian kernel. The p parameter is mapped on a1 and controls the curve width. The higher p, the sharper. It is set to 30 by default. This resizer is the same as GaussResize, but taps offers a control on the filter impulse length. For low p values (soft and blurry), it’s better to increase the number of taps to avoid truncating the gaussian curve too early and creating artifacts.
"sinc" Truncated sinc function. Use taps to control its length. Same as SincResize.




Итак, закономерный вопрос: для чего все это нафик нужно?
Ну например:

1. Открыть 10бит рип, правильно.
Исходный код
import vapoursynth as vs
core = vs.get_core()
v = core.ffms2.Source(source='C:\Video\Steins;Gate\[Yousei-raws] Steins;Gate 01 [BDrip 1920x1080 x264 FLAC].mkv')
v = core.resize.Bicubic(v, format=vs.YUV422P10)
enable_v210=True
v.set_output()

В итоге получаем v210 поток, который корректно открывается в последних експерементальных VDub билдах
т.к. лосслесс компресора для данного видео пока нету, при нарезке нужно выставить режим Direct-Stream-Copy
Полученное таким образом видео, отлично принимается AE
и не смущайтесь строчки
Исходный код
core.resize.Bicubic(v, format=vs.YUV422P10)

она не конвертирует YUV420P8 в YUV422P10, нет
она конвертирует YUV420P10 в YUV422P10, ибо это стандарт v210 видео, т.е. эта строчка не нужна, если видео изначально в 4:2:2


2. Закодить труЪ 10бит
Именно, правельные 10бит десятибитным енкодером, а не 8бит десятибитным енкодером.
Для этого нужно, вывести 16 бит на канал, единственный способ, это Image Sequence, в png (tif на данный момент не поддерживается плагином)

Как вывести 48 битный png, я думаю знают все, но вкраце опишу для AE:
в Output модуле задаем "PNG Sequence", в Depth выставляем "Trillions of Colors"
в настройках рендера, там где "Color Depth" ставим "16 bits per channel"
в итоге получится RGB48 (16+16+16)
Учтите, что АЕ по умолчанию задает трехзначное число, т.е. начало с 000, т.к кол-во кадров может быть болеее 1000 или 10000, нужно выставить 5-6 значный шаблон [#####]

далее делам скрипт, типа этого:
Исходный код
import vapoursynth as vs
core = vs.get_core()
import os
ext = '.png'
dir = 'С:\Video\render/'
srcs = [dir + src for src in os.listdir(dir) if src.endswith(ext)]
v = core.imwri.Read(srcs)
v = core.std.AssumeFPS(clip=v, fpsnum=30, fpsden=1)
v = core.fmtc.matrix(v, mat="709", col_fam=vs.YUV, bits=16, fulls=1, fulld=1)
v = core.fmtc.resample(v, css="422")
v = core.fmtc.bitdepth(v, bits=10, dmode=3)
v = core.resize.Bicubic(v, format=vs.YUV422P10)
enable_v210=True
v.set_output()

и далее запускаем енкод таким образом
Исходный код
F:\VapourSynth\core\vspipe.exe "C:\Scripts\myVapourScript.vpy" - --y4m | x264 - --demuxer y4m --input-range pc --input-depth 10 --output-csp i422 -o out.264

в итоге получаем труъ 10бит которые мало кто увидит, т.к мониторы у большинства 8битные, хе-хе



Ну и на последок, немного "виртуальной магии"
VapourSynth поддерживает Pismo File Mount
Что это такое?
Это что типа локальной виртуальной среды
т.е. можно взять и превратить написанный скрипт в папку в которой будет лежать выходящее видео в Uncompressed формате, размером в десятки-сотни гигабайт, а то и в терабайт, но физически его не существует на самом деле, зато программы (в не зависимости какой битности, хоть 32, хоть 64) будут думать что работают именно с Uncompressed видео :3
Иными словами, это лучще чем avi-пустышки, хотя бы потому что позволяют редактировать скрипт "на лету", да и стабильнее.
Что для этого нужно?
Нужно установить Pismo File Mount Audit Package (pfmap-###-win.exe)
Если вы установили вайпосинт до установки pismo, то нужно либо установить вайпосинт заного (там будет галочка для включения), либо открыть коммандную строку и написать следующее:
Исходный код
pfm register "F:\VapourSynth\core64\vsfs.dll"

А далее все просто, нажимает ПКМ на скрипте, и щелкаем "Quick Mount"
Для размонтировки, щелкаем на папке "Unmount"

В новых версия более нет интеграции с системой, есть avfs.exe в корневой дирректории вайпосинта (core32\core64)
Чтобы монтировать скрипт, нужно перетащить его на avfs.exe
А можно сделать ярлык в SendTo (USERPROFILE%\SendTo) для avfs.exe и монтировать скриты через "Отправить"
К слову, вы также можете монтировать avs скрипты.


Исправил(а): Artofeel, 13 декабря 2017, 19:07

Скачать файл [ Zip File ]
Количество закачек: 246

--------------
We will never know world peace, until three people can simultaneously look each other straight in the eye
Отправлено: 06 августа 2013, 16:08 | Зарегистрирован: 26 апреля 2008
Fynjy 
Фин*** Жи*
 Сообщений: 4243
 Автор АКРОССа
 
Профиль Личные сообщения   ЦИТАТА
полезненько, норм написал.

Цитата (Artofeel @ 06 августа 2013, 17:08)
Для работы необходим Python

python х86 ток.


Добавлено (через 2 мин. и 21 сек.):

в смысле без х64.
Отправлено: 06 августа 2013, 19:51 | Зарегистрирован: 28 октября 2003
Artofeel 
01001000 00101011
 Сообщений: 1824
 Автор АКРОССа
 
Профиль Личные сообщения   ЦИТАТА
Цитата (Fynjy @ 06 августа 2013, 22:51)
python х86 ток.
а да
а я думал про что я забыл :)
возможно в следующей версии уже будет 64, т.к. автор обещал именно 64битную поддержку

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


--------------
We will never know world peace, until three people can simultaneously look each other straight in the eye
Отправлено: 06 августа 2013, 22:31 | Зарегистрирован: 26 апреля 2008
Artofeel 
01001000 00101011
 Сообщений: 1824
 Автор АКРОССа
 
Профиль Личные сообщения   ЦИТАТА
в новых версиях добавлена автозагрузка плагинов, поправил инструкцию соответственно
асло, 64 бита :3


--------------
We will never know world peace, until three people can simultaneously look each other straight in the eye
Отправлено: 14 января 2014, 10:47 | Зарегистрирован: 26 апреля 2008
Sef 
 Сообщений: 2
 Зритель
 
Профиль Личные сообщения  ЦИТАТА
Привет Всем! Добавтьте в пояснение про avs скрипты еще по одной ("). avs = """   """. Я пол дня парился, пока разобрался  :smile:
Отправлено: 01 февраля 2014, 08:34 | Зарегистрирован: 01 февраля 2014
Artofeel 
01001000 00101011
 Сообщений: 1824
 Автор АКРОССа
 
Профиль Личные сообщения   ЦИТАТА
Цитата (Sef @ 01 февраля 2014, 10:34)
Добавтьте в пояснение про avs скрипты еще по одной ("). avs = """   """.
там нет никаких: "
там нужно использовать: '


--------------
We will never know world peace, until three people can simultaneously look each other straight in the eye
Отправлено: 01 февраля 2014, 12:17 | Зарегистрирован: 26 апреля 2008
Sef 
 Сообщений: 2
 Зритель
 
Профиль Личные сообщения  ЦИТАТА
Пардон, мелкий шрифт-не разглядел!  :smile:  А про (") вычитал на doom9, в ветке автора плагина..

Исправил(а): Sef, 01 февраля 2014, 15:51
Отправлено: 01 февраля 2014, 15:49 | Зарегистрирован: 01 февраля 2014
Artofeel 
01001000 00101011
 Сообщений: 1824
 Автор АКРОССа
 
Профиль Личные сообщения   ЦИТАТА
Как истинный BATman написалл батник для two-click создания .vpy скриптов (см. первый пост)
поместите его в корневую директорию VapourSynth'a
создайте ярлык (не копию) в папке:
%APPDATA%\Microsoft\Windows\SendTo
далее:
RMB -> SendTo -> VapourSynth
ну или просто drag-and-drop файлы на самом VapourSynth.bat

в батнике есть два дополнительных режима
debug и advanced
первый для отладки, второй для дополнительных опций
просто откройте .bat файл в блокноте и замените 0 на 1


--------------
We will never know world peace, until three people can simultaneously look each other straight in the eye
Отправлено: 23 февраля 2014, 11:22 | Зарегистрирован: 26 апреля 2008
Artofeel 
01001000 00101011
 Сообщений: 1824
 Автор АКРОССа
 
Профиль Личные сообщения   ЦИТАТА
изменения в батнике:
— открытие vpy скриптов теперь выводит информацию, плюс есть возможность вывести RAW видео
— добавил что то типа Install модуля, батник копируется на нужное место и предлагается добавиться в контекстное меню проводника (метод с ярлыком в SendTo более не актуален). Также есть Uninstall модуль, они запускаются по двойному клику на батнике (т.е. без входного файла)
— плюс мелкие фиксы, там и там


--------------
We will never know world peace, until three people can simultaneously look each other straight in the eye
Отправлено: 26 февраля 2014, 14:03 | Зарегистрирован: 26 апреля 2008
Artofeel 
01001000 00101011
 Сообщений: 1824
 Автор АКРОССа
 
Профиль Личные сообщения   ЦИТАТА
исправил ошибку при использовании контекстного меню
раньше если путь к файлу содержал пробелы, то ничего не работало
чтобы исправить уже установленную версию, ее нужно удалить
запустить батник > деинсталлировать > установить заново


--------------
We will never know world peace, until three people can simultaneously look each other straight in the eye
Отправлено: 23 марта 2014, 13:10 | Зарегистрирован: 26 апреля 2008
Artofeel 
01001000 00101011
 Сообщений: 1824
 Автор АКРОССа
 
Профиль Личные сообщения   ЦИТАТА
изменения в батнике:
— исправил ошибку, теперь имя\путь к файлу, могут содержать ! (восклицательный знак)


--------------
We will never know world peace, until three people can simultaneously look each other straight in the eye
Отправлено: 05 апреля 2014, 11:03 | Зарегистрирован: 26 апреля 2008
alexxdls 
 Сообщений: 9
 
 
Профиль Личные сообщения  ЦИТАТА
Исходный код
d:\TRAILERS\DCP\MOCKINGJAY-PT1_TLR-1_S_RU-XX_RU_51_2K_LION_20140729_DLA_IOP_OV>"
c:\Program Files (x86)\VapourSynth\core32\vspipe.exe" "myVapourScript.vpy" - -y4
m   | x264 - --demuxer y4m --input-depth 10 --output-csp i444 -o out.264
NULL name pointer passed to createFilter()
Чем может быть вызвана ошибка? Всё сделал по инструкции.
Исходный код
import vapoursynth as vs
core = vs.get_core()
import os
ext = '.png'
dir = r'd:\TRAILERS\DCP\MOCKINGJAY-PT1_TLR-1_S_RU-XX_RU_51_2K_LION_20140729_DLA_IOP_OV\PNG/'
srcs = [dir + src for src in os.listdir(dir) if src.endswith(ext)]
v = core.imgr.Read(srcs,24,1)
v = core.fmtc.matrix(v, mat="709", col_fam=vs.YUV, bits=16, fulls=1, fulld=1)
v = core.fmtc.bitdepth(v, bits=10, dmode=1)
v.set_output()
Отправлено: 01 августа 2014, 15:56 | Зарегистрирован: 01 августа 2014
Artofeel 
01001000 00101011
 Сообщений: 1824
 Автор АКРОССа
 
Профиль Личные сообщения   ЦИТАТА
а сам скрипт нормально открывается? (тем же VirtualDub'ом)
можно еще попробовать вывести RAW, и его уже кодить
Исходный код
vspipe.exe "myVapourScript.vpy" "путь\имя_файла" -y4m -progress


--------------
We will never know world peace, until three people can simultaneously look each other straight in the eye
Отправлено: 01 августа 2014, 22:46 | Зарегистрирован: 26 апреля 2008
alexxdls 
 Сообщений: 9
 
 
Профиль Личные сообщения  ЦИТАТА
Я заменил плагин чтения картинок на пофиксенный (по совету с doom9), но теперь другая трабла
Исходный код
d:\TRAILERS\DCP\MOCKINGJAY-PT1_TLR-1_S_RU-XX_RU_51_2K_LION_20140729_DLA_IOP_OV>"
c:\Program Files (x86)\VapourSynth\core32\vspipe.exe" myVapourScript.vpy - -y4m
 | x264 - --demuxer y4m --input-depth 10 --output-csp i444 -o out.264
Script evaluation failed:
Python exception: matrix: only constant pixel formats are supported.
Traceback (most recent call last):
 File "vapoursynth.pyx", line 1148, in vapoursynth.vpy_evaluateScript (src\cyth
on\vapoursynth.c:18441)
 File "myVapourScript.vpy", line 8, in <module>
   v = core.fmtc.matrix(v, mat="709", bits=16, fulls=1, fulld=1)
 File "vapoursynth.pyx", line 1071, in vapoursynth.Function. (src\cytho
n\vapoursynth.c:17443)
vapoursynth.Error: matrix: only constant pixel formats are supported.
Даб ту же ошибку кажет.
Сиквенс из таких картинок http://i66.fastpic.ru/big/2014/0801/d3/_9ada951654a9e224662df391d0eee6d3.png?noht=1


Исправил(а): alexxdls, 01 августа 2014, 22:57
Отправлено: 01 августа 2014, 22:52 | Зарегистрирован: 01 августа 2014
Artofeel 
01001000 00101011
 Сообщений: 1824
 Автор АКРОССа
 
Профиль Личные сообщения   ЦИТАТА
странно
можно попробовать без fmtc, так
Исходный код
import vapoursynth as vs
core = vs.get_core()
import os
ext = '.png'
dir = r'd:\TRAILERS\DCP\MOCKINGJAY-PT1_TLR-1_S_RU-XX_RU_51_2K_LION_20140729_DLA_IOP_OV\PNG/'
srcs = [dir + src for src in os.listdir(dir) if src.endswith(ext)]
v = core.imgr.Read(srcs,24,1)
v.set_output()


и если открывает, то
Исходный код
import vapoursynth as vs
core = vs.get_core()
import os
ext = '.png'
dir = r'd:\TRAILERS\DCP\MOCKINGJAY-PT1_TLR-1_S_RU-XX_RU_51_2K_LION_20140729_DLA_IOP_OV\PNG/'
srcs = [dir + src for src in os.listdir(dir) if src.endswith(ext)]
v = core.imgr.Read(srcs,24,1)
v = core.fmtc.matrix(v, mat="709", col_fam=vs.YUV, css="422", bits=16, fulls=1, fulld=1)
v = core.fmtc.bitdepth(v, bits=10, dmode=1)
enable_v210=True
v.set_output()


--------------
We will never know world peace, until three people can simultaneously look each other straight in the eye
Отправлено: 02 августа 2014, 10:53 | Зарегистрирован: 26 апреля 2008
 51 ответов после 06 августа 2013, 16:08 « Предыдущая тема | Следующая тема » 
  [ Подписаться на тему :: Отправить тему на email :: Версия для принтера ]ответить новая тема новое голосование  
  Страницы: (4) « [1] 2 3 4 »
AKPOCC Форум » ОСНОВНЫЕ ФОРУМЫ » ТЕХНИЧЕСКАЯ ЧАСТЬ » VapourSynth


Рейтинг@Mail.ru   Rambler's Top100     Яндекс.Метрика