Изменить FPS не меняя длительности видеоклипа

Ответить
 

SolarVortex

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

Сообщений: 100


SolarVortex · 04-Апр-11 17:57 (14 лет 5 месяцев назад, ред. 04-Апр-11 17:57)

Наконец появилась программа!
начинала она как "уплавнитель видео", теперь используя её настройки и внедряя их в видеоредакторы (virtualdub например), можно дорисовать кучу промежуточных кадров, а затем в Вашей видеомонтажке вывести проект с требуемой частотой. Ведь выкинуть ненужные кадры проще чем их дорисовать
Всем спасибо, кто так отзывчиво поддерживал тему (решение поставленной задачи) и вывел кучу ценных предложений.
[Профиль]  [ЛС] 

GarfieldX

Техпомощь раздела Кино, Видео и TV

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

Сообщений: 4017

GarfieldX · 05-Апр-11 01:11 (спустя 7 часов)

Цитата:
можно дорисовать кучу промежуточных кадров, а затем в Вашей видеомонтажке вывести проект с требуемой частотой. Ведь выкинуть ненужные кадры проще чем их дорисовать
Хочешь сгенерировать тучу кадров, а потом выбрать те, которые соответствуют временным меткам для равномерного расположения при требуемой частоте кадров?
[Профиль]  [ЛС] 

SolarVortex

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

Сообщений: 100


SolarVortex · 05-Апр-11 03:23 (спустя 2 часа 12 мин., ред. 05-Апр-11 03:23)

Скорее да, чем нет. В теории - всё должно получиться, но как всегда - нужно проверять.
Ведь по идее, монтажки так и делают, когда вставляешь видеофрагмент в проект с меньшим FPS.
Это с бОльшим не получалось - в том и была задача: нужно было дорисовывать. И монтажка это делала, но делала не просчитывая все кадры, а раз в секунду (т.е. тупо дублировала последние кадр-два). Получалось двоение/торможение/подёргивание.
Другими словами ни одна монтажка не утруждает себя математикой при увеличении FPS.
[Профиль]  [ЛС] 

Pustovetov

AVC-Видео

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

Сообщений: 4247

Pustovetov · 05-Апр-11 06:32 (спустя 3 часа)

SolarVortex писал(а):
Наконец появилась программа!
Вообщем то эту же "программу" Вам дали тут https://rutr.life/forum/viewtopic.php?p=40031797#40031797
[Профиль]  [ЛС] 

SolarVortex

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

Сообщений: 100


SolarVortex · 05-Апр-11 07:41 (спустя 1 час 8 мин., ред. 05-Апр-11 07:41)

Pustovetov
Верно, дали. Готовый скрипт, не гарантирующий требуемого результата.
В SVP же, и особенно в последней версии очень гибкие настройки, не требующие знания консольных языков. Причём все настройки можно пронаблюдать в реальном времени.
[Профиль]  [ЛС] 

Tim68

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

Сообщений: 712


Tim68 · 05-Апр-11 10:36 (спустя 2 часа 55 мин.)

SolarVortex
Пакет программ о котором идет речь расчитан на увеличение частоты в реальном времени и поэтому использует облегченные алгоритмы анализа движения, в случае сильного движения в кадре промежуточные кадры не строются, а создаются дубли (своеобразная защита от артифактов).
Вывод: Рассматривать данный пакет программ для качественного построения промежуточных кадров не стоит.
[Профиль]  [ЛС] 

SolarVortex

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

Сообщений: 100


SolarVortex · 05-Апр-11 11:02 (спустя 25 мин.)

Tim68
Не совсем так. Почитайте про алгоритмы программы.
В любом случае разумеется это не панацея. Другого варианта-то пока нет.
[Профиль]  [ЛС] 

GarfieldX

Техпомощь раздела Кино, Видео и TV

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

Сообщений: 4017

GarfieldX · 05-Апр-11 16:20 (спустя 5 часов)

