cardstream
Panduan

Analisis strim Whatnot atau Fanatics Live anda

cardstream tidak pernah log masuk ke Whatnot, Fanatics Live atau mana-mana platform jualan lain. Ia memerhati video yang sama yang sudah anda hantar kepada mereka, pada mesin anda sendiri, dan menamakan setiap kad yang diletakkan di atas meja. Inilah keseluruhan langkahnya, daripada tiada apa-apa hingga overlay langsung: kira-kira lima belas minit, sekali sahaja.

Komputer berhampiran kamera

macOS, Linux atau Windows. Jika anda sudah menjalankan OBS padanya, mesin itulah yang betul. Analisis berlaku secara setempat, jadi tiada apa yang perlu dihantar ke mana-mana.

Video yang sudah anda hantar

Adegan OBS, kamera web, kad tangkapan atau pengekod. cardstream mengambil apa yang anda sudah ada; ia tidak meminta anda menyusun semula sesi live anda.

Kunci API Ximilar

Satu-satunya kelayakan dalam seluruh sistem, dan ia kekal pada mesin anda. Tiada akaun platform jualan, tiada kata laluan, tiada bot dalam ruang sembang anda.

Mula-mula

Jalankan ia secara bersendirian dahulu

Sebelum semua ini menyentuh sesi live anda, buktikan bahawa ia berfungsi dengan kamera web komputer riba anda. Tiga arahan.

01

Pasang

Skrip ini membina venv dalam ~/.cardstream, mengesahkan wheel keluaran berdasarkan checksumnya, memuat turun pemberat model dan meletakkan arahan dalam PATH anda. Pemasangan melalui wheel, Docker dan kod sumber ada di halaman muat turun.

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

Tambah kunci anda

Pengecaman berjalan melalui Ximilar collectibles/v2 secara lalai, atau sistem anda sendiri sebagai gantinya. XIMILAR_API_KEY ialah satu-satunya pemboleh ubah persekitaran yang dibaca. Letakkannya dalam profil shell anda supaya ia kekal selepas komputer dimulakan semula pada malam sesi live.

$ export XIMILAR_API_KEY=your-key
03

Tunjukkan sekeping kad kepada komputer riba anda

Ini membuka UI pelayar pada kamera web terbina dalam anda. Pegang kad tanpa bergerak seketika: overlay menunjukkan mesin keadaan sedang membuat keputusan, kemudian nama, set dan tahap keyakinan, dengan masa sebenar panggilan pengecaman di sebelah padanan. Itulah keseluruhan produknya; selebihnya halaman ini hanya tentang dari mana piksel itu datang.

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

Halakan ia ke sesi live anda

Pilih satu baris. Pilihan anda bergantung pada satu soalan sahaja: adakah anda strim dari komputer desktop atau dari telefon?

Apa yang tidak boleh anda lakukan

Menghalakan cardstream ke halaman tontonan awam Whatnot atau Fanatics anda. Tiada URL strim keluar untuk sesi live anda sendiri, dan mengikis pemain video akan menambah kelewatan beberapa saat, di samping melanggar terma platform. Setiap cara di bawah mengambil video anda sebelum ia sampai ke platform jualan, dan sebab itulah cardstream tidak memerlukan akaun, kata laluan atau kunci API daripada mereka.

A
Anda strim dari OBS pada komputer desktop

Kamera maya OBS

Mula di sini

OBS boleh membentangkan adegan yang anda susun kepada sistem pengendalian sebagai kamera web biasa. cardstream kemudian membukanya sama seperti kamera lain: tiada pengekodan kedua, tiada beban tambahan pada pengekod anda dan tiada ffmpeg untuk dipasang.

  1. Dalam OBS, klik Mula Kamera Maya dalam dok Kawalan.
  2. Jalankan cardstream padanya sebagai indeks kamera web. Indeks 0 biasanya kamera terbina dalam anda, jadi kamera maya biasanya 1. Cuba 0, 1, 2 sehingga anda nampak adegan anda.
$ cardstream-web --source 1

Cuba cara ini sekali sebelum sesi live, bukan semasa sesi live: pada macOS, terminal memerlukan kebenaran kamera, dan jika OpenCV tidak dapat membuka peranti maya pada mesin anda, cara B berfungsi di mana-mana.

