Перейти к содержимому


!!! Только у нас на форуме !!!
Спектакли от дяди Пчёлки

для просмотра необходима регистрация
Фотография
- - - - -

Чем выполнить IVTC


  • Please log in to reply
9 ответов в этой теме

#1 Крокодил

Крокодил
  • Участниk
  • 4 Сообщений:

Отправлено 17 июн 2007 - 22:38

У меня есть много музыкальных клипов в формате XVID с частотой кадров 29.97/сек. В видеоряде каждый пятый кадр дублирует предыдущий. Это не есть гуд. Из-за этого видео как-бы не очень плавное и весит больше чем должно.
Так вот, облазив везде где только можно, я так и не понял, чем же все-таки можно такое видео перевести в нормальные 23.97 кадров/сек (чтобы удалить эти лишние кадры)?

Сообщение отредактировано Крокодил: 17 июн 2007 - 22:39

  • 0

#2 Dick

Dick
  • Участник
  • 11 196 Сообщений:

Отправлено 17 июн 2007 - 22:51

Т.е.
1 2 3 4 5 5 6 7 8 9 10 10 11 12 13 14 15 15 16 17 18 19 20 20 ..... и т. д. ???

Оригинально..... а как это получилось?

Или просто надо изменить частоту кадров с 29.97/сек. на 23.97 кадров/сек ??? Дык, это, например, в проге ВиртуалДаб можно и др.
  • 0

#3 Крокодил

Крокодил
  • Участниk
  • 4 Сообщений:

Отправлено 17 июн 2007 - 23:02

Это получилось путем перегонки киношных 23.97fps в 29.97fps необходимые для стандарта NTSC. Мне нужно выполнить обратное преобразование, но не знаю чем.
  • 0

#4 black

black
  • Участник
  • 1 057 Сообщений:

Отправлено 17 июн 2007 - 23:11

Adobe AfterEffects это делает, называется remove pulldown (это в свойствах импортированного файла (Ctr+F))

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

to Dick
А как по твоему переводят из кино (24) в NTSC (30)?
  • 0

#5 Serg Falkon

Serg Falkon
  • Модераторы
  • 1 533 Сообщений:

Отправлено 17 июн 2007 - 23:24

Да, в XviD/DivX это только дублированием кадров до (при) кодирования делается. В MPEG2 и h264 это простыми флажками для декодера решается (повторять соответствующие поля соответствующих кадров при выводе ), а само видео таки кодируется как есть.

Еще можно в AVISynth'е удалить. Если СТРОГО равномерное дублирование кадров идет, то просто достаточно. Если неравномерно, то тоже в принципе автоматом может получиться - поиск полностью одинаковых соседних кадров и удаление одного из них.
  • 0

#6 Крокодил

Крокодил
  • Участниk
  • 4 Сообщений:

Отправлено 18 июн 2007 - 14:19

Adobe AfterEffects это делает, называется remove pulldown (это в свойствах импортированного файла (Ctr+F))

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

to Dick
А как по твоему переводят из кино (24) в NTSC (30)?

Логика удвоений не съехала это 100%. В видео ряде четко каждый пятый кадр "вшивый".

Попробывал импортировать в АЕ как ты сказал, но эта опция (remove pulldown) почему-то не активна.

Да, в XviD/DivX это только дублированием кадров до (при) кодирования делается. В MPEG2 и h264 это простыми флажками для декодера решается (повторять соответствующие поля соответствующих кадров при выводе ), а само видео таки кодируется как есть.

Еще можно в AVISynth'е удалить. Если СТРОГО равномерное дублирование кадров идет, то просто достаточно. Если неравномерно, то тоже в принципе автоматом может получиться - поиск полностью одинаковых соседних кадров и удаление одного из них.

Не подскажешь пошагово как это сделать? А то в AVISynth'е я никогда не работал.

Сообщение отредактировано Крокодил: 18 июн 2007 - 14:19

  • 0

#7 Serg Falkon

Serg Falkon
  • Модераторы
  • 1 533 Сообщений:

