cardstream
Guide

Analyser strømmen din på Whatnot eller Fanatics Live

cardstream logger aldri inn på Whatnot, Fanatics Live eller noen annen markedsplass. Den følger med på den samme videoen du allerede sender dit, på din egen maskin, og navngir hvert kort som legges på bordet. Her er hele veien, fra ingenting til et direkte overlegg: omtrent et kvarter, én gang.

En datamaskin nær kameraet

macOS, Linux eller Windows. Kjører du allerede OBS på den, er det den rette maskinen: analysen skjer lokalt, så ingenting trenger å sendes noe sted.

Videoen du allerede sender

En scene i OBS, et webkamera, et opptakskort eller en koder. cardstream tapper det du har; du trenger ikke å bygge opp showet på nytt.

En API-nøkkel fra Ximilar

Den eneste påloggingsinformasjonen i hele systemet, og den blir på maskinen din. Ingen konto på markedsplassen, intet passord, ingen bot i chatten.

Først

Få den til å kjøre for seg selv

Før noe av dette rører showet ditt, sjekker du at det fungerer med webkameraet på den bærbare. Tre kommandoer.

01

Installer den

Skriptet oppretter et virtuelt miljø i ~/.cardstream, kontrollerer wheel-filen fra utgivelsen mot sjekksummene, laster ned modellvektene og legger kommandoene på PATH. Installasjon med wheel, Docker og fra kildekode finner du på nedlastingssiden.

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

Legg inn nøkkelen din

Identifiseringen går som standard gjennom Ximilar collectibles/v2, eller gjennom ditt eget system i stedet. XIMILAR_API_KEY er den eneste miljøvariabelen som leses. Legg den i skallprofilen din, så overlever den en omstart på showkvelden.

$ export XIMILAR_API_KEY=your-key
03

Hold et kort opp foran den bærbare

Dette åpner brukergrensesnittet i nettleseren med det innebygde webkameraet. Hold et kort i ro et øyeblikk: overlegget viser tilstandsmaskinen som bestemmer seg, deretter navn, sett og konfidens, med tiden identifiseringskallet brukte ved siden av treffet. Det er hele produktet; resten av denne siden handler bare om hvor pikslene kommer fra.

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

Pek den mot showet ditt

Velg én løsning. Hvilken avhenger av ett enkelt spørsmål: strømmer du fra en datamaskin eller fra en mobil?

Det du ikke kan gjøre

Peke cardstream mot den offentlige avspillingssiden din på Whatnot eller Fanatics. Det finnes ingen utgående strøm-URL for ditt eget show, og å skrape spilleren ville gi sekunder med forsinkelse i tillegg til å bryte plattformens vilkår. Hver løsning nedenfor tapper videoen før den når markedsplassen, og det er nettopp derfor cardstream ikke trenger noen konto, noe passord eller noen API-nøkkel fra dem.

A
Du strømmer fra OBS på en datamaskin

Det virtuelle kameraet i OBS

Start her

OBS kan vise den ferdige scenen din for operativsystemet som et vanlig webkamera. cardstream åpner det da akkurat som et hvilket som helst annet kamera: ingen ekstra koding, ingen ekstra belastning på koderen og ingen ffmpeg å installere.

  1. Klikk på Start virtuelt kamera i Kontrollere-panelet i OBS.
  2. Kjør cardstream mot det som en webkameraindeks. Indeks 0 er som regel det innebygde kameraet, så det virtuelle er vanligvis 1. Prøv 0, 1, 2 til du ser scenen din.
$ cardstream-web --source 1

Prøv dette én gang før et show, ikke under: på macOS trenger terminalen tilgang til kameraet, og hvis OpenCV ikke får åpnet den virtuelle enheten på maskinen din, fungerer løsning B overalt.

B
Du strømmer fra OBS og vil ha nøyaktig de samme pikslene som sendes

En ekstra utgang fra OBS

cardstream lytter på din egen maskin, og OBS sender en kopi til den. Whatnot eller Fanatics fortsetter å få nøyaktig det de fikk før: dette er et ekstra mål, aldri en omdirigering.

  1. Start lytteren først; den venter på sendingen og kobler til igjen av seg selv.
  2. OBS har bare én utgang for Strømming, så send kopien fra en annen: enten med utvidelsen obs-multi-rtmp, eller via Innstillinger → Utdata → Opptak → Egendefinert utdata (FFmpeg), type Utgang til URL, URL rtmp://127.0.0.1:1935/live, innpakkingsformat flv. Trykk deretter på Start Opptak.
  3. Denne løsningen kaller systemets ffmpeg-program: kjør brew install ffmpeg først.
$ cardstream-web --listen \
    --source rtmp://0.0.0.0:1935/live
C
Du går live fra mobilen, som de fleste selgere

Et eget kamera ved bordet

En mobil som sender rett til appen, gir deg ingenting å koble deg på. Slutt derfor å jakte på den utgående strømmen, og gi cardstream sin egen utsikt over det samme bordet: et ekstra webkamera ovenfra, eller kameraets HDMI-utgang inn i et opptakskort.

  1. Rett et webkamera eller et opptakskort mot stedet der du viser frem kortene.
  2. Kjør cardstream på maskinen ved siden av det kameraet.
$ cardstream-web --source 0

Det trenger ikke være samme vinkel som kjøperne ser. Et tett, godt opplyst bilde ovenfra gir bedre identifisering enn en komprimert strøm fra markedsplassen noen gang vil gjøre.

D
Du bruker en koder, en videomikser eller et IP-kamera