B
Anda strim dari OBS dan mahukan piksel siaran yang tepat

Output kedua dari OBS

cardstream mendengar pada mesin anda sendiri dan OBS menolak salinan kepadanya. Whatnot atau Fanatics terus menerima betul-betul apa yang mereka terima sebelum ini: ini ialah sasaran tambahan, bukan ubah hala.

  1. Mulakan pendengar dahulu; ia menunggu tolakan dan menyambung semula dengan sendirinya.
  2. OBS hanya mempunyai satu output Strim, jadi hantar salinan itu daripada output kedua: sama ada pemalam obs-multi-rtmp, atau Tetapan → Output → Rakaman → Output Suai (FFmpeg), jenis Output ke URL, URL rtmp://127.0.0.1:1935/live, format bekas flv, kemudian tekan Mula Rakaman.
  3. Cara ini memanggil binari ffmpeg sistem: jalankan brew install ffmpeg dahulu.
$ cardstream-web --listen \
    --source rtmp://0.0.0.0:1935/live
C
Anda buat live dari telefon, seperti kebanyakan penjual

Kameranya sendiri di atas meja

Telefon yang menolak strim terus ke aplikasi tidak memberi anda apa-apa untuk dicabangkan. Jadi berhenti mengejar strim keluar dan berikan cardstream pandangannya sendiri ke meja yang sama: kamera web kedua yang merakam dari atas, atau output HDMI kamera ke dalam kad tangkapan.

  1. Halakan kamera web atau kad tangkapan ke tempat anda mendedahkan kad.
  2. Jalankannya pada mesin di sebelah kamera itu.
$ cardstream-web --source 0

Ia tidak semestinya sudut pandangan pembeli anda. Rakaman dari atas yang rapat dan terang memberikan pengecaman yang lebih baik daripada suapan platform jualan yang dimampatkan.

D
Anda menggunakan pengekod, pensuis atau kamera IP

Apa sahaja yang mempunyai URL

rtsp://, rtmp:// dan srt:// ditarik secara terus, serta suapan JPEG melalui ws:// apabila set-up anda buatan sendiri. Sambungan semula menggunakan selang cubaan yang bertambah hingga had tertentu, jadi pautan studio yang terputus di tengah break akan kembali tanpa anda perlu menyentuhnya.

  1. Berikan URL yang sudah diterbitkan oleh pengekod anda.
  2. Halaman pelayar menjadi penonton pasif; analisis tetap berjalan walaupun tiada pelayar dibuka.
$ cardstream-web \
    --source rtsp://studio/stream1
Sebelum anda mula live

Tala ia untuk sesi live yang anda jalankan

Tetapan lalai memang boleh dipercayai, tetapi break bukan suapan kamera biasa: anda biasanya tahu apa yang akan dibuka sebelum anda membukanya.

04

Beritahu apa yang anda buka

Praisi permainan atau set menyempitkan carian: panggilan lebih pantas, padanan lebih baik. Satu peraturan: sentiasa berikan --alphabet apabila anda memberikan --game, kerana praisi permainan mematikan pengesanan abjad oleh endpoint itu sendiri, lalu ia menganggap latin, dan kad Jepun akan dipadankan dengan cetakan bahasa Inggerisnya.

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

Ubah fikiran di tengah strim

Apabila lot seterusnya ialah permainan lain, anda tidak perlu memulakan semula apa-apa: kategori, permainan, kod set, abjad serta ambang hasil dan ketajaman semuanya boleh disunting dalam dialog tetapan pelayar semasa strim berjalan. Selebihnya (pengesan, penapis, resolusi) dibaca sekali semasa permulaan, jadi pilihnya sekarang.

06

Simpan log, tutup port

--split-results memberikan setiap kemunculan barisnya sendiri dan bukannya menggabungkan ulangan: senarai berterusan tentang apa yang anda tunjukkan, mengikut susunan anda menunjukkannya, sedia untuk disemak dengan pesanan selepas itu. Biarkan --host pada lalainya, 127.0.0.1: proses itu menyimpan kunci anda dan UI setempat tidak memerlukan pengesahan, jadi ia tidak sepatutnya boleh dicapai dari LAN anda.

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

Simpan sesi live untuk keesokan paginya