SolarVortex писал(а):
Другого варианта-то пока нет.
Вообще есть.... не заниматься глупостями
Такими преобразованиями ведь никто не занимается.
[Профиль]  [ЛС] 

SolarVortex

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

Сообщений: 100


SolarVortex · 05-Апр-11 17:36 (спустя 1 час 15 мин.)

Дать ссылок на видеофорумы???
Говорю как есть: это проблема, и проблема серьёзная.
[Профиль]  [ЛС] 

Pustovetov

AVC-Видео

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

Сообщений: 4247

Pustovetov · 05-Апр-11 18:23 (спустя 47 мин.)

SolarVortex писал(а):
Говорю как есть: это проблема, и проблема серьёзная.
Нет такой проблемы. Ваще.
[Профиль]  [ЛС] 

SolarVortex

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

Сообщений: 100


SolarVortex · 05-Апр-11 19:15 (спустя 51 мин.)

Ну что ж, рад за Вас. Можете проходить мимо.
[Профиль]  [ЛС] 

Tim68

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

Сообщений: 712


Tim68 · 05-Апр-11 19:23 (спустя 8 мин.)

SolarVortex писал(а):
Не совсем так. Почитайте про алгоритмы программы.
Совсем так. За профильной веткой на ixbt слежу с момента появления. В основе алгоритма борьбы с артифактами в сегодняшнем SVP лежит скрипт Юшко, который как раз и выдает дубли при значительных перемещениях в кадре.
Если порыться в инете, то можно конечно встретить "тяжелейшие" алгоритмы по анализу движений в кадре используя которые можно получить видеоряд с минимальнейшими искажениями, ну и работают они не быстрее чем 0,01fps.
Само по себе преобразование частоты кадров дело интересное, рассматривается побочный эффект, например по моим умозаключениям может приводить к стабилизации изображения.
Нарисовал как смог но смысл думаю будет понятен. Преобразование 29,97fps в 23,976fps.
Зачем? Просто было необходимо.

Жаль, что нет под руками Mac OS-и, можно было бы проверить информацию.
Код:
Технология Core Animation предназначена для разработчиков приложений. Эта технология позволяет создавать потрясающие визуальные эффекты при минимальных затратах и знаниях со стороны девелоперов.
Core Animation прекрасно интегрирован с ядром OS X и позволяет добиться максимальной производительности при просчете графики.
Также Core Animation предоставляет широкие возможности для автоматизации. Достаточно задать только ключевые кадры, начальное и конечное состояния объектов, остальное Core Animation сделает за вас!
[Профиль]  [ЛС] 

Pustovetov

AVC-Видео

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

Сообщений: 4247

Pustovetov · 05-Апр-11 20:09 (спустя 46 мин.)

SolarVortex писал(а):
Ну что ж, рад за Вас. Можете проходить мимо.
Нет чтобы задуматься почему это у меня нет такой проблемы, а у Вас она есть. Вдруг и у Вас ее нет в реальности, а есть банальное незнание матчасти?
[Профиль]  [ЛС] 

SolarVortex

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

Сообщений: 100


SolarVortex · 05-Апр-11 21:02 (спустя 52 мин., ред. 05-Апр-11 21:02)

Tim68
Благодарю за труды. Но Вы же сами говорите: "В основе алгоритма борьбы с артифактами". То есть дубли идут для борьбы с заразой. А рисованием промежутков занимаются другие алгоритмы, просчитывающие сколько нужно этих промежуточных кадров. Ведь в противном случае уплавнения бы просто не получилось. Видео бы тупо - замедлялось.
Кстати по стабилизации изображения. Где-то читал, что именно так и делают видеокамеры, когда включен эффект подавления дрожания рук.
Жаль что Core Animation только под Mac OS. Но отчаиваться рано. Думаю моя задумка вполне качественно воплотится (постараюсь проверить на неделе). Ведь мне требуется просчитать не целый фильм, а лишь некоторые кусочки, да и кадров-то надо добавить лишь пару-тройку. Чтобы не дёргалось и выдерживало метраж. Полагаю артефактов при этом будет незначительно.
[Профиль]  [ЛС] 

