60 fps своими руками

Электрический блогнот

мои заметки на полях

fpska — делаем 60 fps видео

Содержание

Технология 60fps (60 кадров в секунду) позволяет улучшить восприятие видео. Хотя нет, не так, лучше сказать, что видео с частотой 60 кадров в секунду смотрится совершенно по другому. А уж лучше или хуже — это зрителю решать 🙂 Движения кажутся плавными без подергиваний. Особенно сильно эффект от перевода видео в 60fps наблюдается на сценах с панорамированием, когда камеру ведут, чтобы охватить, как можно больше сцены или на видео снятого с короткой выдержкой, когда весь видеоролик превращается в быстрое, мерцающее слайд-шоу (при короткой выдержке нет смаза, поэтому переход от кадра к кадру идет не плавно). Тут сразу следует оговориться про терминлогию. Почему 60fps, а не 50fps? Проще говоря, когда видео стало широко входить в массы было 2 типа частоты кадров: 25 кадров в секунду (25fps) и 30 кадров в секунду (30fps). В Европе и в Росси были распространены 25, в США — 30.


25/30 fps А теперь, когда появилось мощное оборудование, экраны телевизоров перестали мазать люминофором с обратной стороны (шутка), появились 50fps и 60fps. То есть 25fps перешло в 50fps, а 30fps в 60fps. Для простоты мы будем придерживаться термина 60fps, подразумевая что есть видео 50fps. Сейчас наблюдается тенденция ухода в сторону 60fps. Многие современные видеокамеры могут записывать видео в формате 1080p, 60fps, что уж говорить про профессиональные. Но что делать тем у кого в архиве видео снятое на старый-добрый 25/30fps? Им как быть? Можно все оставить, как есть и не переводить в 60fps. Но если уж захочется, то можно и попробовать 🙂

Как это работает

Существует много технологий перевода видео в формат 60fps. Можно сказать, перевод видео в формат с удвоенной частотой кадров. Но все они сводятся к одному и тому же, нужно между соседними кадрами «втиснуть» еще один. Вопрос в том, откуда этот кадр взять? И вот тут начинается самое интересное. Кто-то предложил в качестве этого кадра взять предыдущий и просто показать его 2 раза. А кто-то предложил этот кадр выстроить заново, взяв за основу предыдущий и последующий кадры старого видео, что оказалось, вобщем-то нетривиальной задачей. А кто-то предложил полукадры интерлейсного видео достроить до полного кадра и тем самым удвоить частоту. Многое что предалагали.

Fpska не показывает видео с удвоенной частотой кадров. Она создает новое видео с удвоенной частотой кадров на основе оригинального.


fpska не показывает, а «перерабатывает» видео из одного формата в другой Конвертацию нужно сделать только один раз, а дальше можно залить на Youtube, загрузить в телефон и так далее. Конвертация заточена под максимальное качество. Для разных типов видео можно подобрать такие параметры создания промежуточных кадров, чтобы процесс пошел быстрее. Но так как заранее не известно какой тип движения будет в кадре, то все настройки выкручены на Max. Можно сказать, что «из пушки по воробьям», зато не надо каждый раз думать про подбор параметров.

Fpska понимает самые распространенные форматы/контейнеры avi, mkv, mp4, mov, 3gp, flv.
Mts, m2v — не подходят.

Читайте также:  Вакуумная машина для откачки канализации своими руками

Пример удвоения частоты для видео с 24 кадрами в секунду (воспроизведите видео один раз, чтобы оно полностью поместилось в память, а затем нажмите Play еще раз, чтобы сравнить 24fps и 48fps):
24fps

48fps

24fps

48fps

30fps

60fps

24fps

48fps

Для перевода видео в 60fps мы будем вставлять промежуточный кадр между двумя соседними. Для этого воспользуемся широко известной библиотекой от команды SVP-Team. В завимости от требуемого качества процесс расчета промежуточного кадра может быть очень трудоемким с точки зрения затрачиваемого процессорного времени и памяти. Fpska настроена на максимальное качество поэтому процесс конвертирования может занимать очень много времени. Поэтому если у вас 30-50 минутное видео то лучше оставить скрипт на ночь к утру все будет готово.

