Const2k
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Уточню пару моментов. Цитата: Во всех этих плагинах встречается перед началом строчка с изменением цветности. Поясни когда это может быть надо. | Цветовых семейств, вообще, не менее 5 (наиболее используемые: CIE, RGB, YUV, HSL/HSV, CMYK), но AviSynth 2.5.x может работать только с двумя: RGB и YUV. Некоторые плагины работают только в определенном цветовом пространстве, и для их использования иногда приходится конвертировать RGB <-> YUV. Например, альфа-канал (прозрачность, маски) поддерживает только RGB32. Нужно стараться работать только в цветовых пространствах внутри того же семейства, что и в исходном материале, потому что конверсия между RGB и YUV приводит к неисправимым искажениям цветов. Это едва заметно, но при нескольких таких конверсиях цвета "уплывают" сильнее. Кроме того, RGB32 обрабатывается быстрее RGB24 из-за меньших "накладных расходов". Работа в YUV требует четных высоты и ширины кадра, т.к. яркость Y у каждого пиксела своя, а цветность UV общая у квадрата 2х2 пиксел. http://avisynth.org/mediawiki/FAQ_YV12 Скорость обработки: (быстрее) YV12 > YUY2 > RGB32 > RGB24 (медленнее) Некоторые кодировщики требуют определенного цветового пространства; например, TMPGEnc поддерживает только RGB24. Цитата: чем лучше вводить фильм для разных форматов (например Xvid, MPEG2, DV, несжатый)? | AviSource() для Xvid/DivX в *.avi; MPEG2Source() отсюда для *.mpg/*.m2v/*.d2v/*.vob и прочего MPEG1 и MPEG2 "как есть" либо после индексирования; FFmpegSource() для всего остального; DSS2() (avss.dll из Haali Media Splitter) для обработки VFR-источников (с переменной частотой кадров) - он выводит кадры с постоянной частотой кадров (делает CFR из VFR), т.е. так, как их показывает видеоплеер; DirectShowSource() в самом крайнем случае т.к. он без покадровой точности. Цитата: Если применять плагин для куска видео, то нужно сначала вырезать этот кусок видео, а потом дальше по коду склеивать? | Если фильтров мало, то так, как unreal666 сказал. Если много, проще порезать видео на куски, обработать каждый отдельно и склеить в конце: src = FFmpegSource("test.mkv") N = 100 # можно и явно указать в нарезке ниже M = 200 part1 = src.Trim(0, N) # Цепочка фильтров 1 part2 = src.Trim(N+1, M) # Цепочка фильтров 2 part3 = src.Trim(M+1, 0) # Цепочка фильтров 3 return part1+part2+part3 # Строки скрипта, идущие после первого return, не обрабатываются Цитата: а как тогда все таки узнать какой цеветовой формат RGB24 или RGB32? | Добавить Info() в конце скрипта или открыть видео в AvsP и посмотреть на строку состояния в низу окна. |