Commit Graph
1561 Commits
Author SHA1 Message Date
Cédric Verstraeten bfa3c3f995 Merge pull request #323 from kerberos-io/fix/build-error-yarn
fix/build-error-yarn
v3.11.3
2026-09-01 15:52:23 +02:00
Cédric Verstraeten 03c1458fd8 Use frozen lockfile for UI yarn install
Stop deleting yarn.lock before install and instead run yarn with --frozen-lockfile to ensure reproducible UI builds in Docker.
2026-09-01 15:45:47 +02:00
Cédric Verstraeten 4e8fd673a8 Merge pull request #322 from kerberos-io/log/report-codec-fps
log/report-codec-fps
2026-09-01 15:35:19 +02:00
Cédric Verstraeten 2a3f4baa8c Log detected main and sub stream properties
Adds informational logging for the detected main and sub video streams, including codec, resolution, and FPS, to aid debugging and diagnostics.
2026-09-01 15:34:27 +02:00
Cédric Verstraeten 203d7b5518 Merge pull request #321 from kerberos-io/fix/discard-failed-recordings
fix/discard-failed-recordings
v3.11.2
2026-08-22 22:27:34 +02:00
Cédric Verstraeten d0a7efff85 Skip upload of empty recording files
UploadKerberosVault now checks the file size returned by os.Stat and skips uploading (without retrying) when the recording file is empty, avoiding unnecessary requests to the vault. Adds a test covering this behavior.
2026-08-22 22:20:45 +02:00
Cédric Verstraeten 95ea92b9ce Merge pull request #320 from kerberos-io/feature/update-docs
feature/update-docs
2026-08-18 11:04:30 +02:00
Cédric Verstraeten 6890d1889c Document AGENT_CAPTURE_IPCAMERA_RTSPS_CA_FILE
Update the README and RTSPS/TLS guide to describe the dedicated RTSPS CA bundle variable instead of relying on SSL_CERT_FILE. The bundle is appended to the system roots for camera RTSPS connections only, and the validation examples and env-var table are updated accordingly.
2026-08-18 11:03:15 +02:00
Cédric Verstraeten 6c71ff5039 Merge pull request #317 from kerberos-io/feature/backoff-moq-relay-session
feature/backoff-moq-relay-session
2026-08-17 12:40:49 +02:00
Cédric Verstraeten efc90c76c9 Merge pull request #319 from kerberos-io/fix/apply-permissions-home-dir
fix/apply-permissions-home-dir
v3.11.1
2026-08-17 11:56:01 +02:00
Cédric Verstraeten 7459eb02ee Ensure agent home is world-readable
Set `/home/agent` permissions to 0755 during image setup so its contents remain accessible as required.
2026-08-17 11:49:22 +02:00
Cédric Verstraeten fc46da1398 Update buildFlags in launch.json to include 'moq' tag 2026-08-14 13:58:58 +00:00
Cédric Verstraeten 51a11edb71 update to AGENT_CAPTURE_IPCAMERA_RTSPS_CA_FILE 2026-08-14 15:38:34 +02:00
Cédric Verstraeten 29e7f26c0e Implement heartbeat response logging and add tests for response handling 2026-08-14 13:16:03 +00:00
Cédric Verstraeten 01d270fcfa Update livemoq_enabled.go 2026-08-14 14:52:23 +02:00
Cédric Verstraeten 92d3311192 Merge pull request #316 from kerberos-io/feature/srtsp-support
feature/srtsp-support
v3.11.0
2026-08-13 10:00:47 +02:00
Cédric Verstraeten 97a8c1fcaf Update README-RTSPS-TLS.md 2026-08-13 09:49:45 +02:00
Cédric Verstraeten de5b0666bd Clarify SSL_CERT_DIR usage and provide examples for empty trust sources in README-RTSPS-TLS.md 2026-08-12 15:13:54 +00:00
Cédric Verstraeten ffdb8b6f22 Update README-RTSPS-TLS.md with configuration details and validation steps for RTSPS 2026-08-12 15:11:13 +00:00
Cédric Verstraeten 250e3b0b20 Add detailed guide for RTSPS and TLS certificate configuration 2026-08-12 15:09:32 +00:00
Cédric Verstraeten 2bb8144e79 Update RTSPS certificate verification instructions in README 2026-08-12 14:47:24 +00:00
Cédric Verstraeten 72d4fca63c Add RTSPS support and configuration options for secure camera streams
- Updated README.md to include instructions for using RTSPS camera URLs.
- Enhanced gortsplib.go to support insecure TLS configuration for self-signed certificates.
- Added unit tests for RTSPS TLS configuration in gortsplib_test.go.
2026-08-12 14:28:01 +00:00
Cédric Verstraeten 81cd95379b Merge pull request #315 from kerberos-io/fix/backchannel-reconnect
fix/backchannel-reconnect
v3.10.0
2026-08-10 17:49:16 +02:00
Cédric Verstraeten cd50f58138 Upgrade Go and RTSP dependencies
Upgrade to Go 1.25, gortsplib v5, and refreshed Pion dependencies. Adapt RTSP client APIs and normalize RTP timestamps for FPS tracking, with coverage for PTS conversion.
2026-08-10 15:46:02 +02:00
Cédric Verstraeten b2f029117e Fix test cases by adding missing newlines and improving timeout handling 2026-08-10 12:52:37 +00:00
Cédric Verstraeten db135acea9 Implement backchannel reconnection logic and enhance test coverage for write failures 2026-08-10 12:47:10 +00:00
Cédric Verstraeten 7b589b53f9 Harden RTSP backchannel streaming
Add paced, randomized RTP packetization with talkspurt markers and rollover-safe timestamps. Reconnect failed backchannel sessions with cancellable exponential backoff, initialize audio channels during bootstrap, and cover packetizer behavior with tests.
2026-08-10 14:45:18 +02:00
Cédric Verstraeten c1740c752e Merge pull request #313 from kerberos-io/fix/moq-recovery-strategy
fix/moq-recovery-strategy
v3.9.2
2026-08-07 16:28:27 +02:00
Cédric Verstraeten 5862786381 Deduplicate repeated H.264 keyframes
Remove exact duplicate IDR NALUs during normalization and drop repeated keyframes within a short timestamp window. Add normalization statistics, logging, reset handling, and coverage for deduplication behavior.
2026-08-07 15:46:50 +02:00
Cédric Verstraeten e8dd64f54b Enhance MoQ streaming: implement quality tier broadcasting and subscriber management 2026-08-07 13:32:20 +00:00
Cédric VerstraetenandCopilot Autofix powered by AI ba96b63002 Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-08-07 13:28:38 +02:00
Cédric Verstraeten c7c6bcbdf2 Add live stream recovery gating
Drop stale H.264 packets until a recent keyframe arrives, with lifecycle logging and slow MoQ write diagnostics. Add focused FrameGate tests and configure the UI package registry.
2026-08-07 13:23:44 +02:00
Cédric Verstraeten faa3b4eabb Merge pull request #312 from kerberos-io/fix/moq-double-pts-insertion
fix/moq-double-pts-insertion
v3.9.1
2026-08-06 22:46:30 +02:00
Cédric Verstraeten f0a6eb7d98 Merge pull request #311 from kerberos-io/fix/preserve-recording-fps-precision
preserve-recording-fps-precision
2026-08-06 21:19:18 +02:00
Cédric Verstraeten 33a58cddf7 Fix live stream presentation timestamps
Use capture presentation time directly for MoQ timestamps instead of adding composition time, which is already reflected in PTS.
2026-08-06 21:05:13 +02:00
Kilian Boute fea6d81246 prevent fps rounding 2026-08-06 17:46:38 +02:00
Cédric Verstraeten dbff9fbc8e Merge pull request #310 from kerberos-io/feature/integrate-moq-streaming-protocol
feature/integrate-moq-streaming-protocol
v3.9.0
2026-08-05 22:40:46 +02:00
Cédric Verstraeten 63b352b5e2 Remove obsolete MoQ Dockerfile and update build workflows to streamline image creation 2026-08-05 20:36:26 +00:00
Cédric Verstraeten 2ffb210ccb Implement NormalizeH264AccessUnit for H.264 payload normalization and update live stream publishing to use the new function 2026-08-05 20:25:05 +00:00
Cédric Verstraeten ff643d21ef Add MoQ devcontainer verification
Switch devcontainers to Debian Trixie for the required glibc version and add automated MoQ package tests, Agent linking, and version checks through a script and VS Code task.
2026-08-05 21:07:32 +02:00
Cédric Verstraeten 8f04a6d42f Add MoQ image build workflow
Build and verify MoQ images on amd64 and arm64 pull requests, and document MoQ Docker build and runtime configuration.
2026-08-05 20:54:06 +02:00
Cédric Verstraeten 4395fe2417 Add optional MoQ live-stream publisher
Adds a dedicated MoQ build path that publishes H.264 live streams to a configurable relay, with retry handling, stream selection, Annex B framing, and Docker packaging. Standard builds retain a no-op implementation.
2026-08-05 20:53:37 +02:00
Cédric Verstraeten 18392e136e Merge pull request #308 from kerberos-io/feat/recording-fps-metadata
feat: propagate recording FPS with uploads
v3.8.2
2026-08-05 15:16:25 +02:00
Cédric Verstraeten ed916eb042 Extend recording upload metadata with duration and timestamp
The upload marker now carries filename, device key, timestamp and duration alongside FPS, populated from the finalized MP4 at recording time.