Кадр 1

Восстановленый кадр

Кадр 2

Тут всего лишь демонстрируется, что «синтетический» кадр был полностью воссоздан по предыдущим и последующим кадрам и фактически не сильно от них отличается, а это самое главное для алгоритма расчета промежуточного кадра.

Удваивать частоту лучше для progressiv видео. Честно говоря непонятно имеет ли смысл удваивать частоту для interlaced video. Поэтому, если планируете удваивать частоту для видео со старой VHS камеры или запись с телеэфира, то сначала избавьтесь от «гребенки».

Установка

Процесс установки подробно описан в Fpska v0.5

Видеоинструкция

Примеры

Несколько примеров демонстрирующих работу Fpska:
делаем 60 fps видео с помощью fpska

Источник

Как улучшить качество видео. Увеличиваем частоту кадров с 24 FPS до 60 FPS

К аким бы качественным ни казалось воспроизведение видео, его всегда можно улучшить. Способов оптимизации видео существует довольно много, но одним из самых важных является настройка плавности. Причины, по которым воспроизведение может показаться недостаточно плавным, могут быть различны, но, как правило, это связано с недостатками производительности компьютера и его графической подсистемы, неправильным порядком чередования полей интерлейсного видео, а также несовпадением частоты кадров и частоты обновления экрана.

Большинство видеофайлов, которое сейчас можно скачать в интернете, имеют частоту 24 FPS. Этот стандарт был принят ещё в 1932 году как компромисс между качеством воспроизведения и расходом киноплёнки. Воспроизведение видео с частотой 24 кадра в секунду можно было бы сделать более плавным, если снизить частоту обновления экрана до 24 Гц. Но сделать это можно только для экранов телевизоров, если же вы откроете настройки монитора компьютера или ноутбука, скорее всего доступными окажутся только два параметра: 50 Гц и 60 Гц. Дисплеи с поддержкой 24p встречаются редко, но если ваш монитор является одним из них, считаете, что вам повезло.

А вот что делать всем остальным? Пойти обратным путём. Если частоту обновления монитора нельзя снизить до частоты кадров видео, то увеличить частоту кадров видео до существующей частоты обновления экрана очень даже возможно. Как?

Методом интерполяции соседних кадров. Суть его заключается в добавлении в видеоряд промежуточных кадров, сгенерированных на основе двух «настоящих» соседних кадров. Для этого мы предлагаем использовать специальную программу SmoothVideo Project или сокращенно SVP. Принцип её работы хорошо демонстрирует рисунок, взятый с официального сайта проекта.

Главное преимущество этой программы в том, что она не нуждается в дополнительных настройках, а поэтому может быть использована даже новичками. SVP включает в себя два основных модуля: SVPflow и SVP Manager. Первый модуль отвечает за расчёт и добавление кадров в видеопоток, второй обеспечивает доступ к настройкам параметров программы. Скачать полную (не Core) версию пакета можно с официального сайта www.svp-team.com/wiki/Download/ru. Для корректной работы SVP вам также понадобится видеоплеер с поддержкой внешних фильтров DirectShow. Лучше всего для этих целей подойдет 32-разрядный(!) Media Player Classic Home Cinema (MPC-HC). По умолчанию MPC-HC уже входит в инсталляционный пакет SVP, поэтому самым разумным будет установить его стандартную версию с теми параметрами, которые предлагает мастер и не мучиться впоследствии с настройками фильтров. Компонент рендер MadVR для работы SVP не является обязательным, но можно отметить и его.

Читайте также:  Говорящая шляпа гарри поттер своими руками

Если MPC-HC уже установлен

Если у вас уже имеется Media Player Classic Home Cinema, галочку в окне мастера установщика SVP можно снять, но при этом сам плеер придётся немного настроить, в частности, добавить в него компоненты ffdShow и Avisynth. Для этого переходим в настройки плеера,

