cardstream
Guide

Analyser din stream på Whatnot eller Fanatics Live

cardstream logger aldrig ind på Whatnot, Fanatics Live eller nogen anden markedsplads. Det ser den samme video, du allerede sender til dem, på din egen computer, og sætter navn på hvert kort, der rammer bordet. Her er hele vejen fra ingenting til et live-overlay: cirka et kvarter, én gang.

En computer tæt på kameraet

macOS, Linux eller Windows. Kører du allerede OBS på den, er det den rigtige maskine: Analysen sker lokalt, så intet skal sendes nogen steder hen.

Den video, du allerede sender

En OBS-scene, et webcam, et capture card eller en encoder. cardstream kobler sig på det, du har, og beder dig ikke om at stille showet op på ny.

En API-nøgle fra Ximilar

Den eneste adgangsoplysning i hele systemet, og den bliver på din computer. Ingen konto på markedspladsen, ingen adgangskode, ingen bot i din chat.

Først

Få det til at køre for sig selv

Før noget af det her rører dit show, så bevis, at det virker med webcammet i din bærbare. Tre kommandoer.

01

Installer det

Scriptet opretter et venv i ~/.cardstream, kontrollerer releasens wheel mod dens kontrolsummer, henter modelvægtene og lægger kommandoerne på din PATH. Installation fra wheel, med Docker og fra kildekode står på downloadsiden.

$ curl -fsSL https://raw.githubusercontent.com/Ximilar-com/cardstream/main/scripts/install.sh | sh
02

Tilføj din nøgle

Identifikationen kører som standard gennem Ximilar collectibles/v2, eller gennem dit eget system i stedet. XIMILAR_API_KEY er den eneste miljøvariabel, der overhovedet bliver læst. Læg den i din shellprofil, så den overlever en genstart på showaftenen.

$ export XIMILAR_API_KEY=your-key
03

Hold et kort op foran din bærbare

Det åbner brugerfladen i browseren med dit indbyggede webcam. Hold et kort stille et øjeblik: Overlayet viser tilstandsmaskinen, mens den beslutter sig, og derefter navn, sæt og konfidens, med identifikationskaldets varighed ved siden af matchet. Det er hele produktet. Resten af denne side handler kun om, hvor pixlerne kommer fra.

$ cardstream-web
# → http://127.0.0.1:8001
Derefter

Peg det mod dit show

Vælg én række. Hvilken det bliver, afhænger af ét spørgsmål: Streamer du fra en computer eller fra en telefon?

Det, du ikke kan

Pege cardstream mod din offentlige afspilningsside på Whatnot eller Fanatics. Der findes ingen udgående stream-URL til dit eget show, og at skrabe afspilleren ville lægge sekunders forsinkelse oven i et brud på platformens vilkår. Alle metoderne herunder kobler sig på din video før markedspladsen, og det er præcis derfor, cardstream hverken har brug for konto, adgangskode eller API-nøgle fra dem.

A
Du streamer fra OBS på en computer

Det virtuelle kamera i OBS

Start her

OBS kan vise din færdige scene for styresystemet som et almindeligt webcam. cardstream åbner det derefter på præcis samme måde som ethvert andet kamera: ingen ekstra kodning, ingen ekstra belastning af din encoder og ingen ffmpeg, der skal installeres.

  1. Klik på Start Virtuelt Kamera i panelet Styring i OBS.
  2. Kør cardstream mod det som et webcam-indeks. Indeks 0 er som regel dit indbyggede kamera, så det virtuelle er normalt 1. Prøv 0, 1, 2, indtil du ser din scene.
$ cardstream-web --source 1

Prøv det én gang før et show og ikke under et: På macOS skal terminalen have adgang til kameraet, og hvis OpenCV ikke kan åbne den virtuelle enhed på din computer, virker metode B alle steder.

B
Du streamer fra OBS og vil have præcis de pixels, der bliver sendt

Et ekstra output fra OBS

cardstream lytter på din egen computer, og OBS sender en kopi til det. Whatnot eller Fanatics modtager stadig præcis det samme som før: Det er et ekstra mål, aldrig en omdirigering.

  1. Start lytteren først. Den venter på forbindelsen og kobler selv på igen.
  2. OBS har kun ét Stream-output, så send kopien fra et andet: enten pluginet obs-multi-rtmp eller Indstillinger → Output → Optagelse → Tilpasset output (FFmpeg), type Output til URL, URL rtmp://127.0.0.1:1935/live, container flv. Tryk derefter på Start optagelse.
  3. Denne metode kalder systemets ffmpeg-program: Kør brew install ffmpeg først.
$ cardstream-web --listen \
    --source rtmp://0.0.0.0:1935/live
C
Du går live fra en telefon, som de fleste sælgere

Sit eget kamera på bordet

En telefon, der sender direkte til appen, giver dig ingen stream at tage en kopi af. Så hold op med at jagte den udgående stream, og giv cardstream sit eget udsyn til det samme bord: et ekstra webcam oppefra eller kameraets HDMI-udgang ind i et capture card.

  1. Ret et webcam eller et capture card mod det sted, hvor du viser kortene frem.
  2. Kør det på computeren ved siden af det kamera.
$ cardstream-web --source 0

Det behøver ikke være dine køberes vinkel. Et tæt, godt belyst billede oppefra bliver identificeret bedre, end et komprimeret signal fra markedspladsen nogensinde bliver.

D
Du kører en encoder, en switcher eller et IP-kamera

Alt, der har en URL

