Alessandro Ros
0cdae40fe3
estimate absolute timestamp more precisely ( #5078 )
...
When the absolute timestamp of incoming frames was not available, it
was filled with the current timestamp, which is influenced by latency
over time.
This mechanism is replaced by an algorithm that detects when latency is
the lowest, stores the current timestamp and uses it as reference
throughout the rest of the stream.
2025-10-12 11:02:14 +02:00
Alessandro Ros
cd80814009
do not include recorder and HLS muxer in sent bytes ( #4380 ) ( #5039 )
...
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 )
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
b627128d0f
remove context from webrtc.PeerConnection arguments ( #4854 )
...
contexts are useless since there's already PeerConnection.Close().
2025-08-12 15:19:59 +02:00
Alessandro Ros
5ae934887d
remove custom forks of pion/webrtc and pion/ice ( #4861 )
...
this fixes IPv6 reliability issues and allows to receive upstream
updates in a more linear way.
2025-08-12 14:30:08 +02:00
Alessandro Ros
40c4a7fd04
webrtc: fix crash introduced in #4795 ( #4800 )
2025-07-29 11:02:32 +02:00
Alessandro Ros
534ea4d0c6
api: add additional WebRTC statistics ( #4795 )
...
rtpPacketsReceived, rtpPacketsSent, rtpPacketsLost, rtpPacketsJitter,
rtcpPacketsReceived, rtcpPacketsSent
2025-07-29 10:43:52 +02:00
Alessandro Ros
d423a71aaa
update linter settings ( #4790 )
2025-07-26 16:44:32 +02:00
Alessandro Ros
0b901ade3e
remove PathManager.StartPublisher and StopPublisher ( #4766 )
...
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
simplify path manager usage.
2025-07-21 13:52:55 +02:00
Alessandro Ros
f97213ae6e
support passing JWTs through the password field ( #4516 )
...
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
This is safer than passing JWTs through query parameters, unfortunately support is limited.
2025-05-10 22:54:24 +02:00
Alessandro Ros
77a3c7ae6e
webrtc: route original absolute timestamp of packets ( #1300 ) ( #4415 )
2025-04-12 11:34:27 +02:00
Alessandro Ros
371b9585a6
change error message when stream is not found ( #4301 )
...
Switch from 'no one is publishing to path' to 'no stream is available
on path' since the stream might be provided from a static source too.
2025-03-03 18:09:22 +01:00
Alessandro Ros
c692f3b78c
webrtc: rewrite WHIP client ( #4299 )
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
2025-03-01 17:01:57 +01:00
Alessandro Ros
5c6cf58d75
webrtc: fix connecting to TCP-only sources ( #4293 )
2025-03-01 11:07:50 +01:00
Jean-Philippe Bergeron
e8297478f3
Configurable webrtcSTUNGatherTimeout ( #4221 )
2025-02-07 16:34:17 +01:00
Alessandro Ros
8f6267deb8
bump pion/webrtc to v4 ( #4145 )
2025-01-13 23:19:29 +01:00
Alessandro Ros
8f04264fe5
webrtxc: fix MTX_QUERY not set when reading or publishing ( #4138 ) ( #3937 ) ( #4141 )
2025-01-11 17:29:48 +01:00
Alessandro Ros
8cb584b514
api, metrics: fix RTC lowercase in webRTCSession and webRTCSource ( #4076 )
2024-12-25 17:47:24 +01:00
Andres Uribe
f8b366c604
webrtc: restart ICE only on failed connection states ( #3899 )
...
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
* webrtc: Restart ICE only on failed connection states
* rename "connected" into "ready" since WebRTC can emit the "connected" state multiple times
---------
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2024-10-31 12:47:35 +01:00
Alessandro Ros
534b637bc7
support using JWT in Authorization header with API, Metrics, PProf ( #3630 ) ( #3795 )
2024-10-05 21:15:21 +02:00
Alessandro Ros
4c3ac34425
fix memory leak in case of errors during initialization of a reader ( #3831 )
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
471019f606
warn users about skipped tracks when reading or publishing ( #3753 )
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
6a38c87a5b
hls, webrtc: add FromStream / ToStream ( #3752 )
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-09 12:59:23 +02:00
Alessandro Ros
511b276b4d
webrtc: support reading G711 16khz tracks ( #2848 ) ( #3445 )
2024-06-10 00:57:26 +02:00
Alessandro Ros
427fea30ed
fix webrtc/VP9 tests ( #3443 )
2024-06-09 23:18:47 +02:00
Alessandro Ros
d7bc304e52
webrtc: speed up gathering of incoming tracks ( #3441 )
2024-06-09 22:58:40 +02:00
Alessandro Ros
eaf47e6598
webrtc: support reading, publishing, proxying LPCM tracks ( #3437 )
2024-06-09 22:51:16 +02:00
Alessandro Ros
ca1638976b
webrtc: support reading and publishing multichannel Opus ( #3371 ) ( #3375 )
2024-06-03 00:26:32 +02:00
Alessandro Ros
ca6e1259fb
webrtc: support reading and proxying stereo PCMU/PCMA tracks ( #3402 )
2024-06-02 23:08:54 +02:00
Jason Walton
1c2f95f609
webrtc: allow configuring timeouts ( #3404 ) ( #3406 )
...
* webrtc: allow configuring timeouts (#3404 )
* fix from code inspect
2024-05-30 13:36:58 +02:00
Alessandro Ros
407702380a
webrtc: in answer, include codecs that are actually in use ( #3374 )
2024-05-19 19:41:42 +02:00
Alessandro Ros
e283725cde
support routing multichannel Opus between RTSP, SRT, HLS, UDP and recording in MPEG-TS and fMP4 ( #3355 ) ( #3368 )
2024-05-19 14:38:57 +02:00
Alessandro Ros
d21506182b
webrtc: fix returning code 404 when a stream does not exist ( #3369 )
2024-05-19 13:46:47 +02:00
Dan Bason
87c0535823
Add option for ICE servers to be client only ( #3164 )
...
* Add option for ICE servers to be client only
* add clientOnly to configuration file and API docs
---------
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2024-04-06 18:32:53 +02:00
Alessandro Ros
1d4ea2cd9a
hls: fix freeze in case of muxing errors ( #3135 ) ( #3150 )
2024-03-19 14:01:14 +01:00
Alessandro Ros
9c6ba7e2c7
New authentication system ( #1341 ) ( #1992 ) ( #2205 ) ( #3081 )
...
This is a new authentication system that covers all the features exposed by the server, including playback, API, metrics and PPROF, improves internal authentication by adding permissions, improves HTTP-based authentication by adding the ability to exclude certain actions from being authenticated, adds an additional method (JWT-based authentication).
2024-03-04 14:20:34 +01:00
Alessandro Ros
34dbcfb508
move WebRTC tests into internal/servers/webrtc ( #3043 )
2024-02-18 22:15:08 +01:00
Alessandro Ros
ba69241377
hls: stop spamming 'stream doesn't contain any supported codec' when hlsAlwaysRemux is true ( #3018 )
2024-02-13 23:36:40 +01:00
Alessandro Ros
1ae3240b91
hls: fix crash when muxer is being recreated, improve performance ( #3017 )
2024-02-13 23:32:15 +01:00
Alessandro Ros
dd7d7c6c5d
srt: wait some seconds before returning authentication errors ( #2918 )
...
this allows to mitigate brute force attacks and is possible thanks to
https://github.com/datarhei/gosrt/pull/43
2024-01-18 22:48:25 +01:00
Alessandro Ros
514036d41a
treat different RTSP formats as different tracks in logs and API ( #2907 )
2024-01-15 12:08:14 +01:00
Alessandro Ros
20bb9b90cd
support G711 tracks with multiple channels and custom sample rates ( #2891 )
2024-01-13 11:40:26 +01:00
Alessandro Ros
7437ee7a09
update golangci-lint ( #2868 )
2024-01-03 21:13:20 +01:00
Alessandro Ros
598fadc9fb
api: add 'query' field to RTMP, RTSP, SRT and WebRTC clients ( #2689 ) ( #2844 )
2023-12-26 13:59:53 +01:00
Alessandro Ros
11988249df
move servers into internal/servers ( #2792 )
2023-12-08 19:17:17 +01:00