| Feature | Description | Configurable? | |---------|-------------|---------------| | Resolution | 3840 × 2160 (4K) up to 7680 × 4320 (8K). | Yes (per‑camera). | | Frame Rate | 30 fps – 120 fps (variable). | Yes. | | HDR | PQ & HLG support, 12‑bit per channel. | Yes. | | Audio | 24‑bit PCM, 48 kHz or 96 kHz. | Yes. | | Sync | PTP (IEEE‑1588) or NTP for multi‑camera alignment. | Yes. | | Input Protocols | SRT, RTMP, RTP, WebRTC, HDMI‑over‑IP. | Yes. | | Fail‑over | Dual‑stream redundancy; automatic switchover < 50 ms. | Yes. |
Split visually into parts:
These suggest: a base identifier (sone340rmjavhd), an English word "today", a time or numeric code (015909), and tags "min" and "full" that might indicate durations or versions. sone340rmjavhdtoday015909 min full
| Sub‑system | Function | Tech Stack | |------------|----------|------------| | Ingest Service | HTTP/2, gRPC, WebRTC, SRT endpoints; authentication via JWT/OAuth2. | Go + gRPC‑gateway, NGINX RTMP module | | Transcoder | Adaptive‑bitrate (ABR) ladder: 8K‑120 fps → 4K‑60 fps → 1080p‑30 fps. Uses “min‑full” mode: encode a lossless base layer + scalable enhancement layers. | FFmpeg‑NVENC/AMD VCE + SVT‑AV1, x265 with lossless‑core | | Clip Engine | Auto‑trim to 15.009 s (configurable). Handles overlapping events, multi‑camera stitching. | Rust + Tokio async; time‑code aware buffering | | AI Enrichment | Scene classification, OCR, face‑blur, automatic captions, key‑frame extraction. | TensorRT, OpenVINO, Whisper‑large | | Metadata Service | Generates JSON‑LD, MPEG‑DASH MPD, HLS playlist with full‑resolution track and min track. | Node.js + DynamoDB (or Cosmos) | | Archival Store | Immutable, encrypted, versioned. | AWS S3 Glacier Deep Archive / Azure Blob Immutable |
So the feature should parse, validate, and enrich this kind of metadata from filenames or search queries. | Feature | Description | Configurable
Example output:
"studio": "SONE",
"id": "340",
"full_id": "SONE-340",
"runtime_seconds": 7149,
"runtime_formatted": "01:59:09",
"source_site": "javhdtoday",
"tags": ["full"],
"original_filename": "sone340rmjavhdtoday015909 min full"
Goal: split into meaningful tokens and test likely formats. Example output:
Regular expressions to try
Example pseudocode (Python-style)
s = "sone340rmjavhdtoday015909 min full".replace(" ", "_")
parts = s.split("_")
# fallback: use regex to extract 'today' and 6-digit times