nedoPC.org

Community for electronics hobbyists, established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 06 Oct 2024 22:43



Reply to topic  [ 129 posts ]  Go to page Previous  1 ... 5, 6, 7, 8, 9
Воспроизведение озвученной анимации с ROM-Дисков 
Author Message
Writer

Joined: 30 Jan 2024 09:12
Posts: 10
Reply with quote
А как быть тем,кто вдохновился идеей и всеже решил собрать себе ром диск для живой ркшки? можно носом ткнуть в материал, как шить что шить чем конвертить? Или я не туда напостил?


05 Sep 2024 07:49
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23357
Location: Silicon Valley
Reply with quote
Чем конвертить в этом топике пролетало - могу пошаговую инструкцию набросать

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


05 Sep 2024 14:48
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23357
Location: Silicon Valley
Reply with quote
Итак, архив с конвертером приаттачен к первому сообщению этого топика - vhs5t.zip [11.96 КиБ]
Code:
Archive:  vhs5t.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
     3650  2024-04-15 18:07   vhs5t.asm
      439  2024-04-15 18:07   vhs5t.bin
    14063  2024-04-15 18:07   vhs5t.lst
      449  2024-04-15 18:07   vhs5t.rkr
     7492  2024-04-15 18:07   vhs5t-maker.c
     6885  2024-04-14 01:34   rk-pgraph.c
     1024  2024-04-14 01:34   sgr.bin
---------                     -------
    34002                     7 files

Исходники должны собираться где угодно и чем угодно - это утилиты с интерфейсом командной строки (там правда надо libpng иметь и русские буквы через UTF-8 печатаются):

  • rk-pgraph.c конвертирует каждый кадр (чёрно-белый PNG 128x50) в бинарное представление с использованием 5 линий стандартного знакогенератора (sgr.bin)
  • vhs5t-maker.c собирает все кадры вместе (способ запуска: vhs5t-maker raw-audio.r8u frames-subfolder):
    • вызывая предыдущую программу для каждого кадра (кадры FPS 7.5 начинаются с файла 00000001.png и т.д. в подкаталоге задаваемом вторым аргументом)
    • добавляя однобитный звук 6кГц, получаемый из звукового RAW-файла (1-канальный PCM 8-бит без знака 44100 Гц), имя которого задаётся первым аргументом
    • вставляя бинарный плеер в начало каждой страницы (vhs5t.rkr - есть исходник)
    • и используя описание видео из файла с именем description (если есть)

Краткая инструкция по английски есть в самом исходнике vhs5t-maker.c:
Code:
/*
 vhs5t-maker.c - maker of VHS5T videos for RK86 by Shaos

 This code is PUBLIC DOMAIN! Use it on your own RISK!!!

 Build: gcc vhs5t-maker.c -lpng -o vhs5t-maker

 Usage: ./vhs5t-maker [raw-audio.r8u [frames-subfolder]]

 Must have vhs5t.rkr and rk-pgraph binary with sgr.bin in current directory

 Raw file for audio must be mono 8-bit unsigned 44100 Hz

 Frames must have 8-digit name and start with 00000001.png

 You also may have text file description with content for running title

 http://www.nedopc.org/forum/viewtopic.php?f=93&t=22417

 07-APR-2024 - started coding converter for "Bad Apple"
 14-APR-2024 - universal version publicly released
 15-APR-2024 - added optional description for title
*/

Пример файла description (это то, что двигается бегущей строкой над видео - причём все буквы будут переведены в верхний регистр):
Code:
VITAS / SEVENTH ELEMENT / on Radio-86RK Intel 8080 1.777 MHz 128x50 7.5FPS & 1-bit sound 6kHz...
если такого файла нет, то будет использовано описание по умолчанию:
Code:
char description[1024] = "VIDEO ON RADIO-86RK (INTEL 8080 1.777 MHZ) 128X50@7.5FPS & 1-BIT SOUND 6KHZ...";

Получившийся файл romdisk.bin можно положить в подкаталог rk86 эмулятора emu80, в котором в rk86.conf надо поправить размер ромдиска чтобы был по максимуму (8МБ):
Code:
romDisk.sizeMB = 8
и раскомментировать define EXT_ROM_DISK (и закомменить define ROM_DISK если оно было раскомменчено)

Запускать в Emu80 так:
Code:
R,1FF
G


