Автор Тема: Руководство по сборке видео дисков Sony PSX \ PSOne  (Прочитано 15412 раз)

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

Оффлайн Vladomir

  • Пользователь
  • Сообщений: 7
  • Пол: Мужской
    • Просмотр профиля
Руководство по сборке видео дисков Sony PSX \ PSOne
« Ответ #30 : 14 Октябрь 2018, 02:36:14 »
к сожалению заблочено

Оффлайн Yoti

  • Пользователь
  • Сообщений: 4351
  • Пол: Мужской
  • Не тро-гай ме-ня
    • Steam
    • Просмотр профиля
Руководство по сборке видео дисков Sony PSX \ PSOne
« Ответ #31 : 14 Октябрь 2018, 02:56:41 »
brill,
Цитата
Well, looks like we can’t go any further
Download
The file you requested has been blocked for a violation of our Terms of Service. Still have questions, or think we've made a mistake? Please contact support for further assistance.

Оффлайн brill

  • Пользователь
  • Сообщений: 2196
  • Пол: Мужской
  • \/\/\/\/\/\/
    • Youtube
    • Просмотр профиля

Оффлайн Nubilius

  • Пользователь
  • Сообщений: 5
    • Просмотр профиля
Руководство по сборке видео дисков Sony PSX \ PSOne
« Ответ #33 : 20 Сентябрь 2020, 11:02:19 »
Спасибо за инструкцию! В том числе с её использованием собрал скрипт, позволяющий (с некоторыми оговорками) собирать видео-диски в два клика. Выложил скрипт на github, туда же поместил инструкцию по использованию
https://github.com/Newbilius/PS1VideoCDCreator

А ещё снял видео на эту тему :)

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 4656
    • Просмотр профиля
Руководство по сборке видео дисков Sony PSX \ PSOne
« Ответ #34 : 20 Сентябрь 2020, 15:51:37 »
Nubilius, замечания:
* Чтобы не нажимать Go, нужно добавить аргумент -s:
avi2str\MC32.exe -s avi2str\encode.scrНо прогресс виден не будет и если закрыть терминал, то программа продолжит работать.
* Нет поддержки квадратных и вертикальных видео, универсальный способ добавления чёрных полос force_original_aspect_ratio (https://trac.ffmpeg.org/wiki/Scaling). Можно написать так для версии 10 минут:
ffmpeg\ffmpeg -i %1 -vf "scale=320:240:force_original_aspect_ratio=decrease,pad=320:240:(ow-iw)/2:(oh-ih)/2:black" -r 15 -vcodec rawvideo -acodec pcm_s16le -ar 37.8k -ac 1 RAW.AVI* Зачем-то используется древней ffmpeg, который не поддерживает force_original_aspect_ratio и медленнее в 1.75 раза.
* Чтобы ffmpeg не спрашивал о перезаписи, если RAW.avi остался после прерывания, нужно добавить флаг -y.
* Незачем дублировать программы, их лучше держать в одной папке, скрипты в другой, хотя можно сделать и универсальный, но bat-скриптами это наверно не так просто.
--------
ffmpeg поддерживает разделение на файлы, только тогда придётся генерировать текстовые файлы, это несложно через echo и можно сделать универсальный скрипт, но вы вряд ли будете.
По примеру https://unix.stackexchange.com/a/212518 вместо этого:
ffmpeg -ss 00:00:00.00 -i %1 -t 00:08:00.00 -vcodec rawvideo -s 320x240 -filter:v "pad=iw:iw*3/4:(ow-iw)/2:(oh-ih)/2:black" -r 15 -acodec pcm_s16le -ar 37.8k -ac 1 1.AVI
ffmpeg -ss 00:08:00.01 -i %1  -t 00:08:00.00 -vcodec rawvideo -s 320x240 -filter:v "pad=iw:iw*3/4:(ow-iw)/2:(oh-ih)/2:black" -r 15 -acodec pcm_s16le -ar 37.8k -ac 1 2.AVI
ffmpeg -ss 00:16:00.01 -i %1 -t 00:08:00.00 -vcodec rawvideo -s 320x240 -filter:v "pad=iw:iw*3/4:(ow-iw)/2:(oh-ih)/2:black" -r 15 -acodec pcm_s16le -ar 37.8k -ac 1 3.AVI
ffmpeg -ss 00:24:00.01 -i %1 -t 00:08:00.00 -vcodec rawvideo -s 320x240 -filter:v "pad=iw:iw*3/4:(ow-iw)/2:(oh-ih)/2:black" -r 15 -acodec pcm_s16le -ar 37.8k -ac 1 4.AVI
Можно написать так:
ffmpeg -i %1 -vcodec rawvideo -s 320x240 -filter:v "pad=iw:iw*3/4:(ow-iw)/2:(oh-ih)/2:black" -r 15 -acodec pcm_s16le -ar 37.8k -ac 1 -segment_time 00:08:00 -f segment -reset_timestamps 1 %%d.AVI%% - для batch-файла. Результат будет похожий, только лишних файлов не будет, если длина меньше 24 минут, на выходе 0.AVI, 1.AVI... .
--------
Если захотите генерировать текстовые файлы, есть красивый способ без повторения ">> 1.txt". У меня был batch-файл для сборки PSS файлов:
Каждое echo добавляет новую строку. Возможно есть способ лучше.
« Последнее редактирование: 20 Сентябрь 2020, 17:48:37 от Sharpnull »

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 4656
    • Просмотр профиля
Руководство по сборке видео дисков Sony PSX \ PSOne
« Ответ #35 : 22 Сентябрь 2020, 03:32:06 »
Это никому не нужно, но я обновил скрипт от Newbilius до одного. Изменения:
* Никаких запросов, если только не получается удалить файлы .avi, .str, MOVIE.bin, MOVIE.cue, такое может произойти при блокировки, например открытие MOVIE.cue в эмуляторе.
* Если видео меньше 8 минут, то используется простой плеер, иначе версия для 32 минут. Если видео дольше 32 минут, файлы сконвертируются, но в образ не попадут, поэтому лучше заранее обрезать видео.
* Все файлы обрабатываются в текущей папке, где create.cmd.
* encode.scr для Movie Converter генерируется в скрипте. Он остаётся после работы, его можно удалить.
* Нет дублирования файлов. Для простого плеера файлы в mkpsxiso-1.23\PLAYER, отдельные xml (data_player.xml, data_psplayer.xml).
* Используется преобразование цветов из BT.709 > BT.601 (об этом ниже), что подходит для современных видео с разрешением выше 1024x576 по одной из сторон. Если у вас какой-нибудь DVD/DVDRip или видео низкого разрешения, то скорее всего вам это не нужно, тогда добавьте "rem " перед:
set "COLOR_MATRIX=,colormatrix=bt709:bt601"Должно получиться:
rem set "COLOR_MATRIX=,colormatrix=bt709:bt601"
ffmpeg не добавлял, он толстый, для Windows x64 его можно скачать на официальном сайте, лучше стабильную версию (release), "лёгкая" (essentials) подойдёт (https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-essentials.zip). Положить ffmpeg.exe в папку ffmpeg.
Для Windows x86. Раньше сборки были здесь https://ffmpeg.zeranoe.com, но с 18 сентября 2020 хостинг закрыт, последнюю стабильную 4.3.1 можно скачать из архива: ffmpeg-4.3.1-win32-static.zip.

Цветовое пространство
Забыл сказать про такую неприятную вещь при работе с видео как "цветовое пространство". В зависимости от настроек плеера (программы), разрешения видео и данных контейнера могут получаться неверные цвета.
Видео с разрешением 1024x576 и ниже будет BT.601 по умолчанию, если в контейнере не указано иначе. Не разбирающиеся могут сконвертировать DVD в 1280x720 и не указать в контейнере, что это BT.601, или не преобразовать цвета.
Это заметнее по цветам ближе к красному.
Проблема в том, что не всегда можно узнать какое цветовое пространство имеет видео.
Я сравнил по эмулятору ePSXe и сделал вывод, что HD видео нуждается в преобразовании, поэтому добавил его по умолчанию, как убрать описал выше. Как это выглядит на старых и современных ТВ не знаю.

Если есть проблемы, пишите в ЛС.

Оффлайн Yoti

  • Пользователь
  • Сообщений: 4351
  • Пол: Мужской
  • Не тро-гай ме-ня
    • Steam
    • Просмотр профиля
Руководство по сборке видео дисков Sony PSX \ PSOne
« Ответ #36 : 22 Сентябрь 2020, 12:04:28 »
но с 18 сентября 2020 хостинг закрыт
Ну офигеть теперь, единственное нормальное место со сборками было.

Оффлайн Nubilius

  • Пользователь
  • Сообщений: 5
    • Просмотр профиля
Руководство по сборке видео дисков Sony PSX \ PSOne
« Ответ #37 : 23 Сентябрь 2020, 08:13:36 »
Sharpnull, просто офигенные доработки! Крутотень. В ближайшее время выложу на Github и обновлю там же инструкцию по использованию и специфике. Ну и на всех доступных мне площадках напишу про твои доработки :)

