Помогите со скриптом для AviSynth

Страницы :   Пред.  1, 2, 3, 4, 5, 6, 7, 8, 9  След.
Ответить
 

Handino

Победители спортивных конкурсов

Стаж: 13 лет 7 месяцев

Сообщений: 2984

Handino · 17-Апр-13 11:57 (11 лет 7 месяцев назад)

Tempter57
не собирался бросать ваш скрипт, прохожу постепенно, очень интересно увидеть результат, плюс к тому приобрести опыт обработки VHS который пригодится и в дальнейшем (VHS у меня не одна единственная), будет у меня другой исходник или нет, - неважно, суть-то обработки от этого не поменяется. Хотя бы уже буду знать что и к чему применять.
Результаты, естественно, сообщу.
Ночью экспериментировал с Depuse в режиме отладки, наиболее подходящими параметры, ну по крайней мере на мой взгляд, h=20 l=200 d=20 - очень хорошо детектирует светлые и темные полосы и их уже практически не остается.
Ремонт полосы нарезки - хотел посмотреть как работает, но у меня видимо с плагинами какая-то нестыковка, VirtualDub вылетает и ошибки не выдает, разбираться не стал, на этом пока и остановился.
Продолжу в ближайшее время.
Чтобы не быть голословным про участки, которые считаю, что не один фильтр не осилит, скину сэмпл, как вернусь домой, там действительно в кадрах информация просто потеряна и фильтрам неоткуда её взять чтобы восстановить...
Вот эти участки и хочу взять с другого исходника, не хотелось бы возиться с ними в фотошопе...
А эти цв. полосы, думаю, что исчезнут с MCompensate окончательно, они же уже почти исчезли шумодавом Megrain3... deVCR - бесполезный фильтр для этого видео.
[Профиль]  [ЛС] 

Tempter57

Стаж: 16 лет 1 месяц

Сообщений: 4960

Tempter57 · 17-Апр-13 14:06 (спустя 2 часа 9 мин.)

Handino писал(а):
58898357VirtualDub вылетает и ошибки не выдает, разбираться не стал, на этом пока и остановился.
Скрипт черезвычайно тяжёл и скорее всего происходит утечка памяти, первой строкой скрипта обязательно установите ограничение потребления памяти setmemorymax(640) и используйте меньше потоков обработки, если у вас 4-х ядерник, например, установив перед строкой загрузки video=... setmtmode(5,3) или даже setmtmode(5,2)
[Профиль]  [ЛС] 

Handino

Победители спортивных конкурсов

Стаж: 13 лет 7 месяцев

Сообщений: 2984

Handino · 17-Апр-13 16:55 (спустя 2 часа 48 мин.)

Tempter57
Скрипт прошёл, кроме "Ремонта полосы нарезки", не знаю по какой причине, но вот именно на нём происходит сбой в работе VirtualDub, закомментируешь строки этого раздела - дальше всё работает [Комп у меня достаточно старый (лет 7)], хоть указывай setmemorymax(640), хоть не указывай, отличий никаких на первый взгляд.
setmtmode этой функции, насколько понимаю, нет в 2,5 версии.
Ну, не суть важно, полосы нарезки не вижу, результат обработки могу судить только в покадровом исполнении, так как процессор загружен по полной .
Раньше записывал для себя номера проблемных кадров, - сейчас проверил - нет ни единой цветной полосы, все они исчезли, исходник и результат обработки - небо и земля, настолько хорошо ваш скрипт вычистил исходник!
Те проблемные места о которых упоминал выше, они конечно здорово поразмылись, вычистились, но тем не менее, повторюсь, что фильтрам неоткуда взять информацию, чтобы их восстановить к первоначальному виду.
Остались некоторые проблемные кадры, неожиданно появляющиеся белые пятна, какие-то ляпы от съемки, кривые черные полосы... но это всё мелочи, скинуть 15-20 кадров в jpg и быстро их подредактировать, это не проблема.
Деинтерлейс тоже пока не делал, хотел посмотреть результат...
Планирую эти проблемные места всё-таки взять с другого исходника или если другой исходник будет лучше, то обработать его.
Вот, для примера, два сэмпла с помехами, просто для ознакомления, не более.
Сэмпл 1
Сэмпл 2
Второй исходник будет не скоро, пока есть время поразбираться со скриптом и потренироваться на другом материале.
Ещё раз огромное вам спасибо за помощь! Видео просто преобразилось
P.S. про цветовой сдвиг разобрался, когда сделаешь сдвиг пикселов на 12 сразу заметишь, что это такое
А вот про дебандинг пока не понял зачем...
MedianblurT(0,0,0,1) оказалось вполне достаточно...
[Профиль]  [ЛС] 

Tempter57

Стаж: 16 лет 1 месяц

Сообщений: 4960

Tempter57 · 17-Апр-13 21:06 (спустя 4 часа)