rtsp://, rtmp:// og srt:// hentes direkte, og ws://-feeds med JPEG er der til det hjemmebyggede setup. Genopkoblingen bruger begrænset backoff, så en studieforbindelse, der falder ud midt i et break, kommer tilbage, uden at du rører noget.

  1. Giv det den URL, din encoder allerede udgiver.
  2. Browsersiden bliver en passiv tilskuer: Analysen kører, selv når ingen browser er åben.
$ cardstream-web \
    --source rtsp://studio/stream1
Før du går live

Indstil det til det show, du kører

Standardindstillingerne er fornuftige, men et break er ikke et hvilket som helst kamerasignal: Du ved som regel, hvad du åbner, før du åbner det.

04

Fortæl det, hvad du breaker

Et forhåndsvalgt spil eller sæt indsnævrer søgningen: hurtigere kald, bedre match. Én regel: Angiv altid --alphabet, når du angiver --game. Et forhåndsvalgt spil slår endpointets egen genkendelse af alfabetet fra, så endpointet antager latin, og et japansk kort ville matche sin engelske udgave.

$ cardstream-web --source 1 \
    --game "Pokémon" --alphabet japanese --set-code M4
05

Skift mening midt i streamen

Når næste lot er et andet spil, skal du ikke genstarte noget: Kategori, spil, sætkode, alfabet og tærsklerne for resultat og skarphed kan alle redigeres i browserens indstillingsdialog, mens streamen kører. Alt andet (detektor, filter, opløsning) læses én gang ved opstart, så vælg dem nu.

06

Behold loggen, hold porten lukket

--split-results giver hver fremvisning sin egen række i stedet for at slå gentagelser sammen: en løbende liste over, hvad du viste, i den rækkefølge, du viste det, klar til at blive afstemt mod ordrerne bagefter. Lad --host stå på standardværdien 127.0.0.1: Den proces ligger inde med din nøgle, og den lokale brugerflade har ingen adgangskontrol, så den må aldrig kunne nås fra dit lokalnetværk.

$ cardstream-web --source 1 --split-results
07

Gem showet til morgenen efter

Tilføj --ximilar-stream NEW, og hver række i historikken (kortet, prisen, hvor længe det var på streamen, og det udsnit, det blev identificeret ud fra) gemmes i en session på din Ximilar-konto, mens du streamer. Bagefter viser Cardstream-sektionen i Ximilar-appen hele showet (dets værdi, de mest værdifulde kort og hvert kort med sit billede), og det er dér, du markerer, hvad der blev solgt, og retter et forkert match. Genstarter klienten midt i showet, starter du den igen med det udskrevne sessions-id i stedet for NEW, og det samme show fortsætter. Vil du gemme i et team-workspace, bruger du --ximilar-workspace.

$ cardstream-web --source 1 --price-stats --ximilar-stream NEW
# efter en genstart:
$ cardstream-web --source 1 --price-stats --ximilar-stream <session-id>

Og kør så dit show. Detektion, bevægelse og identitetsfilteret kører alt sammen lokalt på din computer. Identifikationskaldet går af sted én gang pr. kort, du lægger på bordet: cirka hundrede på en time, mod de 54.000 billeder, den time indeholder. Regnestykket står her.

Hvis noget driller

De seks ting, der rent faktisk går galt

Det virtuelle kamera er ikke på listen

Gå --source 0, 1, 2 igennem på skift. Indeksene er dem, styresystemet deler ud. På macOS giver du terminalen adgang til kameraet under Systemindstillinger → Anonymitet & sikkerhed. Hvis OpenCV stadig ikke vil åbne det, så skift til metode B.

“ffmpeg not found”

Kun --listen og --ffmpeg kalder systemets program. Installer det (brew install ffmpeg), og kør igen. Metoderne med virtuelt kamera, webcam og almindeligt pull kræver intet ekstra.

OBS vil ikke lade mig tilføje en stream mere

Det er en begrænsning i OBS, ikke i cardstream: OBS har ét enkelt Stream-output. Pluginet obs-multi-rtmp tilføjer rigtige ekstra mål, og optagelsesvejen Tilpasset output (FFmpeg) i metode B virker med en helt almindelig OBS.

Kortene bliver fundet, men aldrig matchet

Næsten altid opløsning eller bevægelse. Kortnummeret skal kunne læses i det billede, du sender: Hold OBS på 1080p, hold kortet stille et øjeblik, når du viser det frem, og løsn først derefter --result-threshold (standard 0.9; en højere værdi beholder svagere match, 1.0 beholder alt).

Det samme kort bliver identificeret to gange

Identitetsfilteret gav de to visninger en score under --similarity-threshold (standard 0.85) og kaldte det et nyt kort. Sænk den en smule. Hvis du lægger et kort fra dig og tager det op igen, så hæv --forget-after i stedet: Efter 2 sekunders fravær behandles et kort med vilje som nyt.

Der bliver slet ikke fundet noget

Kør med --show-detection for at få tegnet boksen: Detektionen kører altid, den bliver bare ikke tegnet som standard. Ingen boks betyder, at kortet er for lille eller for hurtigt i billedet. En boks uden match sender dig til rækken ovenfor.

Sidder du stadig fast? README dokumenterer alle flag, og dokumentationen samler dem efter, hvad du gerne vil gøre.

Open source. Selvhostet. Din stream, din stack.

Ingen platform i midten og ingen licens pr. bruger: Tilslut Ximilars API eller dit eget identifikationssystem, så kalder cardstream det én gang pr. nyt kort i stedet for én gang pr. billede. Uanset om du kører breaks på Whatnot, holder et show i stil med Fanatics Live eller streamer fra dit eget liveshopping-setup, kan du køre cardstream i aften på den hardware, du allerede har.