По цветовому пространству попробую посмотреть, насколько заметна разница через тюнер (старого ТВ у меня тоже нет). В принципе о самой проблемы вроде и знал - была похожая проблема при настройке рендера на видеокарте на старых Sony Vegas'ах, но уже успел забыть тонкости.

Оффлайн Nubilius

  • Пользователь
  • Сообщений: 5
    • Просмотр профиля
Руководство по сборке видео дисков Sony PSX \ PSOne
« Ответ #38 : 23 Сентябрь 2020, 14:42:10 »
Сижу, думаю... автодетект для выбора одного из двух плееров (для коротких и для длинных видео) получился крайне изящным, но он сейчас не покрывает ситуацию с видео длинной от 8:01 до примерно 9:50 - их бы можно было ещё впихнуть в один файл (первый плеер), но сейчас будет выбран второй.

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

Update: получилось! Суть идеи:

for /F "delims=" %%I in ('ffprobe.exe -v error -show_entries format^=duration -of default^=noprint_wrappers^=1:nokey^=1 %1 2^>^&1') do set /a "duration=%%I"

if %duration% GTR 595 (
echo BIG FILE
) else (
echo SMALL FILE
))
« Последнее редактирование: 23 Сентябрь 2020, 18:56:55 от Nubilius »

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 4656
    • Просмотр профиля
Руководство по сборке видео дисков Sony PSX \ PSOne
« Ответ #39 : 23 Сентябрь 2020, 19:17:23 »
Nubilius, batch файлы вообще не лучший способ для такого. Если писать программку на C# с GUI (легко и размер небольшой), например, можно сделать: опции; прогресс бар, проверяя размер записанного (там же размер примерно зависит от длины видео?) или через хакинг Movie Converter; импорт своих картинок. Плеер тоже нужно дописывать. Но, как уже писал, это мало кому нужно.

Оффлайн Nubilius

  • Пользователь
  • Сообщений: 5
    • Просмотр профиля
Руководство по сборке видео дисков Sony PSX \ PSOne
« Ответ #40 : 23 Сентябрь 2020, 20:05:31 »
Со всем согласен, но задачка в целом довольно упоротая, так что bat-файлы тут смотрятся очень органично относительно всего остального :D

При необходимости тут много чего ещё можно накрутить... но опять же, соглашусь, что такой необходимости и нет  :)