Commit graph

1098 commits

Author SHA1 Message Date
Alessandro Ros
4e581af7a6
hls: fix directory creation when using hlsDirectory (#3135) (#3151) 2024-03-19 14:09:25 +01:00
Alessandro Ros
1d4ea2cd9a
hls: fix freeze in case of muxing errors (#3135) (#3150) 2024-03-19 14:01:14 +01:00
Alessandro Ros
c7dbb951f3
update golangci-lint (#3149) 2024-03-19 12:53:26 +01:00
Alessandro Ros
24cc62e344
hls: decrease number of idle connections kept open after a reconnection (#3128) 2024-03-10 11:51:15 +01:00
Jonathan Martin
1989997fe1
webrtc: fix memory leak when WHEP track gathering fails and decrease count of idle HTTP connections (#3124)
* fix: whep gathering failure leaks peer connections

* fix: failure to create whep client leaks

when read fails, client is not closed

* fix: close idle connection with whip client

* fix: no link check on early whip client close

* move http.Client.CloseIdleConnections() outside WHIPClient

* automatically call WHEPClient.Close() in case of errors during WHEPClient.Read() or WHEPClient.Publish()

---------

Co-authored-by: Jonathan Martin <jonathan.martin@marss.com>
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2024-03-10 11:33:00 +01:00
Jonathan Martin
732bf565bf
webrtc: fix deadlock when a WHEP source fails (#3062) (#3108) (#3110)
Co-authored-by: Jonathan Martin <jonathan.martin@marss.com>
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2024-03-06 22:38:36 +01:00
Alessandro Ros
dd3b268346
do not switch to legacy authentication system when readUser, readPass, publishUser, publishPass are present but are empty (#3113) 2024-03-06 18:04:08 +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
44918fce0d
when stopping hooks, stop all their subprocesses too (#3004) (#3087) 2024-02-29 22:42:11 +01:00
github-actions[bot]
a0be4ca05f
bump hls.js to v1.5.7 (#3072)
Co-authored-by: mediamtx-bot <bot@mediamtx>
2024-02-27 16:12:39 +01:00
Alessandro Ros
b6db3121b5
rtsp: add random value to timestamp of tracks from other protocols (#3071) 2024-02-26 00:41:05 +01:00
Alessandro Ros
da7c5744b1
rtmp: add new AMF0 encoder and encoder (#3069)
This improves performance, security and removes a dependency.
2024-02-24 19:11:42 +01:00
Alessandro Ros
c7bdcea741
move RTSP tests into internal/servers/rtsp (#3049) 2024-02-20 19:35:35 +01:00
Dan Bason
e8b19b82d5
in hooks, allow replacing placeholders with environment (#3044) 2024-02-19 09:00:58 +01:00
Alessandro Ros
34dbcfb508
move WebRTC tests into internal/servers/webrtc (#3043) 2024-02-18 22:15:08 +01:00
Alessandro Ros
a52f550ee6
webrtc: return an error when proxying stream with no tracks (#3042) 2024-02-18 21:58:11 +01:00
github-actions[bot]
679bad7fbf
bump hls.js to v1.5.6 (#3038)
Co-authored-by: mediamtx-bot <bot@mediamtx>
2024-02-18 17:37:24 +01:00
Alessandro Ros
9e5de737f0
move SRT tests into internal/servers/srt (#3037) 2024-02-17 20:42:41 +01:00
Alessandro Ros
ad58efe47d
move RTMP tests into internal/servers/rtmp (#3035) 2024-02-16 23:27:27 +01:00
Spencer Lowe
e5e029a7f4
srt: add additional metrics (#2962)
* first attempt at the srt metrics

* Updated variables to better match mediamtx

* Prometheus metrics for SRT

* Update readme for SRT metrics

* Switch openapi to number from float

* SRT metrics metrics response fix

* Make the metric test less strict, and nolint line length on the SRT metrics struct

* remove nolint

* move BytesSent and BytesReceived into APISRTConnMetrics

* merge APISRTConn and APISRTConnMetrics

* improve tests

---------

Co-authored-by: slowe <slowe@clairglobal.com>
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2024-02-16 14:22:30 +01:00
github-actions[bot]
992a8082b8
bump hls-js to vv1.5.5 (#3019)
Co-authored-by: mediamtx-bot <bot@mediamtx>
2024-02-14 11:58:44 +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
b6eaa6bc18
move test utilities into 'test' (#3016)
* move test utilities into 'test'

* rename newEmptyTimer into emptyTimer
2024-02-13 18:49:27 +01:00
Alessandro Ros
c2883f2ce9
hls: when alwaysRemux is true, prevent clients from creating muxers (#3015) 2024-02-13 17:37:03 +01:00
Alessandro Ros
3161e73a58
rename httpserv into httpp (#3014) 2024-02-13 13:04:56 +01:00
Alessandro Ros
487f92ac55
hls: in logs, store both ip and port of incoming requests (#3013) 2024-02-12 22:44:44 +01:00
Alessandro Ros
df3dfea132
fix compilation with Windows and git autocrlf (#3010) (#3011) 2024-02-12 18:13:01 +01:00
Alessandro Ros
9eb97ad3a0
remove hls.js from the repository and restore plain MIT license (#3008) 2024-02-12 00:31:13 +01:00
Alessandro Ros
fcf649cdaf
tests: make sure that dates with decimal seconds can be parsed correctly (#3007) 2024-02-12 00:20:35 +01:00
github-actions[bot]
1b13018321
bump hls-js to v1.5.4 (#2999)
Co-authored-by: mediamtx-bot <bot@mediamtx>
2024-02-08 21:42:25 +01:00
Alessandro Ros
22a589b724
stop logging HTTP requests twice (#2993) 2024-02-05 22:26:33 +01:00
Alessandro Ros
0332ba59a0
api: add endpoints for recording management (#2901) (#2988) 2024-02-04 23:51:51 +01:00
Alessandro Ros
695e327a03
playback: make 'format' parameter optional (#2980) 2024-02-03 16:11:09 +01:00
Alessandro Ros
ff70f9022e
playback: accept durations written in seconds (#2979) 2024-02-03 16:05:39 +01:00
Alessandro Ros
e6bf095a05
playback: add /list endpoint to list available timespans (#2978) 2024-02-03 15:54:07 +01:00
Alessandro Ros
4553fc267c
hls, webrtc: in web page, add shadow to messages (#2959) 2024-02-03 11:31:01 +01:00
Alessandro Ros
b32bc8dee9
hls, webrtc: in web page, prevent video from overflowing (#2958) 2024-02-03 11:30:44 +01:00
Alessandro Ros
320f5a7a21
api: improve performance by using RWMutex (#2968) 2024-01-31 22:41:37 +01:00
github-actions[bot]
97c58b4530
bump hls-js to v1.5.3 (#2964)
Co-authored-by: mediamtx-bot <bot@mediamtx>
2024-01-31 10:37:37 +01:00
Alessandro Ros
0433af66a3
hls, webrtc: in the web page, show connection errors to users (#2957) 2024-01-29 00:43:34 +01:00
Alessandro Ros
7d0e702f14
hls: fix infinite loop in web client when reading incompatible codecs (#2956)
when a player received a stream with incompatible codecs, it started
polling the server for index.m3u8 in an infinite loop. This was caused
by #2631
2024-01-29 00:25:42 +01:00
Alessandro Ros
0f733bab26
add rpiCameraAWBGains (#2858) (#2954) 2024-01-28 21:48:21 +01:00
Alessandro Ros
6f6f8e0994
prevent multiple crashes when reloading the configuration (#2945) 2024-01-26 13:04:06 +01:00
github-actions[bot]
2f35bbc5bc
bump hls-js to v1.5.2 (#2948)
Co-authored-by: mediamtx-bot <bot@mediamtx>
2024-01-26 12:20:08 +01:00
Alessandro Ros
57c2d5aecb
add playback server (#2452) (#2906)
* add playback server

* add playback switch

* update readme
2024-01-23 20:52:05 +01:00
Alessandro Ros
9b270adc03
record: use reception time instead of current time in segment names (#2925) 2024-01-21 19:15:31 +01:00
Alessandro Ros
f8a56aae91
rtmp: simplify Audio message structure (#2924) 2024-01-21 16:29:13 +01:00
Alessandro Ros
7b9617f2e7
api: return 404 when an entity is not found (#2582) (#2920) 2024-01-18 23:28:56 +01:00
Alessandro Ros
b3eaec50c1
srt: support standard streamID syntax (#2469) (#2919) 2024-01-18 23:23:51 +01:00