Commit graph

1121 commits

Author SHA1 Message Date
Alessandro Ros
4157f490fa
playback: support serving streams in standard MP4 format (#3213)
* playback: support serving streams in standard MP4 format

* sort samples by DTS

* update readme
2024-04-14 19:29:29 +02:00
Alessandro Ros
665e11a376
webrtc, hls: use absolute paths in Location header (#3195) (#3177) (#3240) 2024-04-14 12:04:51 +02:00
Alessandro Ros
a18bebfa58
webrtc: unexport WHIP primitives (#3233) 2024-04-13 11:08:30 +02:00
Alessandro Ros
a6cc52f0b2
webrtc: return 404 in case a WHIP PATCH or WHIP DELETE request fails (#3232) 2024-04-13 11:04:45 +02:00
Alessandro Ros
4354535a94
webrtc: fix crash when marshaling ICE fragments (#3231) 2024-04-13 10:47:26 +02:00
Pedro Sánchez
8aa26d6fb3
rtmp: fix streaming errors by handling AMF0 strict arrays (#3188) (#3189)
* add amf0 strict array decode

* add amf0 long string decode

* support amf0 types undefined, unsupported, xmldocument and date

* fix error and add tests

* modify tests to follow original way to test

* do not skip markerUnsupported / markerUndefined

* implement StrictArray marshaling; remove handling of long strings, XML documents, date

---------

Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>
2024-04-12 16:13:57 +02:00
github-actions[bot]
571d813531
bump hls.js to v1.5.8 (#3222)
Co-authored-by: mediamtx-bot <bot@mediamtx>
2024-04-11 12:21:31 +02:00
Alessandro Ros
36a6ca6ba6
fix race condition in SRT tests (#3215) 2024-04-09 10:04:56 +02:00
Alessandro Ros
0b5519d30c
deprecate path.playback parameter (#3217)
this has become useless after the introduction of the new
authentication system, that already allows to select which paths are
available for playback
2024-04-09 10:04:12 +02:00
Alessandro Ros
a50642c669
improve record tests (#3216) 2024-04-09 09:36:38 +02:00
Alessandro Ros
d63a0bc352
record: use original timescale of track instead of 90khz (#3212) 2024-04-09 00:16:21 +02:00
Alessandro Ros
55355ad58a
playback: support serving tracks with any time scale (#3211) 2024-04-08 23:56:27 +02:00
Alessandro Ros
14bf7f4cc5
playback: fix bug that messed up duration of last sample of each track (#3210) 2024-04-08 23:01:23 +02:00
Alessandro Ros
b5b44f4534
playback: improve performance when reading big segments (#3209) 2024-04-08 21:35:23 +02:00
lvyaoting
34b120fd33
fix typo in comment (#3205)
Signed-off-by: lvyaoting <lvyaoting@outlook.com>
2024-04-08 09:29:42 +02:00
Alessandro Ros
9ce12ffa4a
fix race condition in WebRTC tests (#3204) 2024-04-07 22:46:24 +02:00
Alessandro Ros
d5a18bf78f
playaback: use a fixed fMP4 part duration (#3203) 2024-04-07 22:33:49 +02:00
Alessandro Ros
3144b31185
playback: adjust speed to compensate discrepancies between NTP and DTS (#3202) 2024-04-07 20:29:46 +02:00
Alessandro Ros
0a8e6263a8
playback: increase sequence number of fMP4 parts (#3200) 2024-04-07 14:23:02 +02:00
Alessandro Ros
b64e082253
playback: decrease concatenation tolerance to 0.5 secs (#3199) 2024-04-07 13:51:23 +02:00
Alessandro Ros
c263fc6f7b
playback: fix concatenation of segments with multiple tracks (#3198)
the duration of segments was computed erroneously, since it was taking
into consideration the last track only. Now the duration of a segment
corresponds to the maximum duration among all tracks.
2024-04-07 12:48:47 +02:00
Alessandro Ros
50322fc14e
playback: do not concatenate segments with different tracks (#3197) 2024-04-06 20:01:23 +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
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