Tambah --ximilar-stream NEW dan setiap baris sejarah itu (kad, harganya, berapa lama ia berada dalam strim dan keratan yang digunakan untuk mengecamnya) disimpan ke satu sesi dalam akaun Ximilar anda semasa anda strim. Selepas itu, bahagian Cards Cloud dalam aplikasi Ximilar menunjukkan keseluruhan sesi live (nilainya, kad paling bernilai dan setiap kad bersama gambarnya), dan di situlah anda menandakan yang terjual dan membetulkan padanan yang salah. Jika klien bermula semula di tengah sesi live, jalankannya semula dengan ID sesi yang dicetak menggantikan NEW dan sesi live yang sama diteruskan. Untuk menyimpan ke dalam ruang kerja pasukan, gunakan --ximilar-workspace.

$ cardstream-web --source 1 --price-stats --ximilar-stream NEW
# selepas mula semula:
$ cardstream-web --source 1 --price-stats --ximilar-stream <session-id>

Kemudian jalankan sesi live anda. Pengesanan, gerakan dan penapis identiti semuanya berjalan secara setempat pada mesin anda; panggilan pengecaman dibuat sekali bagi setiap kad yang anda letakkan di atas meja, iaitu kira-kira seratus dalam sejam, berbanding 54,000 bingkai dalam tempoh sejam itu. Kiraannya ada di sini.

Jika ada yang tidak kena

Enam perkara yang benar-benar boleh tersilap

Kamera maya tiada dalam senarai

Cuba --source 0, 1, 2 satu demi satu; indeksnya bergantung pada apa yang diberikan oleh sistem pengendalian. Pada macOS, berikan terminal anda akses kamera di bawah Seting Sistem → Privasi & Keselamatan. Jika OpenCV masih tidak dapat membukanya, tukar ke cara B.

“ffmpeg not found”

Hanya --listen dan --ffmpeg yang memanggil binari sistem. Pasangkannya (brew install ffmpeg) dan jalankan semula; cara kamera maya, kamera web dan tarikan biasa tidak memerlukan apa-apa tambahan.

OBS tidak membenarkan saya menambah strim kedua

Itu had OBS, bukan had cardstream: OBS hanya mempunyai satu output Strim. Pemalam obs-multi-rtmp menambah sasaran tambahan yang sebenar; cara rakaman Output Suai (FFmpeg) dalam cara B berfungsi dengan OBS biasa.

Kad dikesan tetapi tidak pernah dipadankan

Hampir selalu disebabkan resolusi atau gerakan. Nombor kad mesti boleh dibaca dalam bingkai yang anda hantar: kekalkan OBS pada 1080p, pegang kad tanpa bergerak seketika semasa mendedahkannya, dan barulah longgarkan --result-threshold (lalai 0.9; nilai lebih tinggi mengekalkan padanan yang lebih lemah, 1.0 mengekalkan semuanya).

Kad yang sama dicam dua kali

Penapis identiti memberi skor di bawah --similarity-threshold (lalai 0.85) kepada dua pandangan itu dan menganggapnya kad baharu. Turunkan sedikit. Jika anda meletakkan kad dan mengambilnya semula, naikkan --forget-after sebaliknya: selepas 2 saat tiada, kad sengaja dianggap baharu.

Tiada apa-apa yang dikesan sama sekali

Jalankan dengan --show-detection untuk melukis kotak sempadan: pengesanan sentiasa berjalan, cuma ia tidak dilukis secara lalai. Tiada kotak bermaksud kad terlalu kecil atau bergerak terlalu pantas dalam bingkai; kotak tanpa padanan membawa anda ke baris di atas.

Masih buntu? README mendokumenkan setiap bendera, dan hab dokumentasi mengumpulkannya mengikut apa yang anda cuba lakukan.

Sumber terbuka. Dihoskan sendiri. Strim anda, sistem anda.

Tiada platform di tengah, tiada lesen bagi setiap pengguna: sambungkan API Ximilar atau sistem pengecaman anda sendiri, dan cardstream memanggilnya sekali bagi setiap kad yang berbeza, bukan sekali bagi setiap bingkai. Sama ada anda buat break di Whatnot, menjalankan sesi live gaya Fanatics Live atau strim jualan live dengan sistem anda sendiri, jalankan cardstream malam ini pada perkakasan yang sudah anda miliki.