GarfieldX

Техпомощь раздела Кино, Видео и TV

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

Сообщений: 4017

GarfieldX · 06-Апр-11 00:56 (спустя 3 часа)

Pustovetov писал(а):
Нет такой проблемы. Ваще.
Совершенно верно.
SolarVortex
Задача: сгенерировать тучу промежуточных кадров при исходном fps=23.976 так, чтобы из этого массива можно было с минимальной погрешностью выбрать равнорасположенные по времени кадры для видео с fps=25. Если не будет совпадения по времени хотя бы до сотых долей секунды, то предположу, что видео будет местами дергаться вперед-назад. Где то будет чуть замедляться, где то ускоряться.
По идее получается так, что для секунды видео при разных fps у нас совпадает только один кадр - начальный. Остальные придется генерировать. Причем те, которые подойдут по времени будут сгенерированны на основе даже не исходных кадров, а их далеких потомков. Т.е. вероятность, что будет куча артефактов очень высока.
Цитата:
То есть дубли идут для борьбы с заразой.
Дубли идут потому что алгоритм банально не в состоянии выдать качественный результат при быстрых сменах плана и просто халтурит.
SolarVortex писал(а):
А рисованием промежутков занимаются другие алгоритмы, просчитывающие сколько нужно этих промежуточных кадров. Ведь в противном случае уплавнения бы просто не получилось. Видео бы тупо - замедлялось.
Задача "уплавления" значительно проще. Там нужно лишь сгенерировать 2-3 промежуточных кадра равнорасположенных между исходными кадрами. Дальше лишь останется поднять fps в те же 2-3 раза и получим более плавное видео той же продолжительности.
[Профиль]  [ЛС] 

Tim68

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

Сообщений: 712


Tim68 · 06-Апр-11 09:46 (спустя 8 часов)

GarfieldX писал(а):
Дубли идут потому что алгоритм банально не в состоянии выдать качественный результат при быстрых сменах плана и просто халтурит.
Именно так, SVP расчитан на работу в реальном времени и из за сложности расчетов имеет на борту только облегченные алгоритмы анализа движения.
[Профиль]  [ЛС] 

nayTuHbl4

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

Сообщений: 25


nayTuHbl4 · 24-Май-11 14:46 (спустя 1 месяц 18 дней)

подскажите, пожалуйста, софтинку для измерения точного fps
суть дела:
имеется несколько видеофайлов (вытащенных из ДВД), с частотой кадров близкой к 29.97, но при попытке конверта с этой частотой видео немного разъезжается со звуком. погугли возможные варианты и выяснил, что бывает ещё частота 29.975. некоторые файлы сошлись с этой частотой, но не все.
измерять пробовал следующими методами:
- MediaInfo (часто врёт, место 29.975 пишет 23.976)
- MPC (лучше, но только до сотых частей кадра)
- VLC (выдаёт число 59.940059, что при делении на 2 даёт 29.9700295 на всех роликах. сейчас кодирую с этой частотой, но очень сомневаюсь, что результат будет положительный, т.к. частота, очевидна, у роликов разная, да и, к тому же, 3 стотысячных вряд ли сделают погоды)
[Профиль]  [ЛС] 

SolarVortex

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

Сообщений: 100


SolarVortex · 24-Май-11 16:46 (спустя 2 часа)

Мне думается что рассинхрон не из-за несовпадения фпс. Что-то с монтажкой. Судя по своему опыту, для склейки файлов вполне достаточно сотых долей.
[Профиль]  [ЛС] 

silencerF

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

Сообщений: 458


silencerF · 24-Май-11 19:05 (спустя 2 часа 18 мин.)

А ты посчитай сколько даёт сотая доля от fps на 2часах
[Профиль]  [ЛС] 

SolarVortex

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

Сообщений: 100


SolarVortex · 25-Май-11 16:24 (спустя 21 час)

Лично я - как-то куски по 2 часа не клеил.
[Профиль]  [ЛС] 