Handino
На сэмплах трекинг был не выставлен на видеомагнитофоне, вот и гуляют такие полосы, это труба, только вырезать такие участки надо, если не сохранилось видеокассеты. А так можно либо трекинг подстроить на видеомагнитофоне, либо подрегулировать звуковую головку, там на ней снизу и головка синхронизации и не мешало бы выставить на осциллографе пакет ЧМ, подкрутив наклон звуковой головки и стойки, обжимающие барабан БВГ.
[Профиль]  [ЛС] 

Handino

Победители спортивных конкурсов

Стаж: 13 лет 7 месяцев

Сообщений: 2984

Handino · 18-Апр-13 15:14 (спустя 18 часов)

Tempter57 писал(а):
58906579Handino
На сэмплах трекинг был не выставлен на видеомагнитофоне, вот и гуляют такие полосы, это труба, только вырезать такие участки надо, если не сохранилось видеокассеты. А так можно либо трекинг подстроить на видеомагнитофоне, либо подрегулировать звуковую головку, там на ней снизу и головка синхронизации и не мешало бы выставить на осциллографе пакет ЧМ, подкрутив наклон звуковой головки и стойки, обжимающие барабан БВГ.
Tempter57
Спасибо, сам не за что бы не догадался. Давно не имел дел с видеомагнитофонами. Оказывается проблема в головке ВМ. Странно, что без шумовых выбросов идёт PAL, NTSC, а вот на кассетах SECAM L или K7 как раз и появляется периодический выброс, на данной кассете полос много, на других они только периодически проскакивают. Смотрел эту кассету в ч/б цвете на другом ВМ, там тоже помех намного больше по сравнению с другими, поэтому и подумал, что исходник не важный.
Если нажать на "Паузу" - то на K7 сверху белые полосы в полэкрана. В общем надёжнее будет отнести в мастерскую, вместе с секамовской кассетой, возможно там подсторить смогут. Интересно почему эта проблема видна только для секама...
[Профиль]  [ЛС] 

Tempter57

Стаж: 16 лет 1 месяц

Сообщений: 4960

Tempter57 · 18-Апр-13 16:28 (спустя 1 час 13 мин., ред. 18-Апр-13 16:28)

Handino
Такие проблемы и в PAL не редкость. А для установки правильного пакета ЧМ нужна ЛИЛовская лента, такие когда-то делались в Киеве на Маяке\ЭМП в лаборатории Александра Тичко. Но с той поры много воды утекло. Можно в принципе выставить по какой-либо студийной записи, например, видеокассете видеокомпании WEST. А ручной трекинг есть в вашем видеомагнитофоне? Может он правильно выберет трекинг. Ручка управления (или 2 кнопки + -)так и называлась.
[Профиль]  [ЛС] 

Handino

Победители спортивных конкурсов

Стаж: 13 лет 7 месяцев

Сообщений: 2984

Handino · 18-Апр-13 18:00 (спустя 1 час 32 мин.)

Tempter57 писал(а):
58916982Handino
Такие проблемы и в PAL не редкость. А для установки правильного пакета ЧМ нужна ЛИЛовская лента, такие когда-то делались в Киеве на Маяке\ЭМП в лаборатории Александра Тичко. Но с той поры много воды утекло. Можно в принципе выставить по какой-либо студийной записи, например, видеокассете видеокомпании WEST. А ручной трекинг есть в вашем видеомагнитофоне? Может он правильно выберет трекинг. Ручка управления (или 2 кнопки + -)так и называлась.
Tempter57
А пакет ЧМ это что значит?
Да... в наше время найти новую ЛИЛовскую ленту, наверное, нереально. Насколько понимаю, это лента ЛПМ,
Ручной трекинг есть, реагируют клавиши Pr+ Pr-, изображение фиксируется спокойно на студийной кассете NTSC, и одной из кассет K7 (тоже студийной), а вот на этой, с которой снимал рип, трекинг не помогает, там на паузе дрожжание очень приличное.
Выставил по кассете NTSC - всё-равно на секамовской идёт выброс этих цветных полос. Самому мне, конечно, не настроить, можно вообще всё испортить, максимум смогу головку ВМ почистить спиртом, дальше лучше не лазить...опасно
[Профиль]  [ЛС] 

Tempter57

Стаж: 16 лет 1 месяц

Сообщений: 4960

Tempter57 · 18-Апр-13 18:15 (спустя 14 мин., ред. 18-Апр-13 18:15)

Handino
ЧМ -частотная модуляция, сответственно пакет состоит из набора нескольких частот, выставить так надо стойки и синхроголовку, чтобы не было завала в пакете ни в начале, ни в конце, сигнал должен быть ровным по амплитуде. А SECAM ни один маг нормально не воспроизводил без цветных тянучек. Это тупиковая система, принятая СССР в знак благодарности Франции (Де Голю) за выход из НАТО. Система французская, применяется частотная модуляция, поэтому низкая помехозащищённость. В PAL используется фазовая модуляция сигнала.
[Профиль]  [ЛС] 

