mike na hračke

som spektrista

Grabovanie videa v Linuxe

2023-03-06 od mikezt

Tento článok slúži na zaznamenanie mojich poznámok z grabovania videa, aby som nabudúce nemusel prehľadávať internet a objavovať koleso.

Na grabovanie som použil adaptér z AliExpressu, ktorý som kúpil za pár euro viacmenej ako hračku na test, než ako seriózne zariadenie. Na vstupe má HDMI, na výstupe USB3 a v Linuxe sa hlási ako ID 534d:2109 MacroSilicon usb video. Môj predpoklad bol, že cez OSSC by bolo možné získať relatívne kvalitný záznam z originálneho hardvéru.

Na začiatok si prezrieme hardvér. Zoznam V4L zariadení nám vypíše:

v4l2-ctl --list-devices

A zoznam formátov, ktoré zariadenie podporuje:

ffmpeg  -hide_banner -f v4l2 -list_formats all -i /dev/video0

Moje zariadenie pozná dva formáty. Komprimovaný mjpeg a Raw yuyv422, oba až do rozlíšenia 1920x1080, aj keď to je diskutabilné. Mjpeg pridáva od obrazu jpegové artefakty, yuyv422 zasa vie iba nízke obnovovacie frekvencie (cca. 20Hz).

Zvuk sa dá grabovať priamo z HDMI, ale na to nemám spravené káble. Preto sa zvuk pripojí do vstupu zvukovej karty. Kupodivu to má minimlnu latenciu. Zoznam vstupov Alsy nám zobrazí:

arecord -l

Moja zvukovka ma citlivý vstup, takže bolo treba stiahnuť hlasitosť až niekam k 30%. Vyskúšať si správne nastavenie môžeme cez:

ffmpeg -f alsa -i hw:0,2 -t 30 out.wav

Ešte by som spomenul utilitu qv4l2, ktorú tiež môžete nájsť v KDE menu v Multimedia - Qt V4L2 test Utility. V nej si môžete vyskúsať všetky možné aj nemožné kombinácie nastavení grabovacej karty a poslúži aj ako zobrazovač, ak chcete použiť grabovaciu kartu ako monitor.

Teraz už stačí iba napísať jednoduchý príkaz, ktorý nám zgrabuje toľko žiadané video. Vlastne, až tak jednoduché to nebude. K celému grabovaciemu procesu som sa dostal tak, že Lovebyte požadoval okrem príspevku aj záznam v rozlíšení 1280x720. Takže treba video upraviť do tohoto rozlíšenia a pridať má čierne okraje. Ak ste sledovali live záznam, tak viete, že kto to nepravil, mal roztiahnutý 4:3 obraz na 16:9. No a tu je teda ten jednoduchý príkaz:

ffmpeg -f v4l2 -input_format mjpeg -framerate 50 -video_size 1024x768 -i /dev/video0 -f alsa -i hw:1 -acodec libvorbis  -vf "scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2" -r 60 -b:v 8000k video.mp4

Súťažné videá si môžete pozrieť pre PLOT-Love a Planet of Pyramid Monsters. Viem, že to nie je najlepšia kvalita, ale je to záznam z originálnej mašiny a žiadna fantasy grafika, akú originálne stroje nikdy nemali.

Prajem Vám veľa zaznamenaných videí, v čo najlepšej kvalite!




- 1 = jedna