Analyzujte svůj stream na Whatnotu nebo Fanatics Live
cardstream se nikdy nepřihlašuje k Whatnotu, Fanatics Live ani k jiné prodejní platformě. Sleduje na vašem vlastním počítači totéž video, které jim už posíláte, a pojmenuje každou kartu, která dopadne na stůl. Tady je celá cesta od nuly k živému overlayi: zhruba patnáct minut a jen jednou.
Počítač poblíž kamery
macOS, Linux nebo Windows. Pokud na něm už běží OBS, je to ten správný počítač: analýza probíhá lokálně, takže nic nemusí nikam cestovat.
Video, které už posíláte
Scéna v OBS, webkamera, capture karta nebo enkodér. cardstream využije to, co máte, a nenutí vás vysílání předělávat.
API klíč Ximilar
Jediný přístupový údaj v celém systému a zůstává na vašem počítači. Žádný účet na platformě, žádné heslo, žádný bot v chatu.
Zprovozněte ho samostatně
Než cokoli z toho sáhne na vaše vysílání, vyzkoušejte, že to funguje s webkamerou notebooku. Tři příkazy.
Nainstalujte ho
Skript vytvoří virtuální prostředí v ~/.cardstream, ověří wheel z vydání podle kontrolních součtů, stáhne váhy modelů a přidá příkazy do PATH. Instalace z wheelu, přes Docker a ze zdrojového kódu najdete na stránce Stažení.
$ curl -fsSL https://raw.githubusercontent.com/Ximilar-com/cardstream/main/scripts/install.sh | sh Přidejte svůj klíč
Identifikace ve výchozím stavu běží přes Ximilar collectibles/v2, nebo místo něj přes váš vlastní systém. XIMILAR_API_KEY je jediná proměnná prostředí, kterou cokoli čte. Dejte ji do profilu shellu, ať v den vysílání přežije restart.
$ export XIMILAR_API_KEY=your-key
Ukažte kartu notebooku
Tímto se otevře rozhraní v prohlížeči s vestavěnou webkamerou. Podržte kartu chvilku v klidu: overlay ukáže, jak se stavový automat rozhoduje, a pak název, edici a jistotu a vedle shody i čas, který identifikační volání trvalo. To je celý produkt; zbytek této stránky řeší jen to, odkud se berou pixely.
$ cardstream-web # → http://127.0.0.1:8001
Nasměrujte ho na své vysílání
Vyberte jeden řádek. Který, záleží na jediné otázce: streamujete z počítače, nebo z mobilu?
Co udělat nejde
Nasměrovat cardstream na veřejnou stránku přehrávače vašeho vysílání na Whatnotu nebo Fanatics. Pro vlastní vysílání žádná odchozí URL streamu neexistuje a stahování z přehrávače by kromě porušení podmínek platformy přidalo i několik sekund zpoždění. Každá cesta níže odebírá vaše video před platformou, a právě proto cardstream nepotřebuje od platformy žádný účet, heslo ani API klíč.
Virtuální kamera OBS
OBS umí operačnímu systému nabídnout vaši hotovou scénu jako běžnou webkameru. cardstream ji pak otevře přesně jako kteroukoli jinou kameru: žádné druhé kódování, žádná zátěž navíc pro enkodér a žádný ffmpeg k instalaci.
- V OBS klikněte v doku Ovládací prvky na Spustit virtuální kameru.
- Spusťte cardstream a zadejte ji jako index webkamery. Index 0 bývá vestavěná kamera, takže virtuální má obvykle 1. Zkoušejte 0, 1, 2, dokud neuvidíte svou scénu.
$ cardstream-web --source 1 Vyzkoušejte to jednou před vysíláním, ne během něj: na macOS potřebuje terminál oprávnění ke kameře, a pokud OpenCV na vašem počítači virtuální zařízení neotevře, cesta B funguje všude.
Druhý výstup z OBS
cardstream naslouchá na vašem počítači a OBS mu posílá kopii. Whatnot nebo Fanatics dál dostávají přesně to, co dřív: jde o cíl navíc, nikdy o přesměrování.
- Nejdřív spusťte příjem; počká na stream a znovu se připojí sám.
- OBS má jen jeden výstup Vysílání, takže kopii pošlete z druhého: buď pluginem
obs-multi-rtmp, nebo přes Nastavení → Výstup → Nahrávání → Vlastní výstup (FFmpeg), typ Výstup do URL, URLrtmp://127.0.0.1:1935/live, formát kontejneruflv. Pak klikněte na Začít nahrávat. - Tato cesta volá systémový ffmpeg: nejdřív
brew install ffmpeg.
$ cardstream-web --listen \ --source rtmp://0.0.0.0:1935/live
Vlastní kamera na stole
Stream z mobilu, který jde přímo do aplikace, nemáte kde rozdvojit. Přestaňte tedy honit odchozí stream a dejte cardstreamu vlastní pohled na tentýž stůl: druhou webkameru nad stolem, nebo HDMI výstup fotoaparátu do capture karty.
- Namiřte webkameru nebo capture kartu na místo, kde karty odkrýváte.
- Spusťte ho na počítači vedle té kamery.
$ cardstream-web --source 0 Nemusí to být stejný úhel, jaký vidí kupující. Těsný, dobře nasvícený záběr shora se rozpoznává lépe, než se to kdy podaří komprimovanému obrazu z platformy.
Cokoli, co má URL
rtsp://, rtmp:// a srt:// se stahují přímo, a navíc JPEG přes ws://, pokud máte sestavu vlastní výroby. Opakované připojení používá omezený odstup, takže spojení se studiem, které vypadne uprostřed breaku, se obnoví, aniž byste na něco sáhli.
- Zadejte URL, kterou váš enkodér už publikuje.
- Stránka v prohlížeči se stane jen pasivním náhledem: analýza běží, i když není otevřený žádný prohlížeč.
$ cardstream-web \ --source rtsp://studio/stream1
Nastavte ho pro vysílání, které děláte
Výchozí nastavení je poctivé, ale break není obecný obraz z kamery: většinou víte, co budete otevírat, ještě než to otevřete.
Řekněte mu, co otevíráte
Předvyplněná hra nebo edice zúží hledání: rychlejší volání, lepší shody. Jedno pravidlo: s --game vždy předejte i --alphabet, protože předvyplněná hra vypne endpointu jeho vlastní rozpoznávání písma a on pak předpokládá latinku, takže japonská karta by odpovídala svému anglickému tisku.
$ cardstream-web --source 1 \ --game "Pokémon" --alphabet japanese --set-code M4
Změňte názor během streamu
Když je další položka z jiné hry, nic nerestartujete: kategorii, hru, kód edice, písmo i prahy výsledku a ostrosti upravíte v okně nastavení v prohlížeči, zatímco stream běží. Všechno ostatní (detektor, filtr, rozlišení) se načte jednou při spuštění, takže to vyberte teď.
Veďte si záznam, nechte port zavřený
--split-results dá každému výskytu vlastní řádek, místo aby slučoval opakování. Vznikne průběžný seznam toho, co jste ukázali, v pořadí, v jakém jste to ukázali, připravený k porovnání s objednávkami. --host nechte na výchozí hodnotě 127.0.0.1: tento proces drží váš klíč a lokální rozhraní nemá ověřování, takže by nikdy nemělo být dostupné z místní sítě.
$ cardstream-web --source 1 --split-results Uložte si vysílání na druhý den ráno
Přidejte --ximilar-stream NEW a každý řádek té historie (karta, její cena, jak dlouho byla na streamu a výřez, podle kterého byla rozpoznána) se během streamování ukládá do relace ve vašem účtu Ximilar. Potom sekce Cards Cloud v aplikaci Ximilar ukáže celé vysílání (jeho hodnotu, nejcennější karty a každou kartu i s obrázkem) a právě tam označíte, co se prodalo, a opravíte chybnou shodu. Pokud se klient uprostřed vysílání restartuje, spusťte ho znovu s vypsaným ID relace místo NEW a totéž vysílání pokračuje. Ukládání do týmového pracovního prostoru zajistí --ximilar-workspace.
$ cardstream-web --source 1 --price-stats --ximilar-stream NEW # po restartu: $ cardstream-web --source 1 --price-stats --ximilar-stream <session-id>
Pak už jen vysílejte. Detekce, pohyb i filtr identity běží lokálně na vašem počítači; identifikační volání proběhne jednou za každou kartu, kterou položíte na stůl, tedy zhruba stokrát za hodinu oproti 54 000 snímkům, které ta hodina obsahuje. Tady jsou počty.
Šest věcí, které se doopravdy pokazí
Virtuální kamera není v seznamu
Zkoušejte postupně --source 0, 1, 2; indexy jsou takové, jaké přidělí systém. Na macOS dejte terminálu přístup ke kameře v Nastavení systému → Soukromí a zabezpečení. Pokud ji OpenCV pořád neotevře, přejděte na cestu B.
„ffmpeg not found“
Systémový program volají jen --listen a --ffmpeg. Nainstalujte ho (brew install ffmpeg) a spusťte znovu; cesty s virtuální kamerou, webkamerou a obyčejným stahováním nic dalšího nepotřebují.
OBS mi nedovolí přidat druhý stream
To je omezení OBS, ne cardstreamu: má jediný výstup Vysílání. Plugin obs-multi-rtmp přidá skutečné další cíle; nahrávání přes Vlastní výstup (FFmpeg) z cesty B funguje s běžným OBS.
Karty se najdou, ale nikdy nespárují
Téměř vždy jde o rozlišení nebo pohyb. Číslo karty musí být ve snímku, který posíláte, čitelné: nechte OBS na 1080p, při odkrytí kartu chvilku podržte v klidu a teprve potom zmírněte --result-threshold (výchozí 0.9; vyšší hodnota propustí slabší shody, 1.0 propustí všechno).
Stejná karta je rozpoznána dvakrát
Filtr identity dal podobnosti obou pohledů skóre pod --similarity-threshold (výchozí 0.85) a usoudil, že jde o novou kartu. Trochu ho snižte. Pokud kartu odložíte a znovu zvednete, zvyšte místo toho --forget-after: karta, která byla 2 sekundy pryč, se záměrně bere jako nová.
Nic se nedetekuje
Spusťte s --show-detection, aby se kreslil obdélník: detekce běží vždy, jen se ve výchozím stavu nekreslí. Žádný obdélník znamená, že karta je v záběru příliš malá nebo příliš rychlá; obdélník bez shody vás pošle o řádek výš.
Pořád nevíte kudy kam? README popisuje každý přepínač a dokumentace je řadí podle toho, čeho chcete dosáhnout.