HDMI streaming/capture

Fórumok

Felmerült bennem, hogy milyen jó lenne néha az asztali gép képernyőjét kitenni a TV-re. Felteszem, hogy ez már másnak is eszébe jutott.

Aki nem olyan szerencsés, hogy ehhez a falban legyen neki HDMI csatlakozás, az eléggé meg van lőve.

Létezik ugyan wireless HDMI átlövő, de drága és sok problémája lehet (képminőség, késleltetés).

Létezik vezetékes is, ami általában képes Cat 5e vagy inkább Cat6 vezetékre áttenni a HDMI jelet, így elvileg normál ethernet porton továbbítható (de nem ethernet hálózaton). De akkor nyilván az a port már nem ethernet. Nekem ez az opció működne, mert van két végpont a PC meg a TV mögött is, bár nem tartom elegáns megoldásak. Viszont nem drága és a képminőséget sem rontja, késleltetést sem visz be.

De mennyivel szebb lenne ha IP alapon menne át! Ekkor egy ethernet port is elég (legfeljebb az ember tesz rá switch-et). És akkor gyakorlatilag nincs határ, jó nettel akár a neten keresztül is mehetne.

Találtam erre céleszközt, a probléma hogy nem találtam hozzá adatlapot. Nem tudom mekkora sávszél kell neki, mennyire konfigurálható, a stream esetleg behozható-e PC-n is? Mert ha már ilyet használ az ember, akkor vérszemet kap :D

Aztán még továbbgondoltam: vannak USB portos HDMI capture kártyák. Ha azt bekötöm, akkor pl. VLC-vel simán tudnék streamelni. Persze jó lenne ha valami normális tömörítéssel jönne ki már a capture kártyából, és nem prociból kellene erőből átkódolni...

Túloldalt pedig pl. egy Rpi fogadhatná a streamet, ha a TV maga nem is tudja. Talán tudhatok olyat küldeni, amit tud. Persze ez is bele fog vinni késleltetést meg minőségromlást, viszont nekem nagyon szimpi hogy szabadon legózhatok a rendszerrel.

Kérdésem volna, hogy kinek van ilyenekkel tapasztalata?

Azt látom, hogy van egy olcsó kategória (10-20e között), ami általában csak MJPEG tömörítést tud. És vannak a drágább, ~60-80e fölötti vasak, amik akár H.265-öt is. Pl. AverMedia EZRecorder 330, ami magában is tud streamelni. De nem tudom, hogy a beéépített stream funckió mennyire open: azt írja hogy Youtube-ra tud streamelni, de nem tudom hogy itthon be tudom-e fogni.

Illetve még egy kérdés, a kétportos (HDMI IN/OUT) eszközökkel kapcolatban: működnek ezek monitor nélkül is?

Hozzászólások

Ha Geforce videokartyad van, en megfontolnam esetleg a Moonlight Game Streaming-et. Nem pont erre valo, de erre is teljesen alkalmas :)

 

https://moonlight-stream.org/

 

Van Pi-re androidra, stb... 60-70 Mbit nel mar nem mondod meg, h nem helyben jatsza le a videot :)

Jónak tűnnek ezek is, külön szimpi hogy nem igazán kell hozzá külső box.

De akkor vegyük úgy, hogy bármilyen HDMI forrásból szeretnék tudni streamelni (mint írtam, legózni szeretnék). Pl. kamera HDMI kimenet, STB, ... Utóbbinál mondjuk a HDCP is kérdés. Érdekes módon az olcsóbb eszközökben mintha láttam volna olyat, ami HDCP-s stream-et is megesz, ellenben az AverMedia box nem :D

Na, tettem vele egy próbát.

Működik, zsír! Látszik hogy játékra van kihegyezve, egy normál screen-share-t nem ajánl fel, de ha elindítom a launchert, akkor onnan már szabad préda, bármit indíthatok :)

Valóban low-latency, engem egyáltalán nem zavart. Igaz, hogy egy Starcraft II-vel próbáltam, nem valami pörgős FPS-el :)

Én nemigen vettem észre a késleltetést.

Pár dolog azért zavar benne:

  • Geforce experience kell hozzá, ami be sem enged regisztráció nélkül,
  • a raspberry-s klienssel voltak problémák, főleg a hanggal. Ez a pulseaudio purgálása és SDL_AUDIODRIVER=alsa és AUDIODEV környezeti változók beállításaival megoldódott.

Rpi azért elég meleg lesz tőle full HD-n. 1080/60 Hz-en 20 MBps-t ajánl, a képminőség ezzel teljesen jó, élesek a vonalak is, stb. Hardver videódekódolást nem állítottam be, majd egyszer talán azzal is teszek egy próbát.

