feat(video): add streamable video events & dashboard controls
Add end-to-end support for video events: server streaming, scheduler metadata, API fields, and dashboard UI. - Server: range-capable streaming endpoint with byte-range support. - Scheduler: emits `video` object; best-effort HEAD probe adds `mime_type`, `size`, `accept_ranges`; placeholders for richer metadata (duration/resolution/bitrate/qualities/thumbnails). - API/DB: accept and persist `event_media_id`, `autoplay`, `loop`, `volume` for video events. - Frontend: Event modal supports video selection + playback options; FileManager increased upload size and client-side duration check (max 10 minutes). - Docs/UX: bumped program-info, added UX-only changelog and updated Copilot instructions for contributors. - Notes: metadata extraction (ffprobe), checksum persistence, and HLS/DASH transcoding are recommended follow-ups (separate changes).
This commit is contained in:
@@ -122,7 +122,7 @@ Every event includes these common fields:
|
||||
|
||||
**Note**: WebUntis events use the same payload structure as website events. The URL is fetched from system settings (`webuntis_url`) rather than being specified per-event. Clients treat `webuntis` and `website` event types identically—both display a website.
|
||||
|
||||
#### Video Events (Future)
|
||||
#### Video Events
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -134,7 +134,7 @@ Every event includes these common fields:
|
||||
"group_id": 1,
|
||||
"video": {
|
||||
"type": "media",
|
||||
"url": "http://server:8000/api/files/videos/123/video.mp4",
|
||||
"url": "http://server:8000/api/eventmedia/stream/123/video.mp4",
|
||||
"autoplay": true,
|
||||
"loop": false,
|
||||
"volume": 0.8
|
||||
@@ -142,6 +142,13 @@ Every event includes these common fields:
|
||||
}
|
||||
```
|
||||
|
||||
**Fields**:
|
||||
- `type`: Always "media" for video playback
|
||||
- `url`: Video streaming URL with range request support
|
||||
- `autoplay`: Whether to start playing automatically (default: true)
|
||||
- `loop`: Whether to loop the video (default: false)
|
||||
- `volume`: Playback volume from 0.0 to 1.0 (default: 0.8)
|
||||
|
||||
#### Message Events (Future)
|
||||
|
||||
```json
|
||||
|
||||
Reference in New Issue
Block a user