Автор Тема: Видеозапись геймплея Sega Genesis  (Прочитано 343 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Toejan

  • Пользователь
  • Сообщений: 8
    • Просмотр профиля
Видеозапись геймплея Sega Genesis
« : 26 Сентябрь 2019, 22:16:47 »
Привет всем. Такая проблема - хочу записать прохождение игры на Sega Genesis для YouTube, но нигде не нашёл полноценного гайда о том, как записывать видео 16-битных игр и добиваться наилучшего качества.

Немного расскажу о собственных изысканиях. В начале попробовал Bandicam, формат MP4 кодек H264-CPU, качество картинки и звука вполне устроило, но видео местами подтормаживало, хоть и не сильно, но такой результат меня не устроил. Видео длится 11 минут, тормоза появляются иногда во время выполнения круговой атаки. Вот ссылка:

После этого решил попробовать запись в самом эмуляторе Kega Fusion 3.64, который я использую. Готовое видео конвертировал в MP4 через Movavi. Здесь уже никаких тормозов не возникало, звук тоже в норме, но картинка очень тусклая и впечатление, что несколько смазанная. Но в целом скорость повыше, чем в первом видео. Выглядит так:

Я новичок в этом вопросе. Очень хотелось бы выслушать советы людей, у которых есть опыт записи видеороликов эмуляторных игр. Какие программы вы используете, какие настройки выставляете, с помощью чего обрабатываете готовое видео. Что могли бы посоветовать конкретно в моём случае? Хочется сделать видео быстрым и с яркой чёткой картинкой. Очень жду ваших ответов.

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 1081
    • Просмотр профиля
Видеозапись геймплея Sega Genesis
« Ответ #1 : 26 Сентябрь 2019, 22:36:46 »
Toejan, записываешь в RetroArch, будет Lossless картинка без артефактов сжатия, дальше масштабируешь до 1080p/4K/5K/8K через ffmpeg или другие программы.
--------
Команда ffmpeg примерно такая:
ffmpeg -i "input.mkv" -vf "scale=1542:1080:flags=neighbor" -c:v libx264 -crf 18 -preset ultrafast -c:a copy "output.mkv"Разрешение нужно соблюсти, если нужно 4:3 - одно, если квадратные пиксели, то 320x224 = 1542x1080. Но чем больше, тем лучше.
--------
В RetroArch проблемы при смене разрешения, как в Splatterhouse 3 в меню (UPD3: Нужно было обновить RetroArch, у меня была версия 1.7.7). В NES играх такого не было. Тогда можно через ffmpeg (ShareX) захватывать или MSI AfterBurner позже вырезать. Вообще тема по записи видео была здесь.
--------
В общем, слава новой версии RetroArch, другие способы записи у меня подтормаживали, а платными программами я не люблю пользоваться. Ещё забыл сказать, что в видео хранится соотношение сторон 4:3 (не помню что было в настройках), хотя разрешение 320x224. В плеерах можно отключать заложенное соотношение сторон (MPC -> Video Frame -> Aspect Ratio), если стоит DAR - берётся из файла, SAR (assume square pixels) - квадратные пиксели, без искажений, ну и другие там соотношения сторон. Youtube учитывает заданное значение и если использовать команду ffmpeg выше, то на ютюбе окажется 4:3, а не 320:224. Конечно можно как-то сбросить или заранее учитывать при расчёте разрешения для масштабирования.
Вот пример записи с масштабированием (большее разрешение появится позже), разрешение файла 4096x2868, но из-за соотношения сторон файла получилось 4:3.
« Последнее редактирование: 27 Сентябрь 2019, 00:08:16 от Sharpnull »

Оффлайн Toejan

  • Пользователь
  • Сообщений: 8
    • Просмотр профиля
Видеозапись геймплея Sega Genesis
« Ответ #2 : 27 Сентябрь 2019, 00:34:18 »
Спасибо за ответ. Я только сейчас узнал о существовании RetroArch, ума скачать и запустить на ней Splatterhouse 3 хватило, но сразу появились и проблемы. Когда игра свёрнута, идёт без тормозов и всё работает на ура. Разворачиваю на полный экран - тут же ужасные тормоза, и в звуке и в изображении, играть невозможно. Так со всеми играми. Не знаешь, в чём может быть проблема?

Второе. Где функция записи в этой штуке? А записанное видео так себе по-моему, размазанное, так чем RetroArch хорош?

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 1081
    • Просмотр профиля
Видеозапись геймплея Sega Genesis
« Ответ #3 : 27 Сентябрь 2019, 00:42:04 »
Toejan, Сейчас заметил, что геймплей всё равно растягивается до 320x224, а должен быть 256x224. Так что пока запись всё ещё плоха. На моём видео видна проблема, когда герой идёт, то фон неплавный. Можно попробовать сделать другое соотношение сторон, но тогда меню будет искажено.
А соотношение сторон в файле действительно зависит от настроек.
А записанное видео так себе по-моему, размазанное, так чем RetroArch хорош?
Что именно размазанно? Про движение написал выше в этом сообщении, а пиксели чёткие.
Если в плеере. Отключите фильтрацию в плеере (вместой билинейной или другой выставить nearest/по ближайшем пикселям), тогда картинка будет чёткой при увеличении. В MPC (Media Player Classic): Options -> Output -> Resizer: Nearest neighbor.
--------
Где функция записи в этой штуке?
Quick Menu -> Start Recording.
--------
так чем RetroArch хорош?
Как писал выше: lossless без артефактов и скорость у меня, чем другие способы. Можно конечно в платных и других записывать lossless, но либо придётся уменьшить экран до минимального в эмуляторе, либо мощный компьютер, который потянет lossless на большем разрешении. Если игра не проблемная как эта, то это просто удобней.
--------
Чтобы не было тормозов попробуйте другой эмулятор (ядро), там 3 эмулятора MD.
--------
Ещё одно замечание, если начать записывать видео внутри игры, а не меню, то будет разрешение 256x224, а меню будет чёрным и RetroArch упадёт. Отчасти проблема эмулятора, который наверно выдаёт то 256x224, то 320x224, как вариант они мог ли бы записывать в другой видео файл, если разрешение меняется.
« Последнее редактирование: 27 Сентябрь 2019, 01:17:15 от Sharpnull »

Оффлайн Toejan

  • Пользователь
  • Сообщений: 8
    • Просмотр профиля
Видеозапись геймплея Sega Genesis
« Ответ #4 : 27 Сентябрь 2019, 01:29:04 »
Записал пробное видео. Размазанностей не заметил, когда воспроизводил в Media Player, но у тебя на YouTube она появляется у спрайтов безголовых уродцев, когда они ходят.
--------------
Сообщения о создании/загрузки сейва можно как-то убрать? В Kega их почти не заметно, можно будет просто замазать чёрным, а тут окно вылезает на пол экрана.
--------------
Toejan, Чтобы не было тормозов попробуйте другой эмулятор (ядро), там 3 эмулятора MD.

Sharpnull, я попробовал все три. В свёрнутом виде всё ок, на полный экран никак не хочет работать. Проблема в чём-то другом. Но видео пишется нормально, на YouTube не пробовал ещё выкладывать, но предварительно устраивает.
« Последнее редактирование: 27 Сентябрь 2019, 01:52:11 от Toejan »

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 1081
    • Просмотр профиля
Видеозапись геймплея Sega Genesis
« Ответ #5 : 27 Сентябрь 2019, 02:45:01 »
Сообщения о создании/загрузки сейва можно как-то убрать?
Основные настройки -> Onscreen Display -> Onscreen Notifications, вроде.
у тебя на YouTube она появляется у спрайтов безголовых уродцев, когда они ходят.
Вы наверно опять о проблеме из-за растяжения экрана потому что идёт растяжение 256x224 на 320x224. Такую картинку выдаёт RetroArch.

RetroArch кстати тоже использует для записи ffmpeg.

Важный момент, вы хотите 4:3 соотношение как на телевизоре (хотя кажется немного другое) или с точностью до пикселя?
Fusion тоже нужно настраивать, по умолчанию он растягивает, а если нужно точно в пиксель: выставить VSync, Scanlines - 0%, Fixed Aspect (Fit), Nearest Multiple, Brighten, Render Plugin -> QuadRaw, а остальной мусор из меню Video отключить. И это если в оконном режиме, в полноэкранном вроде всё плохо было у меня. Записывать нужно lossless/несжато, если весь экран, то потом можно вырезать.

На Youtube очень паршивое качество видео, чтобы получить нормальную картинку на 1080p мониторе, всё равно нужно делать масштабирование до 4K и так смотреть.

Я ещё экспериментировал в RetroArch. Если вкл. в общих настройках Video -> Integral Scale и в PicoDrive выставить PAR для соотношения, то картинка выводится (не записывается) вроде точно в пиксель. В таком случае, можно записать lossless/несжато и обрезать.


Короче, лучший вариант, когда эмулятор поддерживает запись, где можно выбрать желаемый формат/кодек/настройки (какой-то общий интерфейс есть) как в PCSX2, в RetroArch если исправить. Fusion старый и плохой и там только запись плохого качества. Запись с экрана предполагает мощный компьютер.

Вот пример записи отличной картинки с Fusion, без растяжения (приглядитесь к ширине диалога и драк) и с квадратными пикселями, в оконном режиме, 320x240, с настройками выше, через ShareX (внутри ffmpeg), с трудом, потому что последняя версия глючная, но реальное FPS ниже 60 из-за моего компьютера:
Чёрные полосы сверху и снизу можно было обрезать во время масштабирования.
« Последнее редактирование: 27 Сентябрь 2019, 04:32:36 от Sharpnull »

Оффлайн Toejan

  • Пользователь
  • Сообщений: 8
    • Просмотр профиля
Видеозапись геймплея Sega Genesis
« Ответ #6 : 27 Сентябрь 2019, 10:52:54 »
Важный момент, вы хотите 4:3 соотношение как на телевизоре (хотя кажется немного другое) или с точностью до пикселя?

Разрешение для YouTube 1720:1280, то есть почти ровно 4:3, самую малость меньше. Как его задать в RetroArch? Сейчас не дома, но попробую позже сделать, если объясните.

Проблема с тормозами при полном экране осталась. Но видимо потребуется это решать в теме по RetroArch.

-----------
Качество показанного вами видео через Fusion очень впечатлило. Видео после записи как-то обрабатывали или выложили, как оно есть?

Fusion тоже нужно настраивать, по умолчанию он растягивает, а если нужно точно в пиксель: выставить VSync, Scanlines - 0%, Fixed Aspect (Fit), Nearest Multiple, Brighten, Render Plugin -> QuadRaw, а остальной мусор из меню Video отключить.


С этими настройками писали на Fusion, я так понимаю?
------------------------
Попробовал записать на Fusion через Sharex. Картинка хорошая, но тормоза есть как в Bandicam. В общем пока не то.
------------------------
На Retroarch качество записи лучше. Но проблема такая, что эмулятор вылетает когда появляется заставка между комнатами. Может из-за смены разрешения? В вашем примере заставка тоже есть, но всё нормально, как настраивали?
« Последнее редактирование: 27 Сентябрь 2019, 21:40:33 от Toejan »

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 1081
    • Просмотр профиля
Видеозапись геймплея Sega Genesis
« Ответ #7 : 28 Сентябрь 2019, 04:26:41 »
Toejan, простите за долгий ответ. Я как раз решил проблему с низким FPS.
Как его задать в RetroArch?
По умолчанию запись идёт в разрешении с которого началась запись, в этой игре если в меню, то 320x240 (да, маленькое окошко) и драки растягиваются. Можно включить GPU что-то там в настройках Recording, будет записываться с масштабирование, но у меня жуткие тормоза. Я не пробовал, но можно задать другие настройки записи через флаги или файл конфигурации. В любом случае, запись будет плохая в этой игре, как писал выше.
Видео после записи как-то обрабатывали или выложили, как оно есть?
Записал в оконном режиме 320x224 и увеличил масштаб/разрешение (scale, upscale) через ffmpeg.
С этими настройками писали на Fusion, я так понимаю?
Да.
Может из-за смены разрешения? В вашем примере заставка тоже есть, но всё нормально, как настраивали?
Я об этом писал, просто из-за большого количества текста не заметили. Когда начинаете снимать драки/комнаты разрешение устанавливается в 256x224, когда появляется меню или диалог, он пытается писать 320x224. А я начинал с 320x224 (заставка) и после растяжение.

Проблема с низким fps оказалась из-за Aero в Windows 7: когда Aero вкл. и записываешь рабочий стол (полноэкранный не пробовал, некоторые приложения отключают Aero тогда) весь рабочий стол выдаёт около 30 fps. После отключения все 60. Проверял через FCEUX с включённым счётчиком кадров и после в плеере делал шаг кадра, ну и просто видно, что спрайты не пропадают (которые мигают, например в Contra).
Вот видео опять с Fusion с 60 fps и без чёрных рамок:
Подробная инструкция:
--------
Разрешение для YouTube 1720:1280, то есть почти ровно 4:3
Если вы хотите 4:3 как на телевизоре, чтобы и 320x224 (меню) и 256x224 (комнаты) растягивались, то нужно правильно настроить эмулятор (Fusion допустим). В моей записи пиксели всегда квадратные и не получится одной командой растянуть, потому что в комнате чёрные полосы слева и справа, а вам нужно без них. В любой другой игре, где нет смены разрешения, это не проблема и просто задаёте scale в ffmpeg 1720:1280.
Стоит учесть, что если в эмуляторе задать 4:3 для всех разрешений, то без фильтрации (билинейной и т. п.) и низким разрешением возможна плохая картинка, а с фильтрацией и высоким разрешением размыто, поэтому по-хорошему нужно записывать с макс. разрешением что позволяет, с фильтрацией, но в высоким внутренним разрешением (т. е. 320x224 -> фильтрация -> 1920x1080 = плохо/размыто, 320*N x 224*N -> фильтрация -> 1920x1080 = хорошо, где N даёт разрешение около конечного). Здесь я не уверен, нужно экспериментировать и возможно в ffmpeg ставить не flags=neighbor, а стандартное значение, если нужно увеличить не намного.
И будьте внимательны с соотношение сторон, которое может задать RetroArch, если в MediaInfo вы видите разрешение 320x224 (что равно примерно 1.49), а Display aspect ratio другое, например 4:3 (1.333), значит нужно указать setdar=dar=0 в ffmpeg, когда увеличиваете разрешение. Иначе на Youtube будет точно 4:3, а не то, что указали.

В принципе при записи через внешние программы (Bandicam, ShareX) в полном экране вы можете в Fusion выбрать Video -> Full Screen Resolution -> 640x480. Тогда тоже можно увеличить разрешение через ffmpeg, но с поправкой обрезания (думаю crop=640:448:0:16).
--------
И... момент про конечную склейку/монтаж. Если собираетесь вставлять интро, лого, накладывать голос и другую обработку, то конечно лучше это делать в видео редакторе. Если собираетесь выложить только геймплей, то через ffmpeg можно обрезать лишнее при изменении разрешении (https://trac.ffmpeg.org/wiki/Seeking - обрезка) и склеить вместе без обработки/encode (https://trac.ffmpeg.org/wiki/Concatenate), то есть быстро и качество не упадёт. Но в местах соединения может отсутствовать звук или проскакивать видео доли секунды. Конечное видео получается не совсем корректное, но Youtube во время обработки это исправляет.

--------
Пересмотрел ещё раз видео со счётчиком FCEUX и последнее видео что выложил выше. В FCEUX пара кадров были пропущены в меню, а вот в видео выше в первой комнате заметно, что не 60 FPS, только ближе к концу записи заметна разница. При записи с RetroArch всегда 60 fps.
« Последнее редактирование: 28 Сентябрь 2019, 14:04:09 от Sharpnull »

Оффлайн Toejan

  • Пользователь
  • Сообщений: 8
    • Просмотр профиля
Видеозапись геймплея Sega Genesis
« Ответ #8 : 28 Сентябрь 2019, 20:34:40 »
Sharpnull, спасибо большое за подробное объяснение. Полдня тестировал запись с RetroArch и хочу выложить всё то, к чему пришёл. Если помните, я упоминал про то, что Sega не работает в полноэкранном режиме, так вот, эту проблему я смог решить, хотя и не знаю, что именно мне помогло. Сделал я следующее:

1. Включил GPU Recording. Также благодаря этой функции, полагаю, решилась проблема с вылетом эмулятора при смене разрешения внутри игры. Прикладываю пробное видео, где записалась замечательная картинка без тормозов, где как раз есть заставка с другим разрешением.


Но в процессе самой записи тормоза были УЖАСАЮЩИЕ. То есть, ради комфортной игры и её качественной записи придётся играть в свёрнутом окне (самом мелком, тогда не тормозит), к чему можно приспособиться...но ощущения совсем не те. Что поможет, только более мощный комп? В данном случае записывал видео на ноутбуке.

2. Выключил опцию "Полноэкранный оконный режим".

3. Задал высоту экрана 1280 и ширину 1720.

Действовал я методом тыка, не имея представления, что может помочь, но ФС теперь работает нормально. Но запись в ФС без тормозов не получается.

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

Часть 2. Пересел на другой, более мощный компьютер, не ноутбук, и попробовал записать с него. Результат обрадовал. Игра запустилась в полноэкранном режиме сразу, без тормозов, GPU Recording включил также, все остальные настройки по записи не менял. И самое главное - можно записывать геймплей в полноэкранном режиме, тормоза практически отсутствуют. Ноутбук у меня Windows 10 64 bit, компьютер W10 32 bit. И вот незадача - на 32-битной версии RetroArch отсутствует ЗВУК в играх! В настройках лазил, мут на звук нет, по умолчанию он включён, понять причину не могу. Самое интересное, что в записанном видео звук в итоге есть. Прикладываю и его.


Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 1081
    • Просмотр профиля
Видеозапись геймплея Sega Genesis
« Ответ #9 : 28 Сентябрь 2019, 21:28:48 »
Toejan, в последней вашей записи проблемы как в моём первом: фон кривой при ходьбе.
Несмотря на то, что отключал уведомления в настройках, они всё равно появляются...
Значит при вкл. GPU записывается экран вместе с ними.

--------

Записал с помощью ReLive полноэкранный RetroArch в 4:3 (точнее стандартное соотношение) без тормозов. У NVIDIA своя есть программа.
1. Выбрал Drivers -> Video -> vulkan (просто так, неважно), отключил Video -> Windowed Fullscreen Mode - чтобы запись была.
2. В ReLive выбрал 60 fps, 100 Mbps.
3. После увеличил разрешение в 2 раза (1920x1080 -> 3840x2160), края слева и справа не обрезал, но желательно.
Получилось неплохо, но это не lossless, если присмотреться, то пиксели не чёткие. Я не говорил о встроенных, потому что запись у ReLive только со сжатием и подходит для стриминга обычных PC игр.
Кстати, у AMD есть виртуальное свервысокое разрешение и если монитор имеет низкое разрешение, а нужно записать выше, то можно его использовать.

--------

Я говорил, что для записи этой игры в 4:3, как вы хотели, нужно макс. разрешение, но в идеале нужно найти наименьшее общее кратное (НОК) для ширины 320 и 256 == 1280, чтобы пиксели всегда были одного размера по ширине. Сложность в настройке эмулятора, чтобы он выводил точно как нужно (в RetroArch это вроде возможно через custom aspect ratio). Высота главное чтобы была кратна 224. Получается если записать игру в 1280x1120 (1280x896) без фильтрации и без потерь, она будет идеальной, но без нужного соотношения сторон. Для этого увеличим разрешение с поправкой, чем больше, тем лучше, а Youtube сгладит.
« Последнее редактирование: 29 Сентябрь 2019, 13:43:42 от Sharpnull »