Steam Link is elég low-latency, már Raspberry Pi 3-on is tökéletesen működik. Megy vele a teljes desktop streamelése is, nemcsak játékoké. Állítható a képminőség-vagy-kicsikésleltetés prioritás, bár egy átlag játékosnak beauty képminőséggel is észrevehetetlen a késleltetés vezetékes kapcsolattal. Gigabit ethernet-tel és valamilyen erős androiddal már a hardcore gamerek igényeit is kielégíti. 

Szerkesztve: 2022. 07. 19., k – 07:41

késleltetés nélkül nem fog menni... ha HLS akkor egész nagy (akár 10-30 sec) is lehet a delay, de még rtsp/rtmp esetén is lesz valamennyi. a képminőség meg ugye a tömörítési aránytól/bitrátától függ, de - főleg ha rpi veszi - az sem lehet túl magas.

Nyilván valamennyi késleltetés keletkezik, ilyen szempontból még talán az MJPEG jobb is, mert az elvileg egyetlen frame delay-el már tudna működni, szemben a jobb videókódolásokkal, amik a "jövőbeli" információra is támaszkodnak.

Ezért kérdem a tapasztalatokat. Van-e valakinek ilyen? Mennyi a késleltetés valójában? Milyen az MJPEG/H.264/H.265 képminőség? Mekkora sávszélt használ?

Na, végül bevárásoltam kb. 10 rugóért egy ilyet:

https://sandberg.hu/hu/product/hdmi-capture-link-to-usb

Alapvetően működik. Windows-on találkoztam néha valószínű driver nyűggel, hogy ha egyszer streameltem, akkor utána VLC-ből ki kellett lépni, mert még egyszer nem indult el. Linuxon nem tapasztaltam ilyen problémát.

Ez ugyan csak egy USB2-es csoda, de a legnagyobb baja, hogy még azt sem használja ki teljesen. Úgy látom 50 FPS-t nem tud, csak 30-at vagy 60-at.

MJPEG tömörítést tud, több forrással is működik. A képminőség olyan amilyen. Senki ne várjon tőle stúdió minőségű bemenetet. Az az érdekes, hogy YUV-ban sem stimmelnek a színek, ezen lehet hogy lehetne állítgatni, de nem szenvedtem vele.

Amivel viszont rengeteget szívtam az maga a streamelés, ami igazából az eszköztől független. Olyan streamet nem tudtam előállítani VLC-vel, amit böngészővel normálisan meg lehetett volna etetni.

Másik gépen VLC-vel nézve jól működik:

Ogg konténer, eredeti MJPEG videósáv, FLAC hang. Ennek kb. 40-70 mbps sávszélesség igénye van! Próbáltam wifin is, de elkezd akadni.

Egyéb átkódolásokkal lehet próbálkozni... sajnos a VLC nem tud MP4-et streamelni http-n, pedig valószínűleg ez lenne a legtámogatottabb.

Erre a konkrét típusra még annyit: nem látom leírva, de még mintha HDCP-t is tudna. És azt hiszem sikerült is rájönnöm, hogy ezt hogy csinálja: a videójelet szerintem először analógra alakítja, majd az analóg jelet digitalizálja újra.

Nem vagyok benne 100%-ig biztos, de a következők miatt gondolom:

  • Egyrészt a HDCP kezelés (bár ebben szintén nem vagyok 100%, de az nvidia driver azt írta ki hogy tudja, és mindenféle set-top-boxokból is megette a jeleket). Olyan chip, ami digitálisan rögzít HDCP védett jelet szerintem nemigen van. Viszont HDMI -> komponens konverter valószínűleg létezik ilyen, az analógon pedig már nincs védelem, azt meg szintén bármi digitalizálja.
  • A bemeneten elég sok analógra jellemző vezérlő állítható, amire egy digitális beolvasásnál nem gondolnék: fényerő, kontraszt, telítettség, árnyalat.
  • A képminőség az MJPEG tömörítésen túl is mutat némi romlást. Nem olyan élesek a határok, épp mintha analóggá lenne alakítva a jel.
  • Nagyon rugalmasan kezeli a bemeneti felbontást és a képfrissítést. Ez is analógra utal. Simán tudok akár 640x480-ban rögzíteni full HD kimenetet. 4K-t megeszik, de csak full HD-ban rögzít. A sorfelbontást mindenképp konvertálni kell, de analóg bemenettel ezt is egyszerűbb megcsinálni.
  • Ezt az árkategóriát szerintem csak így lehet elérni, mert minden más ami digitálisan rögzít HDMI-t, azok legalább 2x ennyibe kerülnek.
  • Miért csak USB 2.0? Mert az analóg rögzítőknek ennyi bőven elég!

Szóval lényeg a lényeg, ha valami ilyesmit láttok, azt szerintem kerüljétek el. Kicsit többe kerülnek az USB 3-as rögzítők, de azoknál írják is, hogy HDCP-t nem tud, és valószínűleg annyival jobb is a képük, mert kimarad ez az átalakítás. Majd még lehet teszek egy olyannal is próbát.

