Ищем разработчика, который без ума от JavaScript и клёвых анимаций

Делаем видеодиск для PlayStation без VideoCD-аддона (видео + статья) (Old-Hard № 89)

Хотите сделать видеодиск для PS1, записав туда любимое видео? Нет? Поздно, я под это дело уже написал скрипт и теперь хочу поделиться им с вами :)

В закладки
Слушать

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

Предпосылки

В конце девяностых (начале двухтысячных?) отечественные пираты начали продавать диски с фильмами, которые можно смотреть на PS1 «без использования дополнительных модулей». И спустя почти 20 лет мне захотелось научиться делать подобные диски. Никакой практической пользы, просто just for fun. В результате получился скрипт и видео на эту тему, причём само видео тоже можно посмотреть на PS1 :) Ссылка на образ и запасная ссылка ждут самых любопытных!

Суть решения

Содержимое подобных пиратских дисков довольно банальное: файл видеоплеера, файл с фильмом и PS1-аналог autorun-файла.

И в интернете относительно просто найти старенькую утилиту Movie Converter от компании Sony, которая умеет конвертировать несжатое видео в формат STR, адаптированный для проигрывания на PS1. Причём эта утилита умеет загружать собственные скрипты с параметрами обработки, чтобы не нужно было каждый раз всё прописывать вручную.

Так что может показаться, что процесс создания своего диска очень просто автоматизировать:

  • конвертируем через FFmpeg видео в несжатый AVI-файл с PCM-звуком
  • подсовываем файл утилите от Sony, на выходе получаем STR-файл
  • собираем через опенсорсную утилиту mkpsxiso образ диска, аналогичный пиратскому, но с нашим видео-файлом

Профит? Ну… не совсем. У пиратского плеера есть ряд недостатков, но главную свинью подложил Movie Converter: как я понял, он умеет работать только с устаревшим стандартом AVI-файлов, и не понимает файлы больше 1 ГБ. При использовании разрешения 320x240 с 15 кадрами в секунду и моно-звуком с дискретизацией 37.8 кГц в этот объём укладывается примерно 10 минут видео (точнее что-то в районе 9 минут 50 секунд). Если подсунуть ему видео длиннее — он выдаст ошибку, остановив конвертирование, а мы получим в выходном файле первые ~10 минут видео.

 

И никаких альтернатив этому конвертеру я не нашёл. Точнее нашёл, но они тоже не умели правильно читать файлы больше 1 ГБ. В интернете при поиске утилит в основном находятся конвертеры ИЗ формата STR, а не В него.

Конечно можно было бы использовать ещё более низкое разрешение и качество звука, чтобы уместиться в 1 ГБ, но вот беда — выдранный с пиратского диска плеер на других настройках ничего путного не показывает. Да и терять ещё сильнее в качестве картинки не хочется…

Тем не менее, решение было найдено, пускай и несколько костыльное. На просторах сети я отыскал другой плеер для PS1, способный показывать симпатичное меню для выбора одного из нескольких клипов.

Но что ещё круче — он играет эти клипы последовательно! Так что можно разбить видеофайл на куски короче 10 минут, после чего — собрать образ диска уже с этим плеером. Я выбрал вариант «4 файла по 8 минут», на выходе это даёт что-то в районе каноничных 650 мегабайт данных. Сейчас конечно в ходу болванки по 700 мегабайт, но олдскульщики то помнят!

С разбиванием файлов на куски опять таки прекрасно справляется FFmpeg, а Movie Converter умеет конвертировать файлы в пакетном режиме, так что проблема казалось бы решена. Но у решения есть проблемы, связанные с попыткой сделать всё одновременно автоматизировано и лениво:

  • на переходах между файлами может спотыкаться как изображение, так и звук
  • если длина меньше 32 минут и помещается не в 4, а в 3 файла — в меню выбора файла всё равно будет 4 главы
  • перемотка работает кривовато, причём «назад» можно перемотать только до того клипа, с которого вы начали. Выбрали первым 3 файл из 4? Перемотать до 1 и 2 вы уже не сможете, только через выход в меню
  • сделанный мною «дизайн» меню выглядит вот так вот страшненько. Цифры в меню — минуты, с которой начнётся воспроизведение. Меню никак не меняется даже если видео существенно короче 32 минут. Цифра внизу не просто так обрезана - здешнее меню скроллится, стрелка же стоит на месте.

При этом в открытый доступ я выложил оба варианат скрипта, и для ~10-минутных видео, и для 32-минутных, так что можете использовать в то, что вам сейчас лучше подходит.

