Commit graph

40 commits

Author SHA1 Message Date
dependabot[bot]
f843df4ab8
build(deps): bump github.com/bluenviron/mediacommon/v2 (#5297)
Bumps [github.com/bluenviron/mediacommon/v2](https://github.com/bluenviron/mediacommon) from 2.5.3 to 2.6.0.
- [Commits](https://github.com/bluenviron/mediacommon/compare/v2.5.3...v2.6.0)

---
updated-dependencies:
- dependency-name: github.com/bluenviron/mediacommon/v2
  dependency-version: 2.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-28 15:44:36 +01:00
Alessandro Ros
fb9027a334
recorder: reset when absolute time drifts from stream time (#4778) (#5239)
the server now detects when system time changes too much and restarts
recordings when that happens.
2025-12-02 18:10:23 +01:00
boenshao
b4e4f54729
test: fix and assert that all tracks are recorded (#5166)
Some checks failed
code_lint / go (push) Has been cancelled
code_lint / go_mod (push) Has been cancelled
code_lint / docs (push) Has been cancelled
code_lint / api_docs (push) Has been cancelled
code_test / test_64 (push) Has been cancelled
code_test / test_32 (push) Has been cancelled
code_test / test_e2e (push) Has been cancelled
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2025-11-23 00:41:55 +01:00
Alessandro Ros
ff187b6d8a
update golangci-lint configuration (#5182) 2025-11-11 23:57:52 +01:00
Alessandro Ros
c42642ac3c
recorder: prevent FMP4 durations from overflowing (#4711) (#5126)
Some checks are pending
code_lint / go (push) Waiting to run
code_lint / go_mod (push) Waiting to run
code_lint / docs (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_e2e (push) Waiting to run
The timestamp difference between two samples was put inside an unsigned
integer, and, when negative, caused an overflow.
2025-10-26 15:52:13 +01:00
Alessandro Ros
02e2b9d640
recorder: write additional infos inside segments (#5083)
write stream ID, segment number, DTS, NTP in a dedicated box. This
allows to improve the merge algorithm in the playback server.
2025-10-13 12:34:44 +02:00
Alessandro Ros
75420552b9
recorder: reset fMP4 sequence number during segment switch (#5082)
Some checks are pending
code_lint / go (push) Waiting to run
code_lint / go_mod (push) Waiting to run
code_lint / docs (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_e2e (push) Waiting to run
It's useless to make sequence numbers unique across the entire stream.
2025-10-12 17:59:28 +02:00
Alessandro Ros
f5f03562d3
rewrite Unit definition (#5079)
Some checks are pending
code_lint / go (push) Waiting to run
code_lint / go_mod (push) Waiting to run
code_lint / docs (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_e2e (push) Waiting to run
Stream units now share the same struct, with a specialized payload.
2025-10-11 12:18:51 +02:00
Alessandro Ros
cd80814009
do not include recorder and HLS muxer in sent bytes (#4380) (#5039)
Some checks are pending
code_lint / go (push) Waiting to run
code_lint / go_mod (push) Waiting to run
code_lint / docs (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_e2e (push) Waiting to run
in API (/paths/list, /paths/get) and metrics (paths_bytes_sent), the
amount of sent bytes was increased even in case of writes to the
recorder and HLS muxer, which are not generating network traffic. This
fixes the issue.
2025-09-29 09:28:04 +02:00
Alessandro Ros
e3b8af8933
switch to gortsplib/v5 (#4978)
Some checks failed
code_lint / go (push) Has been cancelled
code_lint / go_mod (push) Has been cancelled
code_lint / docs (push) Has been cancelled
code_lint / api_docs (push) Has been cancelled
code_test / test_64 (push) Has been cancelled
code_test / test_32 (push) Has been cancelled
code_test / test_e2e (push) Has been cancelled
2025-09-16 13:10:34 +02:00
Alessandro Ros
57021467e9
rename formatprocessor into codecprocessor (#4962)
Some checks are pending
code_lint / go (push) Waiting to run
code_lint / go_mod (push) Waiting to run
code_lint / docs (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_e2e (push) Waiting to run
2025-09-12 10:24:11 +02:00
Alessandro Ros
9318107779
rtmp: support additional enhanced RTMP features (#4168) (#4321) (#4954)
Some checks are pending
code_lint / go (push) Waiting to run
code_lint / go_mod (push) Waiting to run
code_lint / docs (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_e2e (push) Waiting to run
* support reading AV1, VP9, H265, Opus, AC-3, G711, LPCM
* support reading multiple video or audio tracks at once
2025-09-11 23:18:46 +02:00
Alessandro Ros
d423a71aaa
update linter settings (#4790) 2025-07-26 16:44:32 +02:00
Alessandro Ros
cc27cf6563
mpegts, srt: support MPEG-4 Audio LATM tracks (#4403) (#4759) 2025-07-21 10:02:40 +02:00
dependabot[bot]
d0a97e47ff
build(deps): bump github.com/bluenviron/gohlslib/v2 from 2.2.1 to 2.2.2 (#4763)
Bumps [github.com/bluenviron/gohlslib/v2](https://github.com/bluenviron/gohlslib) from 2.2.1 to 2.2.2.
- [Commits](https://github.com/bluenviron/gohlslib/compare/v2.2.1...v2.2.2)

---
updated-dependencies:
- dependency-name: github.com/bluenviron/gohlslib/v2
  dependency-version: 2.2.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 09:55:10 +02:00
Alessandro Ros
9ddcbf5c97
recorder: limit maximum part size (#4674) (#4760)
this prevents RAM exhaustion.
2025-07-20 19:16:33 +02:00
Alessandro Ros
bc95f6240b
fix generating timestamp of non-RTSP MPEG-4 video streams (#4758)
Some checks are pending
code_lint / golangci_lint (push) Waiting to run
code_lint / mod_tidy (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_e2e (push) Waiting to run
2025-07-20 12:20:31 +02:00
Alessandro Ros
801edf782a
remove redundant log message (#4723)
Some checks failed
code_lint / golangci_lint (push) Has been cancelled
code_lint / mod_tidy (push) Has been cancelled
code_lint / api_docs (push) Has been cancelled
code_test / test_64 (push) Has been cancelled
code_test / test_32 (push) Has been cancelled
code_test / test_e2e (push) Has been cancelled
2025-07-13 16:42:35 +02:00
Yaroslav Molochko
0df5e2c81a
support routing KLV metadata (#2693) (#4670)
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2025-07-06 20:34:41 +02:00
Alessandro Ros
1083eea307
make RTP packet size compatible with RTSP/SRTP (#4692)
Some checks failed
code_lint / golangci_lint (push) Has been cancelled
code_lint / mod_tidy (push) Has been cancelled
code_lint / api_docs (push) Has been cancelled
code_test / test_64 (push) Has been cancelled
code_test / test_32 (push) Has been cancelled
code_test / test_e2e (push) Has been cancelled
when RTSP encryption is enabled, maximum RTP packet size is slightly
decreased to make room for SRTP.
2025-07-05 15:42:58 +02:00
Alessandro Ros
402b8ff9c9
recorder, playback: support changing codec parameters without switching segment (#4262) (#4582) 2025-05-29 20:37:12 +02:00
Alessandro Ros
99f4c73e07
recorder: improve fMP4 splitting algorithm (#4566)
consider all tracks when deciding the splitting point.
2025-05-27 19:19:55 +02:00
Alessandro Ros
e799286f1c
recorder: fix segment duration when audio is in advance (#4563) 2025-05-27 15:28:30 +02:00
Alessandro Ros
7b977861ff
recorder: fix duration of first part of a segment (#4562)
when the first sample of the first part had a DTS different than the
start DTS of the segment, the starting DTS of the part was wrong, since
it was set to the segment start DTS.
2025-05-27 15:24:24 +02:00
Alessandro Ros
fff3b9b315
record: fix loss of audio samples during segment switch (#4556) 2025-05-25 21:29:33 +02:00
Alessandro Ros
e707a9237d
improve tests, documentation (#4549) 2025-05-23 13:25:17 +02:00
Alessandro Ros
986e270862
count and log all discarded frames, decode errors, lost packets (#4363)
Some checks are pending
code_lint / golangci_lint (push) Waiting to run
code_lint / mod_tidy (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_highlevel (push) Waiting to run
Discarded frames, decode errors and lost packets were logged
individually, then there was a mechanism that prevented more than 1 log
entry per second from being printed, resulting in inaccurate reports.

Now discarded frames, decode errors and lost packets are accurately
counted, and their count is printed once every second.
2025-03-25 21:59:58 +01:00
Alessandro Ros
416ac1357e
bump mediacommon and gortsplib (#4364)
Some checks are pending
code_lint / golangci_lint (push) Waiting to run
code_lint / mod_tidy (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_highlevel (push) Waiting to run
2025-03-24 17:25:18 +01:00
Alessandro Ros
b329c4bbe8
replace New* with Initialize() (#4345) 2025-03-16 15:34:53 +01:00
Alessandro Ros
244da930a1
switch to mediacommon/v2 (#4259)
Some checks are pending
code_lint / golangci_lint (push) Waiting to run
code_lint / mod_tidy (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_highlevel (push) Waiting to run
2025-02-17 14:54:58 +01:00
dependabot[bot]
b66efd66da
build(deps): bump github.com/bluenviron/gortsplib/v4 (#4236)
Some checks failed
code_lint / golangci_lint (push) Has been cancelled
code_lint / mod_tidy (push) Has been cancelled
code_lint / api_docs (push) Has been cancelled
code_test / test_64 (push) Has been cancelled
code_test / test_32 (push) Has been cancelled
code_test / test_highlevel (push) Has been cancelled
Bumps [github.com/bluenviron/gortsplib/v4](https://github.com/bluenviron/gortsplib) from 4.12.2 to 4.12.3.
- [Commits](https://github.com/bluenviron/gortsplib/compare/v4.12.2...v4.12.3)

---
updated-dependencies:
- dependency-name: github.com/bluenviron/gortsplib/v4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-07 20:19:14 +01:00
dependabot[bot]
c6a9d81d4c
build(deps): bump github.com/bluenviron/mediacommon (#4193)
Some checks are pending
code_lint / golangci_lint (push) Waiting to run
code_lint / mod_tidy (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_highlevel (push) Waiting to run
Bumps [github.com/bluenviron/mediacommon](https://github.com/bluenviron/mediacommon) from 1.13.4-0.20250119173005-20b296ab1174 to 1.13.4.
- [Commits](https://github.com/bluenviron/mediacommon/commits/v1.13.4)

---
updated-dependencies:
- dependency-name: github.com/bluenviron/mediacommon
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-24 11:04:08 +01:00
Alessandro Ros
ac0ddc9e8a
playback: improve /list response time (#3637) (#4096)
Response times of the /list endpoint were slow because the duration of
each segment was computed from scratch by summing the duration of each
of its parts.

This is improved by storing the duration of the overall segment in the
header and using that, if available.
2025-01-03 13:08:46 +01:00
Alessandro Ros
f1e031c5c8
fix recording timestamp with some audio codecs (#3969) (#4041) (#4062)
Some checks failed
code_lint / golangci_lint (push) Has been cancelled
code_lint / mod_tidy (push) Has been cancelled
code_lint / api_docs (push) Has been cancelled
code_test / test_64 (push) Has been cancelled
code_test / test_32 (push) Has been cancelled
code_test / test_highlevel (push) Has been cancelled
When a stream contained an Opus, MPEG-4 audio or AC3 track, timestamp in
the segment file name was increasing at twice the speed.
2024-12-21 11:18:23 +01:00
Alessandro Ros
b77df43536
fix crash when recording a stream with unsupported tracks (#3978) (#3996)
* normalize variable names

* fix file name

* fix crash when recording a stream with unsupported tracks (#3978)
2024-11-30 11:23:41 +01:00
Alessandro Ros
23002d9f5f
route original timestamps without converting to durations (#3839)
This improves timestamp precision.
2024-10-07 17:59:32 +02:00
Alessandro Ros
4c3ac34425
fix memory leak in case of errors during initialization of a reader (#3831)
Some checks are pending
code_lint / golangci_lint (push) Waiting to run
code_lint / mod_tidy (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_highlevel (push) Waiting to run
2024-10-05 00:49:44 +02:00
Alessandro Ros
658848f8c8
log track ID when skipping tracks (#3798)
Some checks failed
code_lint / golangci_lint (push) Has been cancelled
code_lint / mod_tidy (push) Has been cancelled
code_lint / api_docs (push) Has been cancelled
code_test / test_64 (push) Has been cancelled
code_test / test_32 (push) Has been cancelled
code_test / test_highlevel (push) Has been cancelled
2024-09-26 14:42:48 +02:00
Alessandro Ros
471019f606
warn users about skipped tracks when reading or publishing (#3753)
Some checks are pending
code_lint / golangci_lint (push) Waiting to run
code_lint / mod_tidy (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_highlevel (push) Waiting to run
2024-09-15 19:28:05 +02:00
Alessandro Ros
73a300afd0
fix cleaning of recordings in case of multiple recordDeleteAfter values (#3557) (#3741) 2024-09-08 20:33:18 +02:00