Skip to content

Video Recording & Streaming

Navigate to Videofelvételek via /Club/VideoRecording.

Overview

HellaBooking integrates with SVM (Sport Video Manager) and Cloudflare Stream to offer local recording, cloud recording, and live streaming of matches on sports fields.

Recording Types

ID Type Description
1 Local Recording Stored on local infrastructure
2 Cloud Recording Uploaded to Cloudflare Stream
3 Live Streaming Real-time stream via Cloudflare

Recording Lifecycle

Each recording moves through an 8-step status lifecycle:

stateDiagram-v2
    [*] --> Scheduled: 1
    Scheduled --> Pending: 2
    Pending --> Starting: 3
    Starting --> Started: 4
    Started --> Stopping: 5
    Stopping --> Finished: 6
    Finished --> Ready: 7
    Scheduled --> Failed: 8
    Pending --> Failed: 8
    Starting --> Failed: 8
    Started --> Failed: 8
    Stopping --> Failed: 8
    Finished --> Failed: 8

Failed state

A recording can transition to Failed (8) from any active step. Check the SVM logs if recordings are stuck in a non-Ready state.

Data Model

Maps cameras to sports fields, defining which camera records which court.

VideoRecording Table

Stores each recording session, linking to:

  • Reservation_ID — the booking that triggered the recording
  • User_ID — the customer who owns the recording
  • Status — current lifecycle step (1–8)

System Parameters

Parameter Description
SVMApiBaseUrl SVM API endpoint (default: http://89.223.184.249/api/camera/)
CloudflareBaseUrl Cloudflare Stream player URL
CloudflareAccountId Cloudflare account identifier
CloudflareApiUrl Cloudflare API endpoint
CloudflareApiKey API authentication key
CloudflareSigningKeyId Signed URL key ID
CloudflarePEM PEM certificate for signed URLs
CloudflareWebhookSecret Webhook signature verification secret
SCMSVMWebhookApiKey API key for SVM-to-SCM webhook calls

Integration Architecture

The SVMIntegration/ project handles all API communication with the SVM service.

Two webhook controllers receive callbacks:

  • SVMApiWebhookController — receives status updates from SVM cameras.
  • SVMCloudflareWebhookController — receives encoding/streaming events from Cloudflare.

Customer Side

Customers access their recordings at /Customer/VideoRecording.

Playback availability

Play and download buttons are only enabled when the recording status is Ready (7). Recordings in any other state show their current status instead.

Access Control

Available to Casual visitor (Alkalmi látogató), Club member (Klubtag), and Club manager (Klubvezető) user types.