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 и без чёрных рамок:
Подробная инструкция:
Настройка ShareX
При обновлении ShareX обязательно нужно обновлять устройства записи: запустить Recorder-devices-setup.exe из папки, я ещё удалял предыдущий. Поэтому у меня были проблемы с записью.
Настройка задач... -> Запись экрана -> Кадров в секунду при записи экрана: 60.
Там же Настройка записи экрана:
Путь к FFmpeg -> Скачать
Видеокодек x264 (mp4)
Выбрать Пользовательские команды и там ввести:
-y -rtbufsize 150M -f dshow -framerate $fps$ -i video="screen-capture-recorder":audio="virtual-audio-capturer" -vf "fps=fps=$fps$" -c:v libx264 -preset ultrafast -tune zerolatency -crf 0 -movflags +faststart -c:a flac "$output$.mkv"
Изменения:
-vf "fps=fps=$fps$" - для постоянного (constant) fps, иногда не нужно. Проверять в MediaInfo видео файла.
Убрал -r 60 - вроде нет необходимости, если задано fps=fps=$fps$.
Убрал -pix_fmt yuv420p - чтобы записывалось в полном цвете.
-c:a flac - чтобы аудио записывалось lossless, как в RetroArch. Почему-то в меню они не добавили такой вариант.
-crf 0 можно задать через меню, для lossless видео.
$output$.mkv - контейнер mp4 не поддерживает FLAC в отличие от mkv.
Ну а после я отключаю Aero в персонализации и нажимаю Shift + Print Screen для выбора области записи.
Изменение разрешения для Youtube
Скачиваете ffmpeg или заходите в папку ShareX\ShareX\Tools, там уже лежит.
В командной строке в этой папке выполняете команду:
ffmpeg -i "входной_файл.mkv" -vf "crop=320:224:0:8,scale=4096:2868:flags=neighbor,setdar=dar=0" -c:v libx264 -crf 16 -preset ultrafast -c:a copy "выходной_файл.mkv"
Можно убрать crop=320:224:0:8, если обрезка не нужна, у меня было 320x240, обрезал середину. В scale задаёте ширину и высоту. ,setdar=dar=0 - тоже можно убрать, это нужно если RetroArch записал своё соотношение сторон. Можно ещё обрезать начало и конец или наложить чёрную полоску в одной команде.
--------
Разрешение для 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.