Alt som har en URL

rtsp://, rtmp:// og srt:// hentes direkte, og ws://-strømmer med JPEG fungerer når oppsettet er hjemmesnekret. Nye tilkoblingsforsøk bruker begrenset backoff, så en studiolinje som faller ut midt i et break, kommer tilbake uten at du rører den.

  1. Gi den URL-en koderen din allerede publiserer.
  2. Nettlesersiden blir en passiv visning; analysen kjører selv om ingen nettleser er åpen.
$ cardstream-web \
    --source rtsp://studio/stream1
Før du går live

Tilpass den til showet du kjører

Standardinnstillingene er gode, men et break er ikke en hvilken som helst kamerastrøm: du vet som regel hva du åpner før du åpner det.

04

Fortell den hva du åpner

Forhåndsutfylling av spill eller sett snevrer inn søket: raskere kall, bedre treff. Én regel: oppgi alltid --alphabet når du oppgir --game. Når spillet er fylt ut på forhånd, slår endepunktet av sin egen gjenkjenning av alfabetet og antar da latin, så et japansk kort ville fått treff på den engelske utgaven.

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

Ombestem deg midt i strømmen

Når det neste du selger, er et annet spill, trenger du ikke starte noe på nytt: kategori, spill, settkode, alfabet og tersklene for resultat og skarphet kan alle endres i innstillingsdialogen i nettleseren mens strømmen går. Alt annet (detektor, filter, oppløsning) leses én gang ved oppstart, så velg det nå.

06

Behold loggen, hold porten lukket

--split-results gir hver opptreden sin egen rad i stedet for å slå sammen gjentakelser: en løpende liste over det du har vist, i den rekkefølgen du viste det, klar til å avstemmes mot bestillingene etterpå. La --host stå på standardverdien 127.0.0.1: den prosessen holder på nøkkelen din, og det lokale grensesnittet har ingen autentisering, så det skal aldri kunne nås fra lokalnettet ditt.

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

Lagre showet til morgenen etter

Legg til --ximilar-stream NEW, så lagres hver rad i historikken (kortet, prisen, hvor lenge det var på strømmen og utsnittet det ble identifisert fra) i en økt på Ximilar-kontoen din mens du strømmer. Etterpå viser Cards Cloud-delen av Ximilar-appen hele showet, med verdien, de mest verdifulle kortene og hvert kort med bilde, og der merker du det som ble solgt og retter feil treff. Starter klienten på nytt midt i showet, starter du den igjen med økt-ID-en som ble skrevet ut, i stedet for NEW, så fortsetter det samme showet. For å lagre i et felles arbeidsområde for teamet bruker du --ximilar-workspace.

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

Så er det bare å kjøre showet. Deteksjon, bevegelse og identitetsfilteret kjører lokalt på maskinen din; identifiseringskallet sendes én gang per kort du legger på bordet, rundt hundre i timen, mot de 54 000 bildene den timen består av. Her er regnestykket.

Hvis noe ikke stemmer

De seks tingene som faktisk går galt

Det virtuelle kameraet står ikke i listen

Prøv --source 0, 1, 2 etter tur; indeksene er det operativsystemet deler ut. På macOS gir du terminalen tilgang til kameraet under Systeminnstillinger → Personvern og sikkerhet. Hvis OpenCV fortsatt ikke får åpnet det, bytter du til løsning B.

«ffmpeg not found»

Bare --listen og --ffmpeg kaller systemprogrammet. Installer det (brew install ffmpeg) og kjør på nytt; løsningene med virtuelt kamera, webkamera og vanlig henting trenger ingenting ekstra.

OBS lar meg ikke legge til en strøm til

Det er en begrensning i OBS, ikke i cardstream: OBS har én enkelt utgang for strømming. Utvidelsen obs-multi-rtmp legger til ekte ekstra mål; opptaksveien med Egendefinert utdata (FFmpeg) i løsning B fungerer med vanlig OBS.

Kortene blir funnet, men får aldri treff

Nesten alltid oppløsning eller bevegelse. Kortnummeret må være lesbart i bildet du sender: hold OBS på 1080p, hold kortet i ro et øyeblikk når du viser det frem, og først da løser du opp --result-threshold (standard 0.9; høyere beholder svakere treff, 1.0 beholder alt).

Det samme kortet blir identifisert to ganger

Identitetsfilteret ga de to visningene en verdi under --similarity-threshold (standard 0.85) og regnet det som et nytt kort. Senk den litt. Hvis du legger fra deg et kort og tar det opp igjen, hever du heller --forget-after: etter 2 sekunder borte regnes et kort som nytt, med vilje.

Ingenting blir detektert i det hele tatt

Kjør med --show-detection for å tegne boksen: deteksjonen kjører alltid, den blir bare ikke tegnet som standard. Ingen boks betyr at kortet er for lite eller beveger seg for raskt i bildet; en boks uten treff sender deg til raden ovenfor.

Står du fortsatt fast? README-en dokumenterer hvert flagg, og dokumentasjonen sorterer dem etter hva du prøver å gjøre.

Åpen kildekode. På din egen maskin. Din strøm, ditt oppsett.

Ingen plattform i midten, ingen lisens per bruker: koble til Ximilars API eller ditt eget identifiseringssystem, så kaller cardstream det én gang per unikt kort i stedet for én gang per bilde. Enten du kjører breaks på Whatnot, holder et show i Fanatics Live-stil eller strømmer fra ditt eget oppsett for livesalg, kan du kjøre cardstream allerede i kveld på maskinvaren du har.