Другие нюансы

  • PS1 выдаёт на экран картинку в формате 4:3, если скрипту дать видео с другим соотношением сторон — на этапе конвертирование в видео будут автоматически добавлены чёрные полосы. FFmpeg — мощная штука!
  • Использованные плееры не умеют ставить воспроизведение на паузу, только перематывать видео вперёд и назад крестовиной геймпада. Для паузы можно использовать воркэраунд: если открыть крышку консоли — воспроизведение поставится на паузу, а после закрытия — продолжится с момента остановки.
  • По окончанию воспроизведения плеер зависает, остаётся только перезагружать консоль
  • Для временных файлов может понадобиться до 4 ГБ на диске со скриптом
  • Видео конвертируется в разрешение 320x240 с 15 кадрами в секунду и моно-звуком с дискретизацией 37.8 кГц. В принципе консоль поддерживает в этом разрешении до 30 кадров в секунду и стерео-звук, но в такой ситуации снижается общий битрейт видео (скорость привода то ограничена), как следствие — повышается число артефактов сжатия
  • Образ создаётся для стандарта PAL. Второй плеер имеет версию для NTSC, но скрипт готовился в первую очередь для себя, а у нас в стране в ходу были чипованные консоли, работающие с любым регионом.

Напоследок ещё раз повторюсь, что делалось всё это чисто развлечения ради. Но если вы захотите написать свой плеер для PS1, свой конвертер в видео-формат STR или придумаете как улучшить скрипт, используя текущие утилиты — милости прошу на гитхаб :)

{ "author_name": "Дмитрий Моисеев", "author_type": "self", "tags": ["psone","playstation","oldhard","diy"], "comments": 22, "likes": 98, "favorites": 41, "is_advertisement": false, "subsite_label": "retro", "id": 212572, "is_wide": false, "is_ugc": true, "date": "Fri, 18 Sep 2020 07:38:33 +0300", "is_special": false }
Промо
Коротко: освоить профессию системного аналитика и бизнес-аналитика на SkillFactory
Личный ментор, настоящие задачи, преподаватели из известных компаний и помощь в устройстве на работу.
Объявление на DTF
0
22 комментария
Популярные
По порядку
Написать комментарий...

Организованный микрофон

5

DIY всегда заебись респек

Ответить
2

О, моё увожение. 

Ответить
2

Давно смотрю Вас, респект за все)

Ответить
1
fun fact: There was actually one PS1 model (the 1997 SCPH-5903) that included built-in VideoCD support!
This was released only in south asia where VideoCDs were more popular. https://t.co/ZkmzQxFwMB
Ответить
1

Ага, я об этом даже в видео упоминал, и более того - нашёл для иллюстрации это же самое фото :) В текстовой версии же решил не пересказывать всё видео целиком, а сделать краткую выжимку наиболее интересных моментов.

Ответить
1

Для интересующихся там весь тред интересный.
Я просто начал сомневаться.. понятно это было давно)) но помню что vcd играло ;)
Но самый шикардос что я видел а продаже это 3DO приставка с возможностью играть эти самые vcd.. (до релиза ps1 вроде)

Ответить
0

Самое смешное, что 3DO тоже требовался своей VideoCD-аддон, но (память уже подводит) и там кажется тоже были версии со встроенным декодером :)

Ответить

Пищевой блик

1

помешается

Для временных файлом

ошибка?

Ответить
0

Да, опечатки. Спасибо, исправил!

Ответить

Процентный Мика

1

Вот это вот интересно)) У видеоряда прям такой узнаваемый характерный вид сразу появляется, никакая намеренная стилизация не сможет такого достичь.
Особенно круто смотрится нарезка футажей современных игр, такое чувство что это пс1 порты.

Ответить
1

Отлично, можно будет кинцо на плойке глянуть. Для вписонов в стиле 90-х самое оно. Ещё и для тестирования привода полезно будет

Ответить
1

Эх, лет 15-17 назад этим заморачивался.

Ответить

Пенсионный месяц

1

У вас классный сайт. пару дней назад набрел на него когда искал инф по ДОСу.👍🏻

Ответить
1

Респект таким парням!

Ответить
1

Ого, ты мне вернул 2000 год.
Спасибки! 

Ответить
1

Господе иисусе,  спасибо автор. Сижу 20 мин ищу подобный образ для проверки стабильности работы приводы. Спасибо тебе, не я один такой некромант

Ответить
0

Хм... а как моник подключил к PS1 ??? Там тюльпан есть ? или как-то  D-SUB подцепил ?

Ответить
1

Всё к сожалению проще: воткнул в ТВ-тюнер, а уже с него на монитор :)) Круче конечно было бы и тут сделать что-то хитрое или воткнуть в настоящий ЭЛТ-шный телек, но под рукой ни того, ни другого не было.

Ответить
1

Понятно, тож вариант, а то я грешным делом подумал про какой-нибудь хитрый переходник... хотел срисовать)

Ответить
0

конвертер скорее всего

Ответить

Комментарии

{ "jsPath": "/static/build/dtf.ru/specials/DeliveryCheats/js/all.min.js?v=05.02.2020", "cssPath": "/static/build/dtf.ru/specials/DeliveryCheats/styles/all.min.css?v=05.02.2020", "fontsPath": "https://fonts.googleapis.com/css?family=Roboto+Mono:400,700,700i&subset=cyrillic" }
null