Uploads propagate the new fields: legacy uploads add X-Kerberos-Storage-Duration and X-Kerberos-Storage-Timestamp headers, and resumable (tus) uploads include duration and timestamp in Upload-Metadata. setQueuedRecordingFPSHeader is renamed to setQueuedRecordingMetadataHeaders, and decoding of historical markers remains backwards compatible.
2026-08-05 15:12:51 +02:00
Cédric Verstraeten 72b8160dc4 Use JSON .metadata markers for upload queue
Replace plain-text FPS upload markers (named after the recording file) with JSON-encoded .metadata files via a new models.RecordingUploadMetadata type. This makes the marker format extensible for future fields beyond FPS.

Backward compatibility is preserved: cleanup, upload, and FPS-lookup code now check both the new .metadata marker and the legacy same-named marker, so recordings queued by older agents are still recognized as pending and their FPS still honored.
2026-08-05 14:58:14 +02:00
Cédric Verstraeten 4f41786038 Store measured FPS in upload marker
Instead of snapshotting the configured IP camera FPS, derive the average frame rate from the samples actually committed to the finalized MP4.

Adds MP4.AverageFPS(), backed by a SampleCount that is now incremented when a video sample is successfully written, and passes that value to queueRecordingForUpload. Validation (0 < fps <= 240, finite) moves to the numeric value, and unknown FPS still produces an empty, backwards-compatible marker.
2026-08-05 14:36:40 +02:00
Cédric Verstraeten 8fb186fd6d Merge branch 'master' into feat/recording-fps-metadata 2026-08-05 14:19:53 +02:00
Cédric Verstraeten 420b8b8a01 Merge pull request #309 from kerberos-io/fix/pixel-threshold-default
fix/pixel-threshold-default
v3.8.1
2026-08-05 14:12:09 +02:00
Cédric Verstraeten 5a13416bed Upgrade ONVIF dependency to v1.2.2
Update the Kerberos ONVIF module dependency and its recorded checksums.
2026-08-05 14:09:14 +02:00
Cédric Verstraeten 704011c20b Restore motion threshold defaults
Treat nil, zero, and negative pixel-change thresholds as the historical default of 150, removing the disabled-motion behavior and adding configuration tests.
2026-08-05 14:04:46 +02:00