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.
Jalankan ia secara bersendirian dahulu
Sebelum semua ini menyentuh sesi live anda, buktikan bahawa ia berfungsi dengan kamera web komputer riba anda. Tiga arahan.
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 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
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
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.
Kamera maya OBS
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.
- Dalam OBS, klik Mula Kamera Maya dalam dok Kawalan.
- 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.
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.
- Mulakan pendengar dahulu; ia menunggu tolakan dan menyambung semula dengan sendirinya.
- 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, URLrtmp://127.0.0.1:1935/live, format bekasflv, kemudian tekan Mula Rakaman. - Cara ini memanggil binari ffmpeg sistem: jalankan
brew install ffmpegdahulu.
$ cardstream-web --listen \ --source rtmp://0.0.0.0:1935/live
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.
- Halakan kamera web atau kad tangkapan ke tempat anda mendedahkan kad.
- 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.
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.
- Berikan URL yang sudah diterbitkan oleh pengekod anda.
- Halaman pelayar menjadi penonton pasif; analisis tetap berjalan walaupun tiada pelayar dibuka.
$ cardstream-web \ --source rtsp://studio/stream1
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.
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
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.
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 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.
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.