1st_Novel

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

Сообщений: 264

1st_Novel · 13-Сен-11 12:36 (спустя 3 месяца 18 дней)

см. Adobe Premiere Frame Blending / Adobe After Effects Frame Blending Pixel Motion
[Профиль]  [ЛС] 

SolarVortex

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

Сообщений: 100


SolarVortex · 13-Сен-11 12:56 (спустя 19 мин.)

Пробовал. Потеря качества сильная.
Пока что твикстор спасает: в некоторых случаях, где изображение более-меннее статично и нет резкой смены сюжета.
По-прежнему, упование на SVP.
[Профиль]  [ЛС] 

yaboxer

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

Сообщений: 87


yaboxer · 22-Ноя-11 07:33 (спустя 2 месяца 8 дней)

У меня файл в формате mp4 с непонятной частотой кадров 10 fps. При просмотре на медиаплеере всё нормально (в ВиртуалДабе покадрово тоже всё гладко). Однако мне не удается перевести его на двд диск, т.к. при авторинге как PAL 25 fps, получается брак в виде повторяющихся кадров. Если я не меняю частоту кадров и оставляю как есть 10 fps, то все равно в итоге после авторинга получается брак в виде кадров-дубликатов. Как можно безболезненно превратить 10 fps в 25 fps, но так, чтобы длительность клипа и его скорость воспроизведения после преобразования не изменялись?
[Профиль]  [ЛС] 

yazev70

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

Сообщений: 36


yazev70 · 25-Дек-12 18:58 (спустя 1 год 1 месяц)

yaboxer писал(а):
49295267У меня файл в формате mp4 с непонятной частотой кадров 10 fps. При просмотре на медиаплеере всё нормально (в ВиртуалДабе покадрово тоже всё гладко). Однако мне не удается перевести его на двд диск, т.к. при авторинге как PAL 25 fps, получается брак в виде повторяющихся кадров. Если я не меняю частоту кадров и оставляю как есть 10 fps, то все равно в итоге после авторинга получается брак в виде кадров-дубликатов. Как можно безболезненно превратить 10 fps в 25 fps, но так, чтобы длительность клипа и его скорость воспроизведения после преобразования не изменялись?
http://code.google.com/p/xvid4psp/downloads/list
https://rutr.life/forum/viewtopic.php?t=4119816
[Профиль]  [ЛС] 

Areyou

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

Сообщений: 1724


Areyou · 25-Дек-12 21:36 (спустя 2 часа 37 мин.)

yaboxer
При такой низкой исходной кадровой частоте интеллектуальные методы интерполяции недостающих кадров бесполезны. Получите реальный "брак" - страшенные артифакты на движушихся участках (не теряйте времени на соотв. фильтры Ависинта или на паразитирующую на его скриптах программу). При такой частоте кадров можно рассчитывать на удачу в интерполяции только при съемке движения луны со штатива.
А при отправке 10 fps на кодер с выходной установкой 25 fps он будет добавлять кадры неравномерно во времени, и обязательно возникнут рывки в воспроизведении движения и (как вы уже заметили) будет хуже, чем в исходном варианте. Поэтому меньшее из зол - добавить повторные кадры на кратной основе, т.е. до 30 fps. Чтобы не подгонять звук, можно отбросить каждый 1001-й до 29.97. В принципе, надежнее сделать это в Ависинте ( ChangeFPS("ntsc_video") ), но и кодер с аналогичными установками может это сделать. Тогда хоть и с повторными кадрами, но фазы движения будут во времени следовать равномерно.
[Профиль]  [ЛС] 

Slim9174

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

Сообщений: 1559

Slim9174 · 06-Янв-13 03:17 (спустя 11 дней, ред. 06-Янв-13 03:17)

