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

Содержание

Как это работает
Установка
fpska – для новичков
fpska – для продвинутых
Видеоинструкция

Технология 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

[collapse]

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

Пример восстановленного кадра

Кадр 1

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

Кадр 2

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

[collapse]

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

Установка

  1. Скачиваем архив fpska.zip и распаковываем его:


    Разархивироанная fpska

    НЕ ИСПОЛЬЗУЙТЕ РУССКИХ БУКВ В НАЗВАНИЯХ ДИРЕКТОРИЙ И ФАЙЛОВ!
  2. Устанавливаем Avisynth из архива distr\AviSynth_260.exe (устанавливаем, как обычное приложение, следуем инструкциям инсталлятора, настройки не меняем, соглашаеимся с тем, что предложат):


  3. Копируем dll’ку distr\avisynth.dll в папку (это многопоточная версия Avisynth библиотеки, специально собранная для работы сплагином svpflow):
    c:\Windows\SysWOW64\ (в случае Windows 64)
    c:\Windows\System32 (в случае Windows 32)
    

    Это нужно для того, чтобы можно было запустить процесс конвертирования в параллельном режиме.



  4. Скачиваем библиотеку svpflow (http://www.svp-team.com/files/gpl/svpflow-4.0.0.128.zip):



    распаковываем архив, файлы svpflow-4.0.0.128\lib-windows\avisynth\x32\svpflow1.dll и svpflow2.dll копируем в папку fpska\svpflow. Внимание, берем именно 32-битные файлы.



    Если svpflow1.dll и svpflow2.dll не будут скопированы в папку fpska\svpflow, то при запуске конвертирования будет сообщение об ошибке:

    "---------------------------"
    Net biblioteki svpflow1.dll
    svpflow\readme.txt - instruktsiya po ustanovke
    "---------------------------"
    

fpska – для новичков


Некоторые из читателей могут сказать: “Хватит! Давай запустим наконец то, не хочется вникать во все эту премудрости!” и будут абсолютно правы. Изначально fpska проектировалась, как скрипт в один клик, все в одном флаконе, чтобы максимально упростить действия по установке и запуску. Чтобы не вникать во все эти кодеки, видеоформаты, настройки кодирования, параметры рассчета промежуточных кадров и так далее. Нажал, кнопку и пошел пить чай (или еще какой-нибудь напиток).
Итак, мы уже установили fpsk’у. Теперь сразу можно запустить конвертирование видео в формт 50/60fps, для этого просто перетащите мышкой видеофайл на скрипт fpska.bat в проводнике:



сразу же запустится процесс конвертации. Появится окно консоли в котором можно наблюдать за текущим статусом конвертирования.



Как только появится надпись:



значит конвертация завершилась успешно и 60fps видео можно забрать из папки, в которую была установлена fpsk’а:



Результат конвертации находится в файле 60fps_video_and_audio.mp4

fpska – для продвинутых


Навыки работы с командной строкой дают больше преимуществ при работе с fpsk’ой, чем работа из проводника в быстром старте.
Методика работы в этом случае выглядит следующим образом.

    1. Запускаем любимый file manager (например, Far) и преходим в папку с установленной fpsk’ой.
    2. Копируем в эту папку видеоролик, который надо перевести в 60fps.
    3. Запускаем конвертирование:
       

      fpska.bat <файл с видео> <режим> <число процессоров>
      

      режим: “fast”, “slow”:
      fast – проверка установки и настроек,
      slow – чистовое конвертирование

      число процессоров: – тесты показали, что при использовании 6-и процессоров увеличение скорости ковертирования равно 4. То есть эффективность распараллеливания не такая высокая, как хотелось бы. Тем не менее, выгоднее задействовать, как можно больше процессоров в системе.

      Со скриптом поставляется тестовый видеоролик video.mov, запуск перекодирования будет выглядеть так:

      Hi-Quality (высокое качество)

      fpska.bat video.mov slow 2
      

      Медленно рассчитывает промежуточные кадры и медленно кодирует, зато качество видео максимальное.

      Low-Quality (низкое качество)

      fpska.bat video.mov fast 2
      

      Этот режим используется для проверки установки всего пакета.

      После того, как процесс кодирования закончится в текущей папке появится файл 60fps.mkv – это и будет результирующее видео.

      Важно убедиться, что антивирусное программа не блокирует скрипты и не запускает их в отдельной “песочнице”. Я долго разбирался со скриптом, который запускал процесс кодирования, но результирующего файла не появлялось в рабочей папке. Все дело было в Comodo Firewall, который запускал fpsk’у в изолированном пространстве.

Для некоторых может оказаться преимуществом, что fpska работает из командной строки и не требует графического интерфейса. Не составит никакого труда написать скрипт для пакетного конвертирования большой группы файлов.

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


Записал видюшку о том, как устанавливать fpsk’у на чистую (из коробки) Windows 10.

Как быстро и правильно перекодировать видео в 60fps

Тема 60fps сейчас в моде. Удвоение частоты кадров посредством вставки промежуточного кадра между соседними дает плавное видео. Предположим вы хотите перекодировать видеоролик из 30 fps в 60 fps. Именно перекодировать, а не просто посмотреть видео с удвоенной частотой кадров. Ибо для просмотра видео с частотой 60 fps в сети есть полно решений, а вот для перекодирования раз, два и обчелся, да и те имеют такое большое количество шагов в инструкции по использованию, что пока до 5-ого шага дойдешь уже в сон клонить начинает. Вообще, вся эта тема 60fps – это поиск неких идеальных настроек для программы расчета векторов движения и промежуточных кадров. Настроек, которые позволят не слишком много тратить процессорного времени на это и в тоже время получить приемлемый результат для данного типа движения в видео, так как вся сложность именно в этом самом движении и если его в кадре много, то и возиться с ним придется дольше. А так как пользователь нетерпелив и ждать не любит то создатели софта идут на всякие ухищрения, типа “вот здесь мы чуть-чуть сделаем погрубее, зато побыстрее будет работать”, авось он это не увидит, зато потом будет говорить всем, что смотрел старое кино с перекодировкой в 60 fps “на лету” и нагрузка на процессор составила 30-50%. Здесь же я предлагаю способ, который будет отдавать все процессорное время на поиск векторов движения в видео и добавления промежуточных кадров, ни о каком просмотре “на лету” и речи быть не может. Зато на выходе получится правильный 60f ps. При этом будет использоваться бесплатный софт (впрочем, как и все на этом сайте), ну и командная строка, все перекодирование будет делаться из командной строки посредством запуска скриптов (под Windows их называют батниками). На этом вводная заканчивается и переходим к делу.
Читать дальше

Домашнее видео для любителей командной строки. Часть 2.

В предыдущей части мы говорили о том, каким способом мы собираемся улучшать видео и что нам для этого потребуется. Теперь максимально подробно рассмотрим сам процесс улучшения.

Помимо софта, установленного в первой части нам потребуется установить несколько фильтров для Avisynth. Именно эти фильтры создадут основную нагрузку на CPU.

Mvtools – набор функций с помощью, которого мы будем уплавнять наше видео. Я уже говорил про этот плагин в первой части.
Читать дальше

Домашнее видео для любителей командной строки. Часть 1.

vhs

Сейчас в любом домашнем архиве накопилось множество кассет записанных на древние видеокамеры типа VHS. Тогда это был единственный способо сделать свое кино. Были конечно и пленочные кинокамеры, но возиться с проявкой пленки хотелось не всем, поэтому “по пленочной кинокамере в каждый дом” как-то не пошло. Другое дело VHS, снял видео, подключил к телеку и сразу смотришь. Единственное, приходилось слегка “допилить” телевизор, посредством впайки в него дополнительной платы видеодекодера, переводящего буржуйский PAL сигнал в наш советский SECAM. Но это уже были мелочи. Эпоха декодеров длилась недолго, буквально через год-другой от них все отказались, потому что появились в штрокой продаже импортные телевизоры из Японии, Кореи и Германии, а там декодер уже не требовался.

И вот, наснимав горы видеокасет их посмотрели, сложили в коробочку и убрали в шкаф, на антресоли, в гараж, Прошло 10-15 лет, многие задались целью оцифровать эти кассеты, чтобы просматривать затем на iPad’ах, компьютерах и телефонах, выкладывать на YouTube, ВКонтактик и Одноклассники. Надо сказать, что в те времена, а пик VHS видео пришелся на 90-е годы, у населения были на руках любительские видеокамеры и как правило качество видео с них было, мягко говоря, не очень. Чтобы привести его к нормальному виду нужно потратить немало сил. Мы не будем убирать шум с видео, не будем шарпить, не будем править яркость/контраст или поднимать насыщенность. Мы будем делать другое. А именно, уплавнять движение. То есть вместо 25 кадров в секунду, сделаем видео с частотой 50 кадров в секунду. Между соседними кадрами исходного видео мы вставим еще один кадр. Изображение на этом кадре будет построено исходя из положения объектов на предыдущем и последующих кадров оригинального видео. Данное преобразование позволит значительно улучшить восприятие видеоконтента. Движения объектов станут плавнее, сами объекты в процессе движения станут четче, да и просто станет приятней смотреть. Некоторые скажут, что человеческий глаз может воспринимать только 25-30 кадров в секунду и более высокую частоту он не способен различить. Но это не так. Глаз способен различить гораздо большие частоты. И, как доказательство этому переход кинематографа на 50-60 кадров в секунду. Например, “Хоббит”, снят с технологией 60 кадров в секунду.
Итак, что нам для этого понадобится. Прежде чем перечислять, что же дальше понадобится скажу, что данный метод предназначен для людей имеющих некоторый опыт работы в командной строке, для тех кто знаком с тем что такое кодек, как обрабатывается изображение в общих чертах, как работают пакетные файлы. Иными словами для тех кто готов копаться, настраивать и запускать все из консоли. Я думаю такие люди найдутся, иначе бы много форумов в интернет просто бы пустовали 🙂 Мало того, все программное обеспечение предлагаемое в этой статье является свободно распространяемым, что в наше время является актуальным.
Читать дальше