В левой колонке находим «Внешние фильтры», жмём «Добавить».

И в открывшемся окошке выбираем «ffdshow raw video filter».

Возвращаемся в окно настроек и устанавливаем для добавленного фильтра галочку «Предпочесть». Для добавления Avisynth открываем в MPC-HC любой видеофайл, переходим в системный трей, находим там значок ffdshow и двойным кликом по нему открываем настройки ffdshow raw video decoder configuration.

Отыскиваем в левой колонке пункт Avisynth и отмечаем его галочкой.

Если же MPC-HC устанавливался вместе с SVP , ничего настраивать не нужно. SVP достаточно умна и все необходимые настройки производит сама с учетом конфигурации конкретного компьютера, и чтобы преобразовать видео 24 FPS в 60 FPS, достаточно просто запустить в MPC-HC на воспроизведение любой видеофайл. При этом в нижней левой части окна плеера у вас должна появиться строка «SVP: Воспроизведение 23.976 * (18:7) = 61.653 fps Автоподрезка: [0:0:0:0]» .

У вас соотношение сторон и FPS могут отличаться, но это не важно. Если такая строка появилась, считайте что всё сделано правильно и плавность воспроизведения вам обеспечена.

Особенности работы SVP

Что касается настроек самой SVP, они вам не понадобятся. Впрочем, ознакомиться с ними всё же стоит, только менять ничего не нужно, разве что вы точно знаете, к чему приведут ваши действия.

Возможно, у наших читателей уже возник вопрос, а не скрывается за всем этим какой-то подвох? Уж слишком всё просто. Нет, подвоха здесь нет никакого, однако алгоритм интерполяции SVP не лишён определённых недостатков.

Во-первых, это повышенная нагрузка на центральный процессор на всём протяжении просмотра видео. Объясняется это тем, что расчёт дополнительных кадров и встраивание их в видеоряд программа производит на лету. Во-вторых, при просмотре видео, содержащего сцены с быстродвижущимися объектами, иногда могут проявляться незначительные артефакты в виде туманных ореолов, чьи размытые контуры напоминают перемещающийся объект. И всё же на фоне всех преимуществ, которых даёт использование SVP, эти недостатки кажутся весьма незначительными.

Источник

60 fps своими руками

  • С помощью этого скрипта можно перевести видео с частотой /15/24/25/30/50 кадров в секунду в видео с частотой 60 кадров в секунду, посредством создания и добавления промежуточных кадров.
  • Скрипт работает со следующими контейнерами: mp4, mkv, m2ts, avi, wma, mpg.
  • Не нужно устанавливать никаких кодеков (все идет в комплекте).
  • Для рассчета промежуточных кадров используется библиотека svpflow от команды www.svp-team.com. По сути, fpska является framework’ом (надстройкой над библиотекой svpflow). В зависимости от разрешения исходного видео перекодирование в 60 fps может занимать очень много времени и требовать много машинной памяти, так, например, перекодирование видео в формате 4K идет со скоростью 0.1fps, что очень медленно. Это обусловлено тем, что в программе рассчета промежуточных кадров используются настройки для достижения наилучшего качества вставляемых кадров. Следует сказать, что данный скрипт планировался для перекодирования коротких по времени видеороликов (5-15 минут), поэтому все настройки были «взвинчены» на максимальный уровень.
Читайте также:  Двери под раковину своими руками

Сообщение отредактировал voran — 01.11.20, 17:19

Exiting. (End of file)
Скопировано файлов: 1.
«2 method: » slow
«threads: » 2
«3 method: » slow
«slow»
MEncoder Redxii-SVN-r37946-6.2.0 (i686) (C) 2000-2017 MPlayer Team
FFmpeg version: N-86746-g2f84f40d45
Build date: 2017-07-10 02:57:44 EDT