Ha analóg kerülővel digitalizálja újra, az már régen rossz. De kicsi az esélye, hogy így működne pláne ennyiért. A HDCP védett jel rögzítése hivatalosan nem lehetséges, nem hivatalosan bőséges a választék HDMI Recorder névre keresve Kínában. Ha nagyon olcsó az valószínűleg nem fog tudni HDCP-t, illetve általában fel van tüntetve HDCP melyik verzióig bezárólag használható. Főleg műholdas set top box mellett szokták használni, illetve ha elbaszott kábelszolgáltatója van valakinek, amely kizárólag a box-aival hajlandó tévé adást szolgáltatni. 

esetleg vlc helyett ffmpeg. az is tud elvileg kepernyot menteni: https://trac.ffmpeg.org/wiki/Capture/Desktop

illetve ha a kartyabol valami /dev/video1 devicebol lehet kinyerni az adatot, akkor is jo lehet az ffmpeg, az is tud streamelni mindenfele dolgon.

A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

a leírásod alapján ugyanaz lehet a belseje, mint ennek a 10 dolcsis kínai cuccnak
https://www.aliexpress.com/item/4000917130635.html

az usb3 csak vakítás, ugyanúgy csak az usb2 van bekötve. A chipset usb2es. 
https://prohardver.hu/dl/upc/2022-08/23987_img_20210802_153128.jpg

Macro silicon chipset
https://bigl.es/friday-fun-10-hdmi-to-usb-capture/

én próbaképp vettem egy usb3 csatisat is, de ugyanaz teljesen :D A második linken a fotó saját.
Camlink kulcsszóval találni hasonlókat. A komolyabbak egy nagyságrenddel drágábbak. Szóval fhd-re végülis elég jó ez a 10 dolcsis cucc.

Múltkor a másik iránnyal szívtuk meg. Munkahelyen a költséghatékony laptopokra nem lehet két kijelzőt kötni és alternatívának usb3 - hdmi donglet próbáltunk. Régről van már nekem usb3-vga változat, az a maga szintjén egész használható.
Szóval, sikerült találni kétfélét is, ami valójában usb2-es, egyiket még 4k felbontással is reklámozzák, amikor az fhd is nagyon szaggat rajta.
https://www.pcx.hu/gembird-a-usb3-hdmi-02-usb-hdmi-adapter-00982007
https://www.pcx.hu/gembird-usb-3-0-type-c-hdmi-vga-adapter-a-usb3c-hdmi…

Azokban is valami szutyok macrosilicon chipset van. 

Ebben viszont tényleg usb3-as, más chipset van, olyan, mint a régi vga donglemben. Ezzel egy mai gyors gépen már szinte észrevehetettlen, hogy nem natív gpu hajtja.
https://www.pcx.hu/vcom-usb-3-0-apa-usb-hub-cu322m--00808186

Szerkesztve: 2022. 08. 05., p – 08:19

Rpi-ről loginonlj be  ssh -X a másik gépre. 

(aktív) hdmi "elosztó" (splitter). Az egyik megy tovább a monitorba, a másik a tv-be. A kiválasztáskor max felbontás+képfrissítésre figyelj. Én nem konvertálnám ide-oda csak plusz késleltetést jelent. Persze, ha filmet nézel rajta és a hang is ezen megy át akkor lényegtelen, amíg így vagy úgy, de azonos a késleltetés mértéke.

Mint írtam az egész apropóját az adta, hogy messze van a két eszköz, és nincs kiépített HDMI köztük. Akkor sem splittert tennék fel, hanem csak screen mirroring-ot használnék.

Ha realtime használat kell, akkor a fent javasolt moonlight nagyon jól működik, azt csak ajánlani tudom. Egyetlen tüske számomra a geforce experience-hez szükséges regisztráció.

a splitter után a hdmi jelet nagyobb távolságra viheted valami ilyesmivel: https://www.act-connectivity.com/en-us/hdmi-extender-set-single-cat6-50… Persze a felhasználáson múlik. Persze tisztán IP alapon is csinálhatod akár: pl NDI-n.

Felhasználás, költség keret, elvárt stabilitás&minőség stb. kérdése.

Én ezt használom: https://parsec.app

Full desktop share, controller támogatás is pöpec. Jobban bevált, mint a Steam Link, és van Android kliens is, meg RPi kliens is.

Szerkesztve: 2022. 08. 15., h – 18:44

Sub.

(Én is szívtam ezzel annó, PC és nagytévé egymás melletti helyiségben, aztán meguntam és egy 15m-es HDMI kábel +rádiós gamepadek lett a végleges megoldás. Parsec + Raspi amúgy működött előtte.).