Handino

Победители спортивных конкурсов

Стаж: 13 лет 7 месяцев

Сообщений: 2984

Handino · 18-Апр-13 18:24 (спустя 8 мин., ред. 20-Апр-13 02:09)

Tempter57
подскажите, пожалуйста, в чём может быть проблема, что не запускается RemoveDirt?
В скрипте с ремонтом полосы нарезки камень преткновения оказывается RemoveDirt, вот сейчас пытаюсь применить ваш скрипт DeSpot.avs к ч/б видео и опять всё останавливается на нем.
Почитал рекомендации:
msvcr70.dll лежит в system32, пытался подключить RemoveDirtS.dll, но Virtualdub просто останавливается...
P.S.
Решил проблему методом "научного тыка": вместо RepairSSE3.dll, как указано в скрипте подключил Repair.dll
Пока работает...
[Профиль]  [ЛС] 

Handino

Победители спортивных конкурсов

Стаж: 13 лет 7 месяцев

Сообщений: 2984

Handino · 24-Июн-13 13:11 (спустя 2 месяца 5 дней, ред. 24-Июн-13 15:33)

Tempter57
Нужен ваш мудрый совет.
Дождался-таки я второго исходника. Он оказался со своими дефектами (последний скриншот).
Ваш скрипт выполнить на моём старом компе просто нереально, результат буду ждать неделями.
Упростил скрипт, все получилось неплохо, за исключением деинтерлейса, сразу не заметил, после кодирования в xvid наблюдаю не очень приятную картину на сценах перехода.
Результат деинтерлейса. Переход между сценами
Результат деинтерлейса. Плавающая рамка фото
Исходник. Рамка без деинтерлейса
P.S. Всё. Разобрался. Такой деинтерлейс получается тогда, когда кроп и резайс делаешь перед деинтерлейсом. Не думал, что это так принципиально...
[Профиль]  [ЛС] 

Tempter57

Стаж: 16 лет 1 месяц

Сообщений: 4960

Tempter57 · 24-Июн-13 19:47 (спустя 6 часов, ред. 24-Июн-13 19:47)

Handino писал(а):
59835631Всё. Разобрался. Такой деинтерлейс получается тогда, когда кроп и резайс делаешь перед деинтерлейсом. Не думал, что это так принципиально...
Ресайзеры все, кроме InterlacedResize (W, H), для которого нужен плагин SimpleResize.dll, работают только с прогрессивным видео.
[Профиль]  [ЛС] 

Handino

Победители спортивных конкурсов

Стаж: 13 лет 7 месяцев

Сообщений: 2984

Handino · 24-Июн-13 20:58 (спустя 1 час 11 мин.)

Tempter57 писал(а):
59840369Ресайзеры все, кроме InterlacedResize (W, H), для которого нужен плагин SimpleResize.dll, работают только с прогрессивным видео.
Спасибо.
Сейчас проверил. Такого эффекта при переходе сцен как на скриншотах, при использовании InterlacedResize нет.
Tempter57
а вы можете сказать, существуют ли какие-то критерии подстройки яркости, насыщенности, тона, контрастности?
Дело вот в чем:
- исходник в DV-avi после обработки фильтрами в Virtualdub имеет один вид (похоже что в проге внутреннее представление глубины цвета 24 бита).
- когда открываю перекодированный файл xvid в любом плеере - вижу блёклые цвета, закодированные в 8 бит.
- но когда же открываю эти же 8 бит xvid опять же в Virtualdub вижу всё те же цвета, как в исходнике.
Получается, что подстройка на глаз (Tweak или Levels) в Virtualdub обманчива. Можно как-то это сделать по-другому? Каким-то образом выводят цвет и насыщенность при ремастеринге, хотя понятное дело, что на студиях исходники далеко не такого качества как левое издание VHS...
[Профиль]  [ЛС] 

Tempter57

Стаж: 16 лет 1 месяц

Сообщений: 4960

Tempter57 · 25-Июн-13 10:06 (спустя 13 часов, ред. 25-Июн-13 21:33)