Тоже вопрос про не стандартный фпс.
Имеем видео записанное с экрана (оно определяется как прогрессивное) 15 fps.
Насколько я знаю 15 fps = 29.970 fps. А это уже телекино) следовательно надо преобразовывать в 23.976.
Посоветуйте как на ваш взгляд лучше.
Цитата:
DirectShowSource("J:\123.avi", audio=false, fps=15.000, convertfps=true)
ConvertToYV12()
ChangeFPS(29.97)
TDecimate(cycleR=1, cycle=5) #remove 1 frame from every 5 frames
Или все же сразу напрямую сделать ChangeFPS(23.976)
Кстати говоря не одним и не другим способом продолжительность не меняется. Но меня волнует как все же будет более правильней и без дефектов в фреймах
[Профиль]  [ЛС] 

Areyou

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

Сообщений: 1724


Areyou · 06-Янв-13 10:25 (спустя 7 часов)

Slim9174 писал(а):
57198401Насколько я знаю 15 fps = 29.970 fps. А это уже телекино) следовательно надо преобразовывать в 23.976
23.976 имеет смысл восстанавливать только из 29.97 и только в том случае, если при создании 29.97 имел место обратный процесс (pulldown - растяжка кино 24 fps до телевизионной частоты кадров). Тогда производится перестановка ранее добавленных полей с образованием повторного 5-го кадра, затем - его удаление. Если вы будете просто вставлять кадры от 15 до 23.976 (любым способом), получите неравномерность движения, которой нет в исходном видео (если оно нормальное - без повторных кадров, и из телевизионого источника). Поэтому лучше ChangeFPS("ntsc_video") или ConvertFPS("ntsc_video") до 29.97. Во втором случае вставляются смешанные кадры (более плавное движение, но слегка замутненное изображение).
Если движение между кадрами медленное и без тряски, можно попытаться интерполировать кадры с mvtools2 (в этом случае пересчитываются все кадры, и частоту можно выбирать более свободно).
[Профиль]  [ЛС] 

yr2s75fv

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

Сообщений: 13


yr2s75fv · 08-Апр-13 20:20 (спустя 3 месяца 2 дня)

Pustovetov писал(а):
43926761
SolarVortex писал(а):
Говорю как есть: это проблема, и проблема серьёзная.
Нет такой проблемы. Ваще.
Для меня это проблема №1
[Профиль]  [ЛС] 

tiger9991

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

Сообщений: 196

tiger9991 · 27-Ноя-13 00:55 (спустя 7 месяцев)

Использую такой скрипт для AviSyntch:
LoadPlugin("c:\Program Files (x86)\MeGUI\tools\mvtools\mvtools.dll")
LoadPlugin("c:\Program Files (x86)\MeGUI\tools\ffms\ffms2.dll")
source = FFVideoSource("f:\output\13\1x04 - Un Altra Vita.avi")
source = trim(source,500,1500)
source = ConvertToYV12(source)
backward_vec = source.MVAnalyse(overlap=4, isb = true, pel=2, search=3, idx=1)
forward_vec = source.MVAnalyse(overlap=4, isb = false, pel=2, search=3, idx=1)
source.MVFlowFps(backward_vec, forward_vec, num=2*FramerateNumerator(source), den=FramerateDenominator(source), idx=1)
Получаемое после кодирования x264 видео ( в данном случае отдельный участок) меня не особо устраивает, хотя вполне вероятно играет роль и то, что кодируется уже сжатое xvid ом видео с невысоким битрейтом (1300).
Как-то недавно смотрел Форсаж 6 с 60fps, очень приятно глазу, причем ускорения не заметил при проигрывании, значит все-таки программно интерполировали промежуточные кадры... Надо бы попробовать перекодировать отрывок из видеодорожки одного из блюров..
[Профиль]  [ЛС] 

SolarVortex

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

Сообщений: 100


SolarVortex · 28-Ноя-13 08:39 (спустя 1 день 7 часов)

Не совсем понятно что делает скрипт - расставляет кадры по временному промежутку (что и требуется) или же всё-таки интерполирует и генерит дополнительные промежуточные кадры?
Однако, огромная благодарность Вам, попробую тоже так сделать.
[Профиль]  [ЛС] 
 
Ответить
Loading...
Error