WARNING: OUTPUT FILE FORMAT IS _AVI_. See -of help.
success: format: 0 data: 0x0 — 0x2e2
libavformat version 57.75.100 (internal)
============ Sorry, this file format is not recognized/supported =============
=== If this file is an AVI, ASF or MPEG stream, please contact the author! ===
Cannot open demuxer.

Exiting.
MEncoder Redxii-SVN-r37946-6.2.0 (i686) (C) 2000-2017 MPlayer Team
FFmpeg version: N-86746-g2f84f40d45
Build date: 2017-07-10 02:57:44 EDT

WARNING: OUTPUT FILE FORMAT IS _AVI_. See -of help.
File not found: ’60fps_video.mp4′
Failed to open 60fps_video.mp4.
Cannot open file/device.

Exiting.
13:46:43,83
Для продолжения нажмите любую клавишу . . .

Voran, Здравствуйте!
На Вашей страничке недавно спрашивал как прикрутить Ваш скрипт к StaxRip (он на основе 64-х битного avisynth), не получил там ответа.

Я разобрался как использовать StaxRip — он оказался намного удобней FPS’ки, т.к. можно создать настраиваемые шаблоны для обработки и кодирования видео пачками (чистить от шума тоже приходится, а также выполнять деинтерлейс, преобразовывать из 4K в HD, и прочие операции)

На основе Вашего файла fpska_slow.avs, сделал для StaxRip шаблон-скрипт для превращения любого видео в 60 fps.
Пришлось добавить несколько параметров, в т.ч. и scene: — т.к. без них на двух кусочках видео были артефакты в виде волн от предметов, в т.ч. и через Вашу FPS’ку (когда вектор движения людей резко менялся).

Смонтировал несколько домашних видео, а также сделал себе версию Чародеев в 60 FPS — доволен.

Мой шаблон-скрипт для StaxRip, думаю кому-то еще пригодится — т.к. в инете есть варианты только с большим количеством артифактов у перекодированного видео.
————
SetMemoryMax(6144)
global threads=8
LoadPlugin(«C:\Program Files (x86)\SVP 4 Dev\plugins64\svpflow1_64.dll»)
LoadPlugin(«C:\Program Files (x86)\SVP 4 Dev\plugins64\svpflow2_64.dll»)

global crop_string = «»
global resize_string = «»

global demo_mode=0
global stereo_type=0

function interpolate(clip src)
<
input = crop_string==»» ? src : eval(«src.»+crop_string)
input = resize_string==»» ? input : eval(«input.»+resize_string)

#MT-MODE-1 #do not remove this line!

super=SVSuper(input, super_params)
vectors=SVAnalyse(super, analyse_params, src=input)
smooth=SVSmoothFps(input, super, vectors, smoothfps_params, mt=threads, src=src)
#smooth=AssumeFPS(smooth,50)

#MT-MODE-2 #do not remove this line!

return demo_mode==0 ? smooth : demo(input,smooth)
>

stereo_type==0 ? eval(«»» interpolate(input)
«»») : stereo_type==1 ? eval(«»»
lf = interpolate(input.crop(0,0,input.width/2,0))
rf = interpolate(input.crop(input.width/2,0,0,0))
StackHorizontal(lf, rf)
«»») : stereo_type==2 ? Eval(«»»
lf = interpolate(input.crop(0,0,0,input.height/2))
rf = interpolate(input.crop(0,input.height/2,0,0))
StackVertical(lf, rf)»»») : input
Prefetch(threads)
————-

Я видел Ваше сообщение. Полез смотреть про StaxRip, понял, что это довольно таки мощный комбайн.
Да, несомненно, FPSk’у можно прикрутить к любому avisynth pipelin’у. Но, я когда ее делал старался максимально упростить ее использование, для людей, которые только-только освоили командную строку. Даже сделал вариант, мышкой перетащить видео на значок с FPSk’ой и кодирование начнется. Просто все методы пергона 30fps в 60fps на основе библиотеки svpflow довольно таки перенружены скриптами, я же максимально упрощал 🙂

Сообщение отредактировал voran — 20.11.17, 18:00

Источник

Оцените статью