Match Recording & Live Production Studio [NEW] — **REBUILD: delvis levererad (D-STUDIO `0ec13810.m-1`)**
At a glance
The Match Recording & Live Production Studio turns any phone or tablet into a broadcast camera, then orchestrates 2 to 4 of them into a live-cut multi-camera production with score overlays, replays, and simultaneous streaming to YouTube, Twitch, Facebook, and Petanque Life. From a club final to a national championship, you get a TV-grade broadcast with no truck and no crew.
How it works
Open the Petanque Life app on one device and tap Record a match — that is a one-camera setup capturing the court with timecode, audio, and a synced match record. To produce a real broadcast, pair 2 to 4 phones or tablets with multi-device camera setup; each device gets a camera role (wide court view, close-up, cochonnet cam, player cam) and is locked to a shared timeline through Camera sync. Audio comes from any camera device or a separate microphone device for cleaner commentary.
A director uses Director mode on a separate iPad to choose the live feed: tap a thumbnail for manual camera switching, or let automatic camera switching follow the active end of the court via AI heuristics on score events. Picture-in-picture mode keeps a secondary angle on screen during big shots. A commentator on yet another device runs Commentator mode, with their voice mixed into the program feed.
Live overlays are auto-driven by the match scoring data already flowing through the app: live score overlay, mène counter and match progress bar, boule count indicator, tournament bracket/standings overlay, and player name/photo overlays when the camera focuses on a player. Sponsor logo overlay, lower thirds with ELO and recent form, custom text overlay, drawing tools on screen, and full telestrator (draw on paused/live video like sports TV) round out the graphics package. Pre-match player cards play as openers, post-mène summary graphics auto-generate after every end, and instant replay plus slow-motion replay or split-screen comparison let directors revisit critical boules.
Distribution is multi-platform. Direct stream to YouTube Live, Twitch, and Facebook Live runs over RTMP, optionally simultaneously, and an in-app live viewing player is always available to followers. An embeddable live player drops the same stream into federation and club websites, complete with live viewer count and chat integration, and stream schedule and notification alerts followers when the show goes live. Adaptive bitrate streaming and stream quality settings keep the picture watchable on rural 4G; for absolute worst-case, audio-only mode and score-only live feed step down gracefully.
Everything is recorded — local recording on each device plus cloud recording of every angle — so after the match you can re-cut with different camera angles, generate automatic highlight clips from score-change moments, manually clip with start/end markers, and produce an automatic match summary video. All assets land in the VOD archive, searchable by competition, player, and date, linked to the match record so the video plays from the match detail page. Offline recording with later upload guarantees nothing is lost when the venue WiFi drops.
Key capabilities
- Single-phone recording up to 4-device live multi-camera production with synced timelines
- Director mode with manual or AI-driven automatic camera switching plus picture-in-picture
- Score, bracket, sponsor, lower-third, and custom-text overlays auto-driven by app match data
- Telestrator, instant and slow-motion replay, split-screen, pre-match player cards, post-mène summaries
- Simultaneous RTMP streaming to YouTube, Twitch, Facebook plus in-app and embeddable players
- Cloud and local recording with auto-highlight, manual clipping, re-cut, and summary video
- Adaptive bitrate, audio-only and score-only fallbacks, offline-record-and-upload for low-bandwidth venues
In practice
A regional federation hosts a Sunday final at a small club. The organising secretary brings four iPhones on tripods plus a borrowed iPad. She assigns one phone as wide court, one as cochonnet cam, two as player cams, and uses the iPad as Director.
A volunteer puts on a headset and takes the Commentator role from the bar. With one tap she goes live to YouTube and Facebook simultaneously; the live score overlay updates automatically every time the table-side scorer taps the score. She switches angles on big throws, drops a sponsor logo for the local hardware store between mènes, replays a winning carreau in slow motion, and at full time hits Generate summary — a two-minute highlight reel posts itself to the federation's news feed before the trophies are even handed out, and the full broadcast lives in the VOD archive linked to the match.
Features in this subsystem
47| ID | Status | Features |
|---|---|---|
| F09.04.01 | In progress | Record a match directly from the app (one phone = one camera) Delvis (m-1): enheten ansluter anonymt med engångskod/QR, får sitt eget device_token och en roll — men spelar inte in. Inspelningen: ⊘ — ägare m-3 |
| F09.04.02 | Shipped | Multi-device camera setup (2-4 phones/tablets as camera sources for same match) m-1: 1—4 KAMERAenheter per produktion (studio.DeviceLimit, kod-deklarerat tak; commentator/director räknas inte), femte kameran ⇒ 409 studio_device_limit |
| F09.04.03 | Shipped | Camera role assignment (wide court view, close-up, cochonnet cam, player cam) m-1: wide|closeup|player|crowd + commentator|director ur studio.Roles(), serverade av GET /v1/studio/catalog |
| F09.04.04 | In progress | Automatic camera switching (AI-based or rule-based: switch to active end of court) Delvis (m-1) — REGELBASERAD, aldrig AI: score_to_closeup, score_to_wide, break_to_wide ur D-COMP:s live-händelser, med regelns NAMN bokfört på varje beslut. *»Active end«* ⇒ ⊘ — icke-mål: positionsdata om vilken ände som spelas finns inte i huset |
| F09.04.05 | Shipped | Manual camera switching (director/commentator selects which camera is live) m-1: PATCH …/program (If-Match), studio:direct eller en director-enhets eget token; switching_mode='manual' stänger auto-regeln |
| F09.04.06 | In progress | Picture-in-picture mode (main feed + small secondary camera) Delvis (m-1): PiP-tillståndet (av/på, enhet, hörn) är serverns och sänds till varje enhet. Bild-i-bild-kompositionen är video: ⊘ — ägare m-2 |
| F09.04.07 | Shipped | Camera sync (all devices synchronized to same timeline) m-1: handskakning …:sync ⇒ MÄTT offset_ms, härlett sync_state ∈ {in_sync, drift, unknown} mot studio.SyncToleranceMs; produktionens started_clock_at är tidslinjens noll |
| F09.04.08 | In progress | Audio from any camera device (or separate microphone device) Delvis (m-1): ljudkällans VAL (none|this_device|commentator|device:<id>) är regi-tillstånd och validerat mot produktionens egna enheter. Ljud-mixen: ⊘ — ägare m-2 |
| F09.04.09 | Shipped | Live score overlay (auto-synced from match scoring in app) m-1: valet i program_state.overlays, underlaget i overlay_data-ramen projicerat ur D-COMP vid läsning — ingen studio_*-tabell bär någonsin ett poäng |
| F09.04.10 | In progress | Player name/photo overlays when camera focuses on them Delvis (m-1): spelaretiketterna kommer ur D-COMP:s publika registreringar. Foto: ⊘ — ägare m-2 (en samtyckesgrindad bild i en sändning är ett eget beslut) |
| F09.04.11 | In progress | Mène counter and match progress bar Delvis (m-1): end_counter projiceras när D-COMP:s snapshot bär det, annars null + reason: end_counter_unavailable — aldrig ett påhittat »1«. Förloppsindikatorn är rendering: ⊘ — ägare m-2 |
| F09.04.12 | Planned | Boule count indicator (how many boules each team has left) ⊘ — icke-mål i m-1: fältet finns och svarar ärligt {"state":"not_measured"}. Ingen producent av mätdata finns i huset, och ett »2–1« i en sändningsgrafik som ingen mätt är fabricerad data som tittarna ser |
| F09.04.13 | In progress | Tournament bracket/standings overlay Delvis (m-1): bracket är ett giltigt overlay-VAL. Renderingen: ⊘ — ägare m-2 |
| F09.04.14 | In progress | Sponsor logo overlay (configurable per competition) Delvis (m-1): en REFERENS till D-COMM:s grafikpaket (embed_path ur förbundets default), eller null + reason: no_default_graphics. D-STUDIO bygger ingen egen grafikmotor |
| F09.04.15 | In progress | "Lower third" graphics (player stats, ELO, ranking) Delvis (m-1): samma referensmodell som ovan. ELO-/rankinginnehållet i paketet ägs av D-COMM/D-RANK |
| F09.04.16 | Shipped | Custom text overlay (commentator can add text messages) m-1: free_text i regi-tillståndet, max 140 tecken (studio.FreeTextMax), 422 too_long över taket |
| F09.04.17 | In progress | Commentator mode (separate device for commentary audio) Delvis (m-1): rollen commentator, läget mode='commentator' och ljudkällan finns som tillstånd. Ljudkanalen: ⊘ — ägare m-2 |
| F09.04.18 | Shipped | Director mode (separate device to switch cameras and control overlays) m-1: mode='director'; en director-enhets token regisserar utan ett användarkonto (D-6) |
| F09.04.19 | Planned | Drawing tools on screen (draw arrows, circles to demonstrate tactics) ⊘ — ägare m-4 |
| F09.04.20 | Planned | Telestrator (draw on paused/live video like sports TV) ⊘ — ägare m-4 |
| F09.04.21 | In progress | Instant replay (mark moments, replay from any camera angle) Substratet i m-1: regi-tidslinjen (studio_program_event) ÄR replay-markörerna — vilken bild som var i program vid vilken tidpunkt. Video-replayen: ⊘ — ägare m-4 |
| F09.04.22 | Planned | Slow-motion replay ⊘ — ägare m-4 |
| F09.04.23 | Planned | Split-screen comparison (show two angles simultaneously) ⊘ — ägare m-4 |
| F09.04.24 | Planned | Pre-match player cards (show stats, ELO, recent form before match) ⊘ — ägare m-2 (grafikpaketets innehåll ägs av D-COMM) |
| F09.04.25 | Planned | Post-mène summary graphic (auto-generated after each end) ⊘ — ägare m-2 |
| F09.04.26 | Planned | Direct stream to YouTube Live (RTMP integration) ⊘ — ägare m-2/m-3 (visionens §Scope 3; transcoding-sidecar) |
| F09.04.27 | Planned | Direct stream to Twitch ⊘ — ägare m-2/m-3 |
| F09.04.28 | Planned | Direct stream to Facebook Live ⊘ — ägare m-2/m-3 |
| F09.04.29 | Planned | Multi-platform simultaneous streaming ⊘ — ägare m-2/m-3 |
| F09.04.30 | In progress | In-app live viewing (watch directly in Petanque Life) Delvis (m-1): score-only — den publika läsningen ger sändningens tillstånd och D-COMP:s live-id, och appen/webben följer ställningen. Video i appen: ⊘ — ägare m-2 |
| F09.04.31 | Planned | Stream quality settings (adapt to available bandwidth) ⊘ — ägare m-2/m-3 |
| F09.04.32 | Shipped | Stream schedule and notification (followers get alerted) m-1: GET /v1/public/live/schedule?tenant= + följning genom viewer_follow (follow_type='broadcast') + notistypen broadcast_started, single-fire som DB-invariant med MÄTT utfall |
| F09.04.33 | Planned | Embeddable live player for federation/club websites ⊘ — ägare m-6 (en spelare utan video är en tom ruta) |
| F09.04.34 | Planned | Live viewer count and chat integration ⊘ — ägare m-6. m-1 publicerar follow_count — FÖLJARE, mätt ur viewer_follow — och kallar det aldrig ett tittarantal |
| F09.04.35 | Planned | Local recording (save to device even without streaming) ⊘ — ägare m-3 |
| F09.04.36 | Planned | Cloud recording (save all camera feeds to cloud storage) ⊘ — ägare m-3 |
| F09.04.37 | In progress | Automatic highlight generation (key moments based on score changes) Substratet i m-1: tidslinjens auto_switch-rader bär poänghändelsen med sin regel och sin tidpunkt — det är precis nyckelmomenten. Klippgenereringen: ⊘ — ägare m-5 |
| F09.04.38 | Planned | Manual highlight clipping (mark start/end of interesting moments) ⊘ — ägare m-5 |
| F09.04.39 | Planned | Post-match edit: re-cut with different camera angles ⊘ — ägare m-5 |
| F09.04.40 | Planned | Automatic match summary video (condensed highlights + score) ⊘ — ägare m-5. Den AI-genererade TEXT-sammanfattningen är ett icke-mål: ingen producent finns, och en genererad text som påstår sig beskriva en match är fabricerad data |
| F09.04.41 | Planned | VOD archive (all recorded matches searchable by competition, player, date) ⊘ — ägare m-5/m-6 |
| F09.04.42 | Planned | Share match recording (link to specific match video) ⊘ — ägare m-5. m-1 ger en delbar sändningsadress (/live/{slug}), inte en videolänk |
| F09.04.43 | In progress | Video linked to match record (watch the video from the match detail page) Delvis (m-1): produktionen är bunden till matchen (match_ref) och den publika posten bär den. Videon i andra änden: ⊘ — ägare m-2/m-5 |
| F09.04.44 | Planned | Audio-only mode (commentary without video for low bandwidth) ⊘ — ägare m-2 (kräver en ljudkanal) |
| F09.04.45 | Shipped | Score-only live feed (text updates when video isn't possible) m-1: visionens §Scope 6 *score only* — den publika läsningen bär competition_ref (D-COMP:s live-id), och panelen återanvänder D-COMP:s egen live-vy. Ingen andra kanalklient |
| F09.04.46 | Planned | Offline recording with later upload (record locally, upload when connected) ⊘ — ägare m-3 |
| F09.04.47 | Planned | Adaptive bitrate streaming (auto-adjust quality) ⊘ — ägare m-2/m-3 |
Related subsystems
Stakeholders who need this subsystem
Surfaces in 5 stakeholder analyses