Handino писал(а):
59841417а вы можете сказать, существуют ли какие-то критерии подстройки яркости, насыщенности, тона, контрастности?
Это слишком глобальный вопрос. С таким вопросом надо обращаться не к рядовому юзеру техветки, а к модераторам, чтобы получить более квалифицированный ответ. На мой взгляд лучше об этом вам расскажет tartak. Я, конечно, не стремлюсь его подставить, но чувствую, что он вам даст более квалифицированный ответ. Я могу только высказать свою точку зрения, не претендующую на верность и точность.
Вероятно, наиболее верным критерием оценки изображения будет ваши глаза. Есть конечно и средства AviSynth, например:
Histogram("Levels") или ColorYUV(analyze=true) # оценка диапазона входного сигнала
Важно также, как настроен и ваш video decoder в плане RGB output levels (for YUV conversion to RGB). Это может быть полный диапазон для просмотра на PC(0...255) или TV диапазон (16...235). Посмотрите, что у вас стоит либо в настройках ffdshow video decoder, или, если у вас установлен пакет кодеков CCCP , в LAV video settings.
Ранее основными плагинами для корректировки видео были встроенные в AviSynth плагины ColorYUV и Tweak. Причём последний был даже не основным, а больше вспомогательным и предназначался в основном для регулировки насыщенности цвета, хотя и имел возможности ещё по регулировке яркости, контрастности и тона. ColorYUV можно было задавать, как подстройку автоматически уровней autogain, так и автобаланс autowhite. Познакомиться можно http://avisynth.org.ru/docs/russian/corefilters/coloryuv.htm. Но чаще подобные автоматические регулировки не дают желаемого эффекта, который будет радовать наш глаз. Поэтому желаемый результат достигался подстройкой многочисленных параметров этого плагина. Не случайно в моих пресетах вы часто встречаете строку:
Код:
# ColorYUV(gain_y=0,cont_y=0,cont_u=0,cont_v=0,gain_v=0,gain_u=-0,off_y=0,off_u=-0,off_v=-0)
Открыв её в скрипте, вы можете подстраивать каждый параметр по отдельности, достигая требуемого результата.
Если необходимо добиться баланса белого в небольшом диапазоне, есть плагин С.Столяревского ACOBW под VirtualDub.
Кроме встроенной функции levels в AviSynth для авторегулировки уровней было создано несколько версий плагина autolevels.dll. В настоящее время активно применяется версия autolevels_06.dll. Но подмечено, что, если этот плагин использовать напрямую, происходит искажение уровней. Чаще этот плагин используют через конвертацию цветовых пространств, убирающие подобные искажения:
Код:
converttoRGB32().autolevels(output_low= autolev_low, output_high= autolev_high).converttoYV12()
при этом для оцифровки 8 мм киноплёнок к примеру задают
autolev_low= 6 # limit of autolevels low output
autolev_high= 235 # limit of autolevels high output

Чем плох этот метод=> использованием двойной конвертации цветовых пространств. Чтобы избежать этого совсем недавно французом Lato был разработан плагин AutoGain.dll, который лишён подобных недостатков. http://forum.doom9.org/showthread.php?t=167573
Надо признаться, что Lato здорово подсуетился в плане корректировки кривых цвета и автоуровней, создав просто уникальный в этом плане плагин SmoothAdjust.dll http://forum.doom9.org/showthread.php?t=154971
Частенько в своих престах я ввожу некоторые функции этого плагина:
Код:
# LEVELS
# SmoothCurve(Ycurve="0-0;16-0;235-255;255-255", Ucurve="0-0;16-0;240-255;255-255", Vcurve="0-0;16-0;240-255;255-255", interp=0)
  SmoothLevels(gamma=1.0, useopt=-1) # -1 -automatic choice, 1- SSE2 CPU, 2 - Sandy Bridge CPU
причём здесь, если открываю верхнюю строку, подстраиваю gamma во второй, увеличивая значение. В противном случае исчезнут полутона на тёмных сценах. Или другой пример, для корректировки кривой цвета, например, убрать излишнюю желтизну и зелень исходника:
Код:
# ==== цветокоррекция при преобладании жёлто-зелёных цветов ====
str=4
thr=32
SmoothCurve(Ucurve="0-0;"+string(128-2*thr)+"-"+string(128-2*thr)+";"+string(128-thr)+"-"+string(128-thr+str)+";128-128;"+string(128+thr)+"-"+string(128+thr-str)+";"+string(128+2*thr)+"-"+string(128+2*thr)+";255-255"\
           ,Vcurve="0-0;"+string(128-2*thr)+"-"+string(128-2*thr)+";"+string(128-thr)+"-"+string(128-thr-str)+";128-128;"+string(128+thr)+"-"+string(128+thr+str)+";"+string(128+2*thr)+"-"+string(128+2*thr)+";255-255")
Здесь, подбирая, значение str добиваемся желаемого результата. Это всего лишь два примера применения этого плагина. Их значительно больше.
[Профиль]  [ЛС] 

Handino

Победители спортивных конкурсов

Стаж: 13 лет 7 месяцев

Сообщений: 2984

Handino · 29-Июн-13 00:36 (спустя 3 дня, ред. 29-Июн-13 00:36)

