вопрос к знатокам AviSynth-а
Привет, Гость ( Вход | Регистрация )
![]() ![]() ![]() ![]() ![]() |
![]() ![]() ![]() ![]() |
![]() ![]() ![]() |
вопрос к знатокам AviSynth-а
genpix |
![]()
Сообщение
#1
|
![]() Видеоман ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Ветеран Team RDA Сообщений: 4763 Регистрация: 22 Мая '01 Откуда: USA 2 Юзер Цитировать ![]() |
Есть TS поток с HDTV канала в формате 1920х1080i @ 29.97fps.
Анализируя поток (пошаговый просмотр полуполей) понял, что изначальная запись была в 1920х1080i @ 25fps. Перевод 25->29.97 был сделан очень грамотно. Никаких blending, прсто определенне поля повторялись. Для перевода в 640x352 Divx я вообще могу выбросить каждое четное/ нечетное поле (как понравится). Оставшихся пикселей (1920х540) все равно хватит для ресайза. Так вот, когда смотрю 1920х540p @ 29.97, вижу, что каждое шестое поле повторяет предудущее. Вроде легко бороться: SeparateFields() # разбитие на полуполя SelectEvery(12,2,4,6,8,10) # брать 5 последних (из 6) нечетных полуполей вроде все работает. Одна проблема, было бы все идеально, если б перевод был 25->30fps. На самом деле перевод был 25->29.97fps, т.e. какие-то фреймы были dropped (а именно, каждый 1000-ый). Поэтому описаный выше кусок скрипта в некоторых местах "сбивается", начинает выкидывать не то. Кто нибудь с таким сталкивался? Есть ли plug-in который находит повторяющиеся кадры в потоке? его бы применить, и было бы все чики-пики... PS: Repal () не помог |
genpix |
![]()
Сообщение
#2
|
![]() Видеоман ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Ветеран Team RDA Сообщений: 4763 Регистрация: 22 Мая '01 Откуда: USA 2 Юзер Цитировать ![]() |
сейчас читаю про FDecimate().
Похоже он может спасти отца русской демократии... вроде такой скрипт дает наилучший результат: SeparateFields() SelectEvery(2,0) FDecimate(rate=24.975,threshold=3) AssumeFPS(25.000) Отредактировано: genpix в Понедельник, 21 Марта 2005, 0:30 |
Bubble-Gum |
![]()
Сообщение
#3
|
![]() Танкист со стажем ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Админы Сообщений: 8012 Регистрация: 26 Сен '01 Откуда: Germany 2 Юзер Цитировать ![]() |
а так не пробовал?
function remove_6(clip c) { ... SeparateFields() SelectEvery(12,2,4,6,8,10) ... } AviSource("my.avi").remove_6 в функции пишешь что нить типа условия если фрейм х000 то... ![]() -------------------- ![]() |
kvappa |
![]()
Сообщение
#4
|
![]() Нанотехник с ключом на 12 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Админы Сообщений: 9123 Регистрация: 14 Авг '01 Откуда: Альфа-центавра 2 Юзер Цитировать ![]() |
А просто через
Telecide(order=1,post=1) Decimate(6) что получается? (ну если order=1, а не 0, разумеется) Да, а каким именно образом затягивал видео в AviSynth? Тут тоже тонкости могут быть. Отредактировано: kvappa в Вторник, 22 Марта 2005, 1:03 -------------------- ![]() |
genpix |
![]()
Сообщение
#5
|
![]() Видеоман ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Ветеран Team RDA Сообщений: 4763 Регистрация: 22 Мая '01 Откуда: USA 2 Юзер Цитировать ![]() |
Собственно,
SeparateFields() SelectEvery(2,0) FDecimate(rate=24.975,threshold=3) AssumeFPS(25.000) и SeparateFields() SelectEvery(2,0) Decimate(6) AssumeFPS(25.000) дали почти одинаковые результаты. Первый скрипт выдал поток на один кадр длиннее (это при 110 минутах видео). Я просто где-то читал, что обычный Decimate иногда сходит с ума, когда попадаются статические сцены (заставка, например). А в этом видео как раз и были такие куски. FDecimate, вроде лучше себя ведет (потому как ему насильно ставят частоту кадров). Я не стал проверять, закодировал с первым способом. PS: Telecide я не применял, так как четные поля вообще выкинул ![]() Видео затягивал из d2v проекта, который слепил в DGIndex. DGIndex хорошо справляется с Transport Streams (ТС или ТS): он распознает PID-ы и дает список, а уже нужные Видео и Аудио можно вручную выбрать по PID-ам. |
kvappa |
![]()
Сообщение
#6
|
![]() Нанотехник с ключом на 12 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Админы Сообщений: 9123 Регистрация: 14 Авг '01 Откуда: Альфа-центавра 2 Юзер Цитировать ![]() |
2
![]() Ага, вот DGIndex - это правильно. В отличие от DVD2AVI, он не теряет некоторых полей, по крайней мере. -------------------- ![]() |
![]() ![]() ![]() |
Lo-Fi Версия | CMSBlog | Сейчас: Суббота, 03 Мая 2025, 15:36 |