Отправлено 18 июн 2007 - 15:27

Крокодил
Да несложно. Ставишь AVISynth AviSynth 2.5.7 (его надо, от 7 января 2007).
Затем сперва, например, в VirtualDub'е открываешь исходный avi и смотришь - какие файлы дублируются. Например, строго каждый пятый есть копия предыдущего.
Звук лучше отдельно выкусить, чтобы не пережимать.
Затем:
В любом текстовом редакторе пишешь скрипт типа

AVISource("полный путь до файла\видео.avi", audio=false) - звук не брать
SelectEvery(5, 0, 1, 2, 3) - вот тут как раз и берутся только 4 кадра из каждых пяти
AssumeFPS(23.976) - FPS прописываем исходную, до телесайна какая была.

Сохраняем этот скрипт в файл с расширением .avs (имя любое). И открываем в VirtualDub'е. А лучше, наверное, в VirtualDubMod'е, чтобы с приклейкой звука меньше проблем было. Грузим старый звук, задаем компрессию для видео (пережим видео всегда будет) и сохраняем.

Эта команда (SelectEvery(5, 0, 1, 2, 3) ) подходит, если именно первые 4 кадра файла нормальные, а 5-й - копия 4-го (и т.д.). Если в первой пятерке кадров дублирование произошло с другого места, то вместо 0, 1, 2, 3 надо вписать №№ кадров из первой пятерки без дубля, с учетом, что нумерация с ноля идет в AVISynth'е.

Если что неясно - спрашивай еще.

Если все-таки неравномерно дублирование идет (а вдруг ты не сильно внимательно посмотрел, или просто "на перспективу"), то команды для "отлова" дублей можно в этой ветке на ixbt поискать Экстремальный Ависинт . Правда, в ней 80 страниц :nono:.
  • 0

#8 Dick

Dick
  • Участник
  • 11 196 Сообщений:

Отправлено 18 июн 2007 - 16:30

to Dick
А как по твоему переводят из кино (24) в NTSC (30)?


Чтоб не забивать тему, см. личку.
  • 0

#9 Крокодил

Крокодил
  • Участниk
  • 4 Сообщений:

Отправлено 18 июн 2007 - 17:16

Serg Falkon, спасибо, что объяснил, как пользоваться AVISynth'ом, а то руки все никак не доходили.
Насчет твоего скрипта. Попробовал его и он частично решил проблему. Под частично подразумевается то, что удалились почему-то не все дублированные кадры (т.е. при просмотре они таки появляются, но не как каждый пятый).

Начал искать в гугле и... ЭВРИКА. Нашел решение всех моих бед http://www.animemusicvideos.org/guides/avtech/avsivtc.html .
Там описан скрипт, который и делает это обратное преобразование (Inverse Telecine ):

AVISource("E:\video.avi")
Telecide()
Decimate(5)

На выходе получаю чистый 23.97 без дублей. Сразу видно, что видео стало как-бы плавнее. Единственный минус - без перекодировки не обойтись и скрип работает только с YUV цветом.
Вообщем спасибо еще раз. AVISynth клевая прога..
  • 0

#10 Serg Falkon

Serg Falkon
  • Модераторы
  • 1 533 Сообщений:

Отправлено 18 июн 2007 - 17:59

А как ты смотрел исходник, что у тебя просто каждый пятый кадр - дубль предыдущего? В VirtualDub'е? Именно полный дубль кадра? Тогда "мой" скрипт должен был помочь полностью. Кстати, команда Decimate(5) как раз и удаляет один дублированный кадр из каждых 5, автоматом определяя его положение.
Если же у тебя было "правильное" 3:2 pulldown, то "мой" скрипт не годится, а как раз пара команд Telecide() + Decimate(5) справляются с задачей - первая как раз переводит 3:2 pulldown в последовательность прогрессивных кадров, где каждый пятый - дубль предыдущего (это расписано в DecombReferenceManual.html, что с плагином идет).
  • 0


0 человек читают эту тему

0 пользователей, 0 гостей, 0 скрытых пользователей

Rambler's Top100