Tempter57
Огромное вам спасибо за столь подробную раскладку и за помощь в редактировании VHS. Обязательно поэкспериментирую уже на других видеоматериалах, так как с этим, думаю, что работы пора завершать.
Результат очень приличный на мой взгляд, исчезли цветовые тянучки; убраны шумы; убран тот выброс белых полос, что приводил в сэмлах (простым копированием Y-канала с одного исходника на другой); все визуальные настройки, считаю, что тоже на должном уровне.
Вообще, мне показали в мастерской, какую запись на VHS можно считать нормальной и что на самом деле представляет из себя моя: неплотная запись на простой дешёвой аппаратуре с большим множеством различных помех, эти цв. тянучки - они уже записаны на VHS, плюс кассета жеваная отчего и идёт выброс белых полос на полэкрана. На втором исходнике, если вы заметили влевой части экрана идёт красная вертикальная полоса, её продолжительность - на всю запись. И избавиться от неё никак не удавалось только приглушить. Со второго исходника взял только Y-канал.
В общем из двух загубленных VHS удалось сделать вполне достойный один цифровой рип - это итак не плохо. Причем некоторые студийные DVD бывает смотрятся намного хуже.
Из вашего скрипта кроме всего прочего, подметил очень классный фильтр RemoveDirt() - его использовал для общей чистки записи, не для ремонта полосы нарезки.
MedianblurT(0,0,0,2) - отказался полностью, на резко динамических сценах он просто вырывает часть информации, превращая кадр в неузнаваемый. Очень экстремальный фильтр.
Через пару дней, думаю, что смогу выложить этот фильм на трекере, если он вам покажется интересным, возможно, посмотрите...
P.S. Вот этот фильм https://rutr.life/forum/viewtopic.php?t=4475815
[Профиль]  [ЛС] 

ТоптуновПотапов

Стаж: 12 лет 2 месяца

Сообщений: 9


ТоптуновПотапов · 13-Авг-13 16:39 (спустя 1 месяц 14 дней)

Товарищи, прошу консультации по скрипту
Постановка и условия задачи:
Имеется множество видеофайлов с расширением *.mts произвольной продолжительности, снятые ф/а SONY NEX
Требуется:
перевести их в контейнер avi кодеком xvid
ресайз
изменение битрейта
выдернуть аудиодорожку в формат *.wav
У меня есть вот такой скрипт:
_
del *.avc
del *.dga
del *.ac3
del *.wav
del *.avs
del *.log
for %%a in ("*.mts") do xport -h "%%a" 1 1 1 && ren bits0001.mpa "%%~na.ac3" && ren bits0001.mpv "%%~na.avc"
for %%b in ("*.avc") do DGAVCIndex -i "%%b" -o "%%~nb.dga" -e
for %%c in ("*.ac3") do azid "%%c" "%%~nc.wav"
for %%a in ("*.dga") do @echo loadplugin("dgavcdecode.dll") > "%%~na.avs"
for %%a in ("*.dga") do @echo loadplugin("audiolimiter.dll") >> "%%~na.avs"
for %%a in ("*.dga") do @echo video=AVCSource("%%a",deblock=false) >> "%%~na.avs"
for %%a in ("*.dga") do @echo audio=wavsource("%%~na.wav").convertaudiotofloat().normalize(0.95).wavgainlimiter(1.5) >> "%%~na.avs"
for %%a in ("*.dga") do @echo audiodub(video,audio) >> "%%~na.avs"
for %%a in ("*.dga") do @echo separatefields().selecteven() >> "%%~na.avs"
for %%a in ("*.dga") do @echo Lanczos4Resize(720,400) >> "%%~na.avs"
del *.log
for %%a in ("*.avs") do ffmpeg.exe -i "%%a" -threads auto -vcodec xvid -s 1280х720 -maxrate 3800k -b 3000k -qmin 3 -qmax 5 -bufsize 4096 -acodec mp3 -ar 48000 -ab 160k -ac 2 -y "%%~na_xvid.avi"
_
В принципе скрипт справляется со своей задачей хорошо (на мой неопытный взгляд) но есть НО:
Делает кучу других файлов.
Пожалуйста, ткните носом, что означают переменные в последней части скрипта (после del*.log) и возможно ли не получать кучу файлов, а только те, которые стоят в задаче.
Как можно оптимизировать данный скрипт?
[Профиль]  [ЛС] 

Lenchik

Стаж: 18 лет 4 месяца

Сообщений: 854


Lenchik · 02-Ноя-13 21:34 (спустя 2 месяца 20 дней, ред. 02-Ноя-13 22:47)

Как я делал Hi444PP 10bit VFR и что из этого вышлоИсточник видео: YV24 или RGB запись скринкаста/вебинара/слайдовой презентации, в общем такое видео где есть зоны с медленной сменяемостью содержимого и области где что-то меняется с нормальной скоростью.
В моём случае это было снятое виртуалдабом видео с экрана. Поскольку там и так не очень-то стабильный framerate, то пришлось открывать так:
Код:
audiodubex(FFVideoSource(source=source, fpsnum=30000, fpsden=1000, threads=1), FFAudioSource(source=source))
Чтобы компенсировать некоторые огрехи записи и сделать одинаковые кадры гарантированно одинаковыми с точки зрения компьютера, я воспользвался плагином ReMapFrames.
Код:
RemapFrames(filename="capture_RemapFrames.txt")
Дальше можно кодировать либо с постоянной частотой кадров, либо кодировать VFR. Я выбрал второе и контейнер mkv.
Поскольку я решил сохранить YV24 в результирующем файле, то описываемые в интернете способы с Decomb521VFR и TIVTC (TFM + TDecimate) мне не подошли. Во-первых потому что YV24 не поддерживают, а во-вторых мне так и не удалось с их помощью выкинуть более чем половину исходных кадров (то есть они не смогли выкинуть довольно длительные промежутки одинаковых кадров).
Способ с DeDup показался мне интересным тем, что в принципе мог выкидывать большие пачки кадров. Проблема с поддержкой YV24 у него тоже есть.
И тут мне повезло и я нашёл ExactDeDup, который и YV24 поддерживает и выкидывать огромные пачки кадров может.
С ним работал в два прохода. Сначала прогоняем его линейно через всё видео, полученное выше по тексту:
Код:
#ExactDeDup 1pass
ExactDedup(firstpass = true, maxdupcount=80000, keeplastframe=false, dupinfo="dup.txt", times="ExactDedup_times.txt")
maxdupcount - это максимальный размер блока в кадрах, который будет заменен одним фреймом.
times - имя файла с таймкодами, который потом надо скормить mkvmerge из mkvtoolnix для получения VFR mkv файла.
Прогон делается либо через виртуалдабный Run video analysis pass, либо через командную строку и avs2pipemod:
Код:
avs2pipemod.exe -benchmark capture.avs
А во втором проходе отключаем строку первого прохода и пишем:
Код:
#ExactDeDup 1pass
#ExactDedup(firstpass = true, maxdupcount=80000, keeplastframe=false, dupinfo="dup.txt", times="ExactDedup_times.txt")
#ExactDeDup 2pass
ExactDedup(firstpass=false, dupinfo="dup.txt")
На выходе получаем прореженные кадры. В моем случае их оказалось около 16 тысяч против более чем 300 тысяч у исходного видео.
Дальше кодировал в x264. Долго мучился пока не понял, что использование опции --tcfile-in портит мне кадры в результирующем файле (самая ранняя версия x264, на которой я пробовал — 2145, но уверен, что и на более ранних такой косяк). Вывод такой — таймкоды вставляем при муксинге в матрешку сами, не доверяем x264.
Не принципиально как именно подавать в x264 видео, я сделал так:
Код:
"%avs2pipemod_path%" -rawvideo "%source1%" | "%x264-10bit_64_path%" --demuxer raw --input-depth 8 --input-res 1280x960 --input-csp i444 --profile high444 --level 4.1 --preset veryslow --scenecut 80 --sar 1:1 --colormatrix bt709 --transfer bt709 --colorprim bt709 --crf 19 --min-keyint 1 --vbv-maxrate 50000 --vbv-bufsize 62500 --output-csp "i444" --frames 16080 --log-file "%source_path%%source_filename1%-log_type2.txt" --output "%coded_video1%" - 2> "%source_path%%source_filename1%-log.txt"
Дальше перекодировал звук в HE-AAC и смуксил его вместе с видео и таймкод-файлом в матрешку. Тут всё просто.
А что на выходе?
Один из бонусов такого VFR — малое время кодирования. Сколько выиграл в размере, пока не знаю (сейчас как раз кодирую 30 fps CFR вариант).
Теперь о недостатках. Недостаток по сути один, программные плееры нормально не играют (аппаратные и не рассматривал, и так известно, что с воспроизведением VFR там туго). Где проблемы с перемоткой, где ещё что-то не так. MPC-HC 1.6.8 (Старый, без встроенных LAVFilters) вроде бы хорошо стартовал, но на самом деле задержки звука при перемотке бывают, а то и полный рассинхрон после перемотки. Сборка Daum Potplayer, которая является для меня основной, тоже не больно-то справилась — разные сплиттеры показывают разный размер, встроенный оказался точнее, зато в AVSplitter задержки звука оказались меньше, а с последним LAVSplitter вообще отказался воспроизводиться.
Склонен остановиться на том, что будет у меня две версии этой записи. Или даже три, где третья — классический рип 8 бит на канал, на всякий случай.
[Профиль]  [ЛС] 

Pustovetov

AVC-Видео

Стаж: 17 лет 1 месяц

Сообщений: 4255

Pustovetov · 03-Ноя-13 12:59 (спустя 15 часов)

Lenchik писал(а):
61547197Долго мучился пока не понял, что использование опции --tcfile-in портит мне кадры в результирующем файле (самая ранняя версия x264, на которой я пробовал — 2145, но уверен, что и на более ранних такой косяк).
А почему у меня все было нормально? Но в целом это неправильно и надо бы разобраться
Цитата:
Теперь о недостатках. Недостаток по сути один, программные плееры нормально не играют (аппаратные и не рассматривал, и так известно, что с воспроизведением VFR там туго). Где проблемы с перемоткой, где ещё что-то не так.
А почему у меня все нормально с программными плеерами? Может быть потому что (см. выше)
[Профиль]  [ЛС] 

elnino243

Стаж: 16 лет 1 месяц

Сообщений: 218

elnino243 · 10-Фев-14 22:50 (спустя 3 месяца 7 дней, ред. 10-Фев-14 22:50)

Здравствуйте.
Никак не могу разобраться, подскажите пожалуйста как правильно написать скрипт.
Мне нужно загрузить видео1 и откорректировать в нем цвет и яркость как в видео2.
Сразу возникает 2 проблемы, во-первых, загружается второе видео, во-вторых, у видео не совпадают цветовые кодировки, у второго видео YUV, а у первого по моему RGB, в файл инфо не пишется, а как по другому проверить я не знаю.
Я пробую вот так и ничего не получается ((
Код:

a = AVISource("...\video1.avi", audio=false)
b = avisource("...\video2.avi", audio=false)
ConvertToYV12(a)
ConvertToYV12(b)
MergeChroma (a, b, 1.0)
MergeLuma (a, b, 1.0)
Заранее благодарю за советы.
[Профиль]  [ЛС] 

Xpюша

Стаж: 15 лет 4 месяца

Сообщений: 3635


Xpюша · 11-Фев-14 00:18 (спустя 1 час 27 мин.)

elnino243 писал(а):
62906841MergeChroma (a, b, 1.0)
MergeLuma (a, b, 1.0)
Вообще-то после этих двух операций на выходе должен получиться просто фильм b.
[Профиль]  [ЛС] 

elnino243

Стаж: 16 лет 1 месяц

Сообщений: 218

elnino243 · 11-Фев-14 00:23 (спустя 4 мин.)

А как правильно тогда написать, ибо из хелпа не понятно к сожалению ((
http://avisynth.org.ru/docs/russian/corefilters/merge.htm
[Профиль]  [ЛС] 

Handino

Победители спортивных конкурсов

Стаж: 13 лет 7 месяцев

Сообщений: 2984

Handino · 11-Фев-14 00:52 (спустя 29 мин., ред. 11-Фев-14 00:53)

Если так (слово ВИДЕО - убрать!):
a = AVISource("...\video1.avi", audio=false).ConvertToYV12(interlaced=true) ВИДЕО 1
b = avisource("...\video2.avi", audio=false).ConvertToYV12(interlaced=true) ВИДЕО 2
MergeChroma (a, b).MergeLuma (a, b)
Тут вариантов для эксперимента совсем немного
[Профиль]  [ЛС] 

Xpюша

Стаж: 15 лет 4 месяца

Сообщений: 3635


Xpюша · 11-Фев-14 00:55 (спустя 2 мин., ред. 11-Фев-14 00:56)

Handino писал(а):
62908009MergeChroma (a, b).MergeLuma (a, b)
Я в прошлый раз насчёт результата ошибся: там MergeChroma (a, b, 1.0) - бесполезная операция, и только MergeLuma (a, b, 1.0) работает. Но в процитированном фрагменте точно на выходе b получается.
elnino243 писал(а):
62907835А как правильно тогда написать
Для этого нужно знать, в чём, собственно, состоит задача. Но подозреваю, что нужно крутить параметры функции ColorYUV() или RGBAdjust() вкупе с некоторыми другими функциями раздела Фильтры преобразования и настройки цветов
elnino243 писал(а):
62907835ибо из хелпа не понятно
А по-моему, здесь всё достаточно понятно:
Цитата:
MergeChroma (clip1, clip2, float weight=1.0)
MergeLuma (clip1, clip2, float weight=1.0)
Параметр clip1 - это клип, НА который накладывается информация из второго клипа. Из него берется та информация ДРУГОГО канала, которую НЕ изменяет данный фильтр, а именно яркость в случае использования MergeChroma и цветность в случае MergeLuma.
Параметр clip2 - из этого клипа берется та информация, которую меняет соответствующий фильтр, а именно цветность в случае использования MergeChroma и яркость в случае MergeLuma. Он должен быть того же цветового формата, как clip1; то есть вы не можете слить из YV12 клипа в YUY2 клип.
[Профиль]  [ЛС] 

elnino243

Стаж: 16 лет 1 месяц

Сообщений: 218

elnino243 · 11-Фев-14 00:55 (спустя 53 сек., ред. 11-Фев-14 01:00)

Что то мне кажется я вообще не то делаю ))
У меня есть 2 видео, в первом более насыщенные цвета и видео более темное, во втором наоборот болнн блеклые цвета и более светлое видео. А нужно что бы первое было более похоже на второе, как это сделать?
Хотя на обоих видео снято почти одно и тоже, но из за разных кодеков и цветовых кодировок получается такая чихарда.
[Профиль]  [ЛС] 

Handino

Победители спортивных конкурсов

Стаж: 13 лет 7 месяцев

Сообщений: 2984

Handino · 11-Фев-14 00:59 (спустя 3 мин., ред. 11-Фев-14 01:13)

Xpюша писал(а):
62908047И что это изменило? Всё равно же b получается.
Да ему и надо B...
Всего не дочитал...
elnino243
elnino243 писал(а):
62906841у второго видео YUV, а у первого по моему RGB,
Нужно сначала определится с цветностью, какой в 1 и 2 клипе:
AVISource("...\video1.avi", audio=false).Info()
avisource("...\video2.avi", audio=false).Info()
Неужели инфо не показывет?
Если цветность одинаковая, то можно попробовать оставить только MergeLuma...
[Профиль]  [ЛС] 

Xpюша

Стаж: 15 лет 4 месяца

Сообщений: 3635


Xpюша · 11-Фев-14 01:05 (спустя 5 мин., ред. 11-Фев-14 01:05)

elnino243 писал(а):
62908071А нужно что бы первое было более похоже на второе, как это сделать?
А в Фотошопе Вы бы это как делали? Вот так и здесь: ColorYUV/RGBAdjust/Levels.
Handino писал(а):
62908087Да ему и надо B...
Ему надо откорректированные A и B. А в результате той цепочки получится корявая смесь A и B (я опять насчёт результата не то ляпнул).
[Профиль]  [ЛС] 

Pustovetov

AVC-Видео

Стаж: 17 лет 1 месяц

Сообщений: 4255

Pustovetov · 11-Фев-14 11:23 (спустя 10 часов)

elnino243 писал(а):
62908071Что то мне кажется я вообще не то делаю ))
У меня есть 2 видео, в первом более насыщенные цвета и видео более темное, во втором наоборот болнн блеклые цвета и более светлое видео. А нужно что бы первое было более похоже на второе, как это сделать?
Для начала попробуйте вот так
AVISource("...\video1.avi", audio=false)
ColorYUV(levels="PC->TV")
ну и конечно надо больше знать о том что в video1.avi
[Профиль]  [ЛС] 

