Printable Version of Topic
Click here to view this topic in its original format
Forums > Работа с видео и аудио > Редактирование видео, как сдублировать кадр поверх соседнего 'битого'


Posted by: fedorchh on 28-03-2003, 16:42
Иногда при захвате аналогового видео получаются кадры частично заполненные 'мусором'. Часто они довольно заметны при просмотре. По моему, оптимальным решением по соотношению простота/качество является замена такого кадра на один из соседних с ним. Так вот можно ли _БЫСТРО_ произвести такую замену в программе типа VirtualDub или NanDub? Мне пока в голову пришел только такой вариант: отрезать все что до этого кадра, все что после него, и отдельно кадр на который заменяется 'битый'. Потом склеить эти три части назад в один файл.

Posted by: Set on 28-03-2003, 19:42
Быстрее будет 'битый' кадр выкинуть.
Если 'мусора' много, то стоит попробовать какие-нибудь фильтры.

Posted by: Serega_Aachen on 29-03-2003, 14:31
можно всё. но проще вырезать)

Posted by: fedorchh on 29-03-2003, 16:42
Хотелось не только простой, но одновременно и _КАЧЕСТВЕННЫЙ_ способ. Если VirtualDub умеет резать клеить и удалять, то почемубы ему не уметь и вставлять (я думал, что просто не знаю как это сделать). Avisynth же умеет кадры дублировать.
Если просто удалить с десяток кадров, то уже будет заметная рассинхронизация со звуком, а резать кадры вместе со звуком можно далеко не всегда sad.gif

Posted by: VxWorks on 29-03-2003, 17:04
Резать - это вообще проблема... Дуб режет по ключевым кадрам... Т.е. можно, конечно, все, что между ключевыми кадрами, выгнать в серию BMP, затем, заменить ненужный кадр на соседний, затем из BMP монтировать ролик, а потом ставить его между ключевыми кадрами... Геморрой еще тот.
На мой взгляд, такие вещи лучше делать в Вегасе.

Posted by: fedorchh on 29-03-2003, 17:20
VxWorks ты не совсем понял исходные условия, у меня некомпрессированное видео (точнее huffyuv) там все кадры ключевые smile.gif. И я спрашивал существует ли способ в ВиртуалДубе сдублировать кадр поверх соседнего битого быстрее чем:
QUOTE:
отрезать все что до этого кадра, все что после него, и отдельно кадр на который заменяется 'битый'. Потом склеить эти три части назад в один файл



Posted by: VxWorks on 29-03-2003, 17:26
QUOTE:
ты не совсем понял исходные условия, у меня некомпрессированное видео (точнее huffyuv) там все кадры ключевые

Если так, тогда конечно... Сорри smile.gif

А другого способа, чем тот, который ты описал, я не знаю. sad.gif

Posted by: Set on 29-03-2003, 18:56
QUOTE:
Дуб режет по ключевым кадрам...

Так написано в Дубовском хелпе smile.gif , ... однако режим Direct stream copy на самом деле более гибок,
вот описание: http://www.virtualdub.org/docs_processing (http://www.virtualdub.org/docs_processing
(раздел "I tried to cut out some frames in direct stream copy mode, and VirtualDub put them back in!?" )


Posted by: VxWorks on 29-03-2003, 19:28
Set
Интересная инфа... не знал smile.gif
Для тех, кто не читает по-аглицки - если надо удалять фреймы, ни в коем случае не трогайте ключевые кадры, иначе Дуб восстановит их (и, соответственно) все фреймы между ними.

Posted by: Jedd on 30-03-2003, 02:53
Я еще обратил внимание, что если резать не по ключевым кадрам - то звук гулять начинает.
И кстати резать лучше Nandub'ом чем VirtualDub'ом.

Posted by: Set on 30-03-2003, 17:48
Для тех, кто не знает, развею некоторые "мифы" Direct stream copy: smile.gif

в Дубовском хелпе пишется, что в данном режиме, обработка должна начинаться с ключевого кадра, и
в копируемом интервале должны присутствовать все кадры.
QUOTE:
Disadvantages:

· Processing must begin on a keyframe.
· All frames in the range must be copied (no decimation).

В реальности же, этот режим более мощный и позволяет удалять любые кадры,
в том числе и из середины, НО ... если в получившемся видео присутствуют кадры,
для декодирования которых необходимы какие-либо удалённые кадры, то эти удалённые кадры
будут Дубом восстановлены автоматически.
(т.е. если порезать так, что от блока останется, скажем, один дельта кадр, то
ключевой кадр со всеми дельта кадрами перед этим одним, будут восстановлены,
для того чтоб его можно было декодировать.)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)