P.S. Повторю описание формата (в 8-мегабайтный ромдиск влезает максимум 5м 41с такого видео 7.5 FPS 128x50 с 1-битным звуком 6 кГц):
Quote:
Ромдиск Апогея по схеме vinxru делится на страницы по 32 килобайт каждая - в одну такую страницу влезает 10 кадров 64x50 (3200) один за другим, со двигом к концу, чтобы освободить первые 768 байт страницы под плеер (0x0000...0x027F) и 2 спец.строки - статус (0x0280...0x02BF) и титул (0x02C0...0x02FF). Строки располагаются последовательно друг за другом, но каждая строка записана задом-наперёд т.к. копирование в экранную область происходит через указатель стека с помощью команды PUSH. Каждый четвёртый символ своим старшим битом задаёт значение сэмпла звука, который будет послан в магнитофонный выход. В пределах кадра получается 800 сэмплов звука или 8000 сэмплов на страницу плюс ещё 32 сэмпла записаны в строках титула и статуса - т.е. всего 8032 в странице или в среднем 803.2 сэмпла на кадр. Текущая версия плеера выдаёт порядка 7.5 FPS видео (и 6 кГц 1-битного звука), что позволяет записать в 8 мегабайтный ромдиск до 341 секунды (5 мин 41 сек).


P.P.S. Возможно надо поработать над плеером так, чтобы он детектировал на какой машине он запущен (РК, Микроша или Апогей) и соответствующим образом инициализировал видео...

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


07 Sep 2024 11:17
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23357
Location: Silicon Valley
Reply with quote
Последовательность чёрно-белых PNG-картинок 128x50 из произвольного видео можно получить так (в данном случае из видеофайла ahhhhh.avi вырезается кусок длиной 47 секунд начиная с метки времени 3.0 секунды):
Code:
mencoder ahhhhh.avi -ss 3.0 -endpos 47 -o ahhhhh128x50.avi -vf scale=128:50 -nosound -ovc lavc -lavcopts gray:vcodec=mpeg4:vbitrate=2000:keyint=5 -ffourcc DIVX
mkdir ahhhhh128x50
ffmpeg -i ahhhhh128x50.avi -vf format=gray -an -qscale 1 ahhhhh128x50/%08d.png
и далее при запуске утилиты конверсии vhs5t-maker имя подкаталога ahhhhh128x50 задаётся вторым аргументом (напомню, что первым аргументом идёт имя RAW-файла звука, который конвертируется отдельно, например с помощью программы Audacity, которая умеет открывать видеофайлы и брать из них звуковую дорожку)

P.S. Наверное можно заморочиться и всё сделать через ffmpeg, но я привык конвертить видосы с помощью mencoder :lol:

P.P.S. Забыл упомянуть, что в некоторых случаях ещё требуется с яркостью-контрастностью поиграться, чтобы небыло слишком бело' или слишком черно'...

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


07 Sep 2024 11:53
Profile WWW
Writer

Joined: 30 Jan 2024 09:12
Posts: 10
Reply with quote
Практически удалось повторить. Под винды вообще конвертер (сборщик) вообще нереально собрать кое кто помог правя иходник и компиля все заново.
Вобщем видос играет, звук вроде тоже гундосит... Но, видео очень отстает от звуковой дорожки. Что не так делаю?


16 Sep 2024 01:26
Profile
Maniac

Joined: 21 Jan 2003 04:08
Posts: 241
Reply with quote
Кстати да, собранный софт под Windows, может пригодится кому...


Attachments:
vhs5t_win.zip [66.36 KiB]
Downloaded 5 times

_________________
Эмулятор Emu80
16 Sep 2024 02:25
Profile ICQ WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23357
Location: Silicon Valley
Reply with quote
maxadler wrote:
Практически удалось повторить. Под винды вообще конвертер (сборщик) вообще нереально собрать кое кто помог правя иходник и компиля все заново.
Вобщем видос играет, звук вроде тоже гундосит... Но, видео очень отстает от звуковой дорожки. Что не так делаю?

Возможно звук не ровно подогнан по частоте - оно на входе ожидает (у меня) 44100 Гц МОНО raw-data 8-bit unsigned

Либо видео неправильно переведено в 7.5 FPS - померяй с секундомером длительность ролика - оригинального и проигранного на РК - должно быть секунда в секунду

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


16 Sep 2024 10:25
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23357
Location: Silicon Valley
Reply with quote
Pyk wrote:
Кстати да, собранный софт под Windows, может пригодится кому...

Можно наверное сделать плугин в VirtualDub, если очень надо - будет преобразовывать любые avi-шки в видеоролики vhs5t ;)

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


16 Sep 2024 20:19
Profile WWW
Doomed
User avatar

Joined: 14 Oct 2019 18:10
Posts: 345
Location: Tashkent
Reply with quote
Shaos wrote:
Pyk wrote:
Кстати да, собранный софт под Windows, может пригодится кому...

Можно наверное сделать плугин в VirtualDub, если очень надо - будет преобразовывать любые avi-шки в видеоролики vhs5t ;)
Да, это проще простого, как способ в этом плане, наверное.
Мною использовалось всюду, где можно. В частности, отправлял кадры с цветом прямо в TelNet порт.


17 Sep 2024 03:41
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 129 posts ]  Go to page Previous  1 ... 5, 6, 7, 8, 9

Who is online

Users browsing this forum: No registered users and 13 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.