systema.2007

Стаж: 16 лет

Сообщений: 69


systema.2007 · 13-Фев-14 20:15 (спустя 2 дня 8 часов)

elnino243, дайте ссылки на 30-секундные сэмплы видео 1 и видео 2. Я подберу фильтры и дам вам скрипт.


Сообщения из этой темы были выделены в отдельный топик Алгоритмы масштабирования изображений (ресайзеры)
GarfieldX
[Профиль]  [ЛС] 

scon

Стаж: 16 лет 6 месяцев

Сообщений: 3005

scon · 13-Апр-14 07:03 (спустя 1 месяц 27 дней)

Доброго времени суток!
Хочу обратиться в вопросом по написанию скрипта для AviSynth, поскольку сам не знаток
Есть прогрессивное видео после оцифровки 8мм кинопленки с частотой 18 к/сек.
Я хочу преобразовать частоту кадров в 25. путем добавления целых кадров в последовательность
Читал, что с этой задачей корректно справляется только After Effects,
но может быть это можно сделать через скрипт, что, конечно, удобнее
Мне представляется алгоритм преобразования по маске 3*2*3*2*3*2*3*, где * - дубль предыдущего кадра
но написать такой скрипт мне слабо, если это вообще возможно
Спасибо
[Профиль]  [ЛС] 

elnino243

Стаж: 16 лет 1 месяц

Сообщений: 218

elnino243 · 13-Апр-14 21:36 (спустя 14 часов)

Подскажите пожалуйста.
Вот строчка скрипта
Код:
AVISource("E:\Fraps\Render\Untitled.avi")
LoadPlugin("D:\Programs\MeGUI_2418_x86\nnedi3\nnedi3")
nnedi3_rpow2 (2, CSHIFT = "LanczosResize", fwidth = 3840, fheight = 2160)
ConvertToYV12()
Я хочу понять avisynth сначала делает ресайз, а потом уже перевод в YV12, или на оборот, и влияет ли порядок написания на это?
Заранее благодарю за ответы.
[Профиль]  [ЛС] 

Lenchik

Стаж: 18 лет 4 месяца

Сообщений: 854


Lenchik · 13-Апр-14 23:04 (спустя 1 час 27 мин.)

RTFM: http://unreal666.hdd1.ru/docs/avisynth/russian/script_ref_execution_model.htm
Порядок влияет.
У вас сначала ресайз, потом перевод.
[Профиль]  [ЛС] 
 
Ответить
Loading...
Error