Чем удалить из материала каждый 25-й кадр?
#1
Отправлено 05 Nov 2009 - 19:14
Ручками резать не хочется - больше 2 часов исходник. Кажется был такой плаг, который удаляет последний кадр в секунде?.. Или что-то типа того...
#2
Отправлено 05 Nov 2009 - 19:26
#3
Отправлено 05 Nov 2009 - 20:08
Влоб рабочая строка в скрипте выглядит типа:
SelectEvery(25,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23)
то есть из 25 кадров оставляются все с 0-го по 23-й (вот 24 и выходит, 25 отбрасывается)
Если закономерность другая (например дублированы не последний и препоследний кадры, а первый и второй), то меняешь выборку кадров, в том числе и если у тебя цикл не из 25 кадров (анализируешь визуально в Дубе по шагам).
Если с Avisynth не знаком, то иди на его русский оффсайт http://avisynth.org.ru/
В принципе там все примитивно:
- ставишь инстал avisynth, не забыв указать установку и русского хелпа (там оно спрятано)
- пишешь скрипт с расширением .avs (в Виндовом блокноте и т.п.) из двух строк (1-я открывает твой видеофайл, вторую я уже написал)
- открываешь этот файл в VirtualDub и сразу получаешь отфильтрованное видео
- из Дуба сохраняешь с нужным кодеком
Если закономерность не столь очевидна, то можно и плагин поискать (тоже под Ависинс), на сколько помню зовется dups
Он удаляет просто все дублирующиеся кадры (правла может тупо и лишнее удалить, скажем статичные картинки сократить по длительности до 1 кадра и т.п.)
Сообщение отредактировано Turyst04: 05 Nov 2009 - 21:06
#4
Отправлено 05 Nov 2009 - 20:14
скрипты так скрипты
поставил кофе
#5
Отправлено 05 Nov 2009 - 20:47
http://rapidshare.co..._frame.rar.html
На второй дорожке - кадры убийцы (по одному "убийце" через каждые 24 кадра "пустоты")
1. Свое видео положишь на дорожку 1
2. Выделишь все кадры-убийцы с дорожки 2 и перенесешь их на дорожку 1
3. Ripple Delete
4. Экспортируй готовый "скоращенный материал" с дорожки 1
#6
Отправлено 05 Nov 2009 - 21:31
Проверил последовательность из 50 секунд - системы нет.
Засада.
Сообщение отредактировано vitt: 05 Nov 2009 - 21:31
#7
Отправлено 05 Nov 2009 - 21:33
Тогда только одно: искать исходник и конвертировать, так как тебе надо.
#8
Отправлено 05 Nov 2009 - 22:00
есть плагин unblend.dll к avisynth - с виду то что надо:
"Плагин, основан на алгоритме фильтра deblend от Warpenterprise и коде фильтра decimate от Neuron2. Он для испорченных преобразованийt NTSC->PAL."
Но virtualdub выдаёт ошибку, мол, "The script`s return value was not a video clip"
Скрипт такой:
AVISource("E:\W_O_R_K\ishodniki\p2.avi") # проставляется нужный путь к файлу
loadplugin("C:\Program Files\AviSynth 2.5\plugins\unblend_25_dll_2003\unblend.dll")
Что поправить?
#9
Отправлено 05 Nov 2009 - 23:07
#10
Отправлено 05 Nov 2009 - 23:39
Ошибка у тебя простая - последней строкой должна идти команда, возвращающая переменную-видеоклип.
То есть
loadplugin("C:\Program Files\AviSynth 2.5\plugins\unblend_25_dll_2003\unblend.dll")
AVISource("E:\W_O_R_K\ishodniki\p2.avi") # проставляется нужный путь к файлу
ошибки не вызовет (но и действий никаких не выполнит).
Как вызывается именно unblend не скажу, но скорее всего правильно будет где то так (с парамертами по умолчанию, если они у него имеются):
loadplugin("C:\Program Files\AviSynth 2.5\plugins\unblend_25_dll_2003\unblend.dll") # загрузить плагин
AVISource("E:\W_O_R_K\ishodniki\p2.avi")
unblend() # выполнить действие плагина
Однако предлагаю таки попробовать не unblend, а Dup (http://neuron2.net/dup/dupnew.html )
Там с ним идет и DupHelp.html (англоязычный).
Если Dup.dll поместишь в каталог плагинов AviSynth (судя по сему у тебя это
C:\Program Files\AviSynth 2.5\plugins ), то loadplugin вообще не понадобится и скрипт у тебя получится
AVISource("E:\W_O_R_K\ishodniki\p2.avi")
Dup()
Если вдруг он поубирает что лишнее (как я выше писал - "сократит" статичные сцены, титры и т.д.), то поиграйся с параметром threshold (по умолчанию он =3, то есть вызов Dup() равен Dup(threshold=3)
Соответственно скажем
Dup(threshold=1) будет более придирчив к схожести кадров (уберет меньше), а Dup(threshold=20) - больше (увеличение параметра может потребоваться, если дублированные кадры все-же слегка отличаются, например из-за последующего сжатия и т.п.)
Сообщение отредактировано Turyst04: 05 Nov 2009 - 23:42
#11
Отправлено 05 Nov 2009 - 23:48
вот я сейчас созда пустой файл a.avs файл и вижу туже самую строку...
а если в нее внести хотя бы две описаные тобой строки (у меня НЕТ ТАКОГО ПУТИ И ВИДЕОФАЙЛА и такого плугинса) то увижу совсем другое сообщение об ошибке...
То что этот плугинс тебе ничем не поможет это уже совсем другая история...
#12
Отправлено 06 Nov 2009 - 00:06
Нашел таки то, что искал: dedup (http://akuvian.org/src/avisynth/dedup/ )
Его работа посложнее - он двухпроходный, то есть потребуются два скрипта, один:
AVISource("p2.avi")
DupMC(log="blah.dup.txt")
Если скрипт в том же каталоге, что и файл p2.avi, то путь указывать не обязательно.
В том же каталоге, где скрипт создастся лог-файл blah.dup.txt (имя можешь изменить)
На втором проходе выполняешь второй скрипт
AVISource("p2.avi")
DeDup(threshold=0.3, maxcopies=10, maxdrops=3, log="blah.dup.txt"")
Пример параметров - из описашки, посмотришь сам. Смысл параметра threshold - тот же, что и писал выше - схожесть дубль-кадров.
Не забудь скачать доп-библиотеку http://akuvian.org/s...p/msvc_dlls.zip (она нужна для работы плага).
Остальное - вникай в описание (или методом тыка - это тоже нередко прокатывает).
Сообщение отредактировано Turyst04: 06 Nov 2009 - 00:11
#13
Отправлено 06 Nov 2009 - 01:39
Сижу, вникаю.
Первую часть победил - машина увидела дубли. Уффффф.... Это вселяет надежду...
frm 419: diff from frm 420 = 0.3187% at (1024,128)
frm 420: diff from frm 421 = 6.4528% at (832,192)
frm 421: diff from frm 422 = 8.3748% at (832,192)
frm 422: diff from frm 423 = 5.4143% at (832,128)
frm 423: diff from frm 424 = 4.9215% at (1024,224)
frm 424: diff from frm 425 = 4.2271% at (1024,224)
frm 425: diff from frm 426 = 4.2620% at (832,192)
frm 426: diff from frm 427 = 4.5761% at (832,192)
frm 427: diff from frm 428 = 4.0733% at (832,192)
frm 428: diff from frm 429 = 2.9313% at (832,192)
frm 429: diff from frm 430 = 4.8113% at (832,192)
frm 430: diff from frm 431 = 4.0459% at (832,192)
frm 431: diff from frm 432 = 4.5682% at (768,128)
frm 432: diff from frm 433 = 5.8972% at (960,160)
frm 433: diff from frm 434 = 7.0869% at (704,160)
frm 434: diff from frm 435 = 6.9082% at (960,160)
frm 435: diff from frm 436 = 5.5319% at (960,160)
frm 436: diff from frm 437 = 5.5344% at (768,192)
frm 437: diff from frm 438 = 5.3362% at (768,192)
frm 438: diff from frm 439 = 4.9215% at (704,160)
frm 439: diff from frm 440 = 3.1063% at (640,192)
frm 440: diff from frm 441 = 3.6681% at (768,192)
frm 441: diff from frm 442 = 4.4461% at (704,160)
frm 442: diff from frm 443 = 4.1946% at (896,96)
frm 443: diff from frm 444 = 0.4692% at (1024,320)
frm 444: diff from frm 445 = 3.8007% at (768,192)
frm 445: diff from frm 446 = 4.6061% at (768,192)
frm 446: diff from frm 447 = 4.8600% at (1152,320)
frm 447: diff from frm 448 = 4.3854% at (768,192)
frm 448: diff from frm 449 = 3.4849% at (640,160)
frm 449: diff from frm 450 = 4.9535% at (640,160)
frm 450: diff from frm 451 = 3.8580% at (640,160)
frm 451: diff from frm 452 = 4.3272% at (640,160)
frm 452: diff from frm 453 = 5.5868% at (704,192)
frm 453: diff from frm 454 = 5.1080% at (704,192)
frm 454: diff from frm 455 = 5.5523% at (704,192)
frm 455: diff from frm 456 = 6.4358% at (704,192)
frm 456: diff from frm 457 = 7.6583% at (704,192)
frm 457: diff from frm 458 = 7.3649% at (704,192)
frm 458: diff from frm 459 = 6.1673% at (704,192)
frm 459: diff from frm 460 = 5.3516% at (896,96)
frm 460: diff from frm 461 = 8.6656% at (896,96)
frm 461: diff from frm 462 = 6.1299% at (896,96)
frm 462: diff from frm 463 = 5.6179% at (896,96)
frm 463: diff from frm 464 = 8.2343% at (704,96)
frm 464: diff from frm 465 = 7.4468% at (704,96)
frm 465: diff from frm 466 = 4.5998% at (448,128)
frm 466: diff from frm 467 = 3.9470% at (448,128)
frm 467: diff from frm 468 = 6.4291% at (1152,320)
frm 468: diff from frm 469 = 0.3283% at (704,96)
frm 469: diff from frm 470 = 7.7751% at (1152,320)
frm 470: diff from frm 471 = 7.7335% at (896,256)
frm 471: diff from frm 472 = 7.6858% at (896,256)
frm 472: diff from frm 473 = 8.6436% at (640,96)
Разница в дублях меньше 0.5 процента. Отлично выделяются на фоне остальных.
Теперь буду разбираться почему она мне их не удаляет...
ДА!!!!!!!!!!!!!!!
ЕСТЬ!!!!!!!!!!!!!
УРА!!!!!!!!!!!!!!
Не верил, что можно это качественно победить программно! Готовился к медленной смерти !!!
4Turyst04 - с меня однозначно "Хмельная застава" в Минске. Любимому городу Киеву привет - ой немало там было пропито с хорошими людьми - Джон Булл на Саксаганьского, клуб 44, Стэйкхаус, Арена , "Вагон-ресторан"... а "Де Жа Вю"!.. а "Бельвю" с утреца как заходит! ну всех сразу не вспомню, понятно Личный рекорд был - 14 заведений за сутки
Навеяло, пора ехать в гости И повод есть...
Сообщение отредактировано vitt: 06 Nov 2009 - 01:44
0 человек читают эту тему
0 пользователей, 0 гостей, 0 скрытых пользователей