Alessandro Ros and GitHub
1b943637a4
moq: support draft-16 ( #6045 )
2026-08-05 12:16:07 +02:00
Alessandro Ros and GitHub
f0d2f11525
moq: link primitives to draft-17 sections ( #6044 )
2026-08-05 09:33:39 +00:00
Alessandro Ros and GitHub
c48b0b8fee
moq: increase max namespace field count to 32 ( #6043 )
2026-08-05 09:20:59 +00:00
Alessandro Ros and GitHub
241892220b
bump dependencies ( #6042 )
2026-08-05 10:59:53 +02:00
Alessandro Ros and GitHub
a4ad182e4e
format imports ( #6041 )
2026-08-04 22:13:15 +00:00
Alessandro Ros and GitHub
a65bdc1c5a
moq: support draft-17 ( #6040 )
2026-08-04 23:57:27 +02:00
Alessandro Ros and GitHub
e0ed9885fc
moq: support publishing and reading through native QUIC ( #6039 )
2026-08-04 23:47:59 +02:00
Alessandro Ros and GitHub
dcd4b38838
srt: close sources immediately when path is closed ( #6038 )
2026-08-04 22:48:57 +02:00
Alessandro Ros and GitHub
f36c41d90a
webrtc: fix "packet lost" error when routing streams from WebRTC ( #6034 )
...
Chrome sometimes sends empty packets, that are discarded by the server,
but the sequence number of following packets is not recomputed,
leading downstream packet loss detectors to emit errors. This is fixed.
2026-08-04 21:00:11 +02:00
Alessandro Ros and GitHub
543dbc9eb8
fix support for regexp groups greater than 10 ( #6033 )
2026-08-04 18:50:38 +00:00
Alessandro Ros and GitHub
d8b2e4b6fc
add more black-box tests ( #6032 )
2026-08-04 18:44:17 +00:00
Alessandro Ros and GitHub
021f84428d
bump Ubuntu in E2E tests ( #6035 )
2026-08-04 18:38:27 +00:00
Alessandro Ros and GitHub
9d8f894c46
srt: show stream ID in logs ( #6018 )
2026-08-04 17:57:01 +02:00
Alessandro Ros and GitHub
c8d0e47488
fix some CodeQL warnings ( #6029 )
2026-08-03 17:23:08 +00:00
Alessandro Ros and GitHub
1c7bc95cdd
prevent some CodeQL warnings ( #6027 )
2026-08-03 16:47:25 +00:00
Alessandro Ros and GitHub
62c119f0a4
hls: prevent some CodeQL warnings ( #6024 )
2026-08-03 16:23:08 +00:00
Alessandro Ros and GitHub
3d5039607c
metrics: fix race condition in tests ( #6026 )
2026-08-03 18:14:20 +02:00
Alessandro Ros and GitHub
35990a38c3
webrtc: fix race condition in tests ( #6025 )
2026-08-03 18:11:24 +02:00
Alessandro Ros and GitHub
168c5900b1
docs: update ( #6022 )
2026-08-03 11:43:33 +00:00
Alessandro Ros and GitHub
3c77704ccf
rtsp: log write errors ( #6023 )
2026-08-02 16:48:13 +00:00
Alessandro Ros and GitHub
4bb896afe0
webrtc: reset recomputed audio PTS if it drifts too much ( #6021 )
2026-08-01 16:24:53 +00:00
Alessandro Ros and GitHub
24dd8f44a5
sync golangci-lint settings ( #6020 )
2026-08-01 08:30:58 +00:00
Alessandro Ros and GitHub
ef93aee083
use black-box testing where possible ( #6016 )
2026-08-01 08:06:27 +00:00
Alessandro Ros and GitHub
817c22cc6c
fix inability to read some AV1 streams with RTSP ( #6001 ) ( #6006 )
...
Since v1.16.0, temporal unit delimiters were not stripped from AV1 streams
anymore. This has been restored, healing AV1 streams read with
RTSP.
2026-07-29 14:36:23 +02:00
Alessandro Ros and GitHub
a0482f937f
webrtc: sort tracks in a deterministic way ( #5988 ) ( #5989 )
...
When ingesting tracks with WebRTC, track order was randomized,
preventing multi-track always-available streams from working reliably,
since they require tracks to be ordered in a precise way.
WebRTC tracks are not ordered by MID, RID, trackID and streamID
respectively.
2026-07-25 19:44:45 +02:00
Alessandro Ros and GitHub
fc47d9e6ed
srt: improve log clarity ( #5990 )
...
use message 'passphrase not provided by client' when clients do not
provide passphrases.
2026-07-25 19:44:31 +02:00
Alessandro Ros and GitHub
83e04d8255
improve documentation ( #5985 )
2026-07-24 15:43:06 +02:00
Alessandro Ros and GitHub
519a04e490
docs: add missing MoQ ports ( #5983 )
2026-07-24 09:12:48 +02:00
Alessandro Ros and GitHub
4c5f558006
hls, webrtc: prevent cross-origin unauthorized access ( #5975 )
...
when a user had previously inserted credentials into a MediaMTX
instance through a browser, and AllowOrigins was set to a wildcard,
third-party websites visited by the user were allowed to read streams
without restrictions. This is now prevented by returning "*" in
Access-Control-Allow-Origins when AllowOrigins is a wildcard, a
behavior that prevents browsers from sharing credentials with
third-party websites.
2026-07-23 23:06:15 +02:00
c23bdf2924
rtsp: use session ID in requests to the external authentication server ( #5977 )
...
Co-authored-by: Cycle1337 <Cycle1337@outlook.com >
2026-07-23 23:04:29 +02:00
Alessandro Ros and GitHub
5d0ba43667
moq: prevent excessive CPU consumption in reorderer ( #5976 )
...
do not iterate by maxGroupID (passed by user) but iterate by internal
pending packets (uncontrolled by user).
2026-07-23 23:01:05 +02:00
Alessandro Ros and GitHub
2183d37d32
add comment to prevent security scan false positives ( #5973 )
2026-07-23 22:59:23 +02:00
Alessandro Ros and GitHub
6da35dc389
moq: support draft-19 of the specification ( #5968 )
...
* support draft-19 of the specification
* support subscribing the same track multiple times
2026-07-21 00:24:03 +02:00
Alessandro Ros and GitHub
be610a6a04
docs: add fail2ban integration ( #5016 ) ( #5967 )
2026-07-19 17:03:57 +02:00
Alessandro Ros and GitHub
58c6099e50
ask for credentials only in case of protocols that support it ( #5966 )
...
When clients connect with some protocols (SRT, RTMP), they are unable
to provide credentials even if they are asked to. In this case, it's
useless to wait for credentials, and it's better to immediately log
authentication errors and apply the anti-brute force algorithm.
2026-07-19 16:52:14 +02:00
Alessandro Ros and GitHub
363ac206f7
moq: fix several panics and OOM errors ( #5964 )
...
Check for limits before allocating memory by using sizes passed from
the remote peer. Also add fuzzing to all MoQ primitives.
2026-07-19 12:13:45 +02:00
Alessandro Ros and GitHub
83cc54418c
moq: fix race condition during startup ( #5965 )
...
allocate the HTTP server only after the MoQ server has been initialized.
2026-07-19 11:29:04 +02:00
Alessandro Ros and GitHub
0e6426c648
adjust code to prevent security scan false positives ( #5963 )
...
... about string escaping.
2026-07-19 10:20:37 +02:00
Alessandro Ros and GitHub
e14ada6f4b
normalize authentication error messages ( #5421 ) ( #5959 )
...
Log authentication errors as soon as possible, use the "warn" level,
use the same message whatever the author or protocol.
2026-07-19 10:04:17 +02:00
d15c14ec6a
avoid potential timing attack when validating SHA256 credentials ( #5961 )
...
The == operator is vulnerable to timing attacks as it short-circuits on a mismatch. Use
ConstantTimeCompare to avoid this vector.
Co-authored-by: Tristan Matthews <tmatth@videolan.org >
2026-07-19 09:46:34 +02:00
Alessandro Ros and GitHub
0378876293
fix wrong PTS and wrong playback of alwaysAvailableFile ( #5436 ) ( #5960 )
...
PTS offset of samples was not properly considered, and sleep between
samples was PTS-based instead of being DTS-based.
2026-07-18 22:39:28 +02:00
Alessandro Ros and GitHub
fa7a89f840
rtsp: restrict UDP port range to 32768-60999 ( #5398 ) ( #5958 )
...
this is the default Linux ephemeral port range.
2026-07-18 20:59:33 +02:00
Alessandro Ros and GitHub
d6e765976c
srt: fix compatibility with StreamToStudio app ( #5414 ) ( #5928 )
2026-07-18 17:59:05 +02:00
Alessandro Ros and GitHub
96aeb1e603
rename runOnReady into runOnAvailable, runOnNotReady into runOnUnavailable ( #5957 )
2026-07-18 17:58:16 +02:00
Alessandro Ros and GitHub
8909e35a17
add runOnOnline / runOnOffline hooks ( #5399 ) ( #5956 )
...
These are triggered and a stream is online (i.e. not just provided by
an offline segment).
2026-07-18 17:41:38 +02:00
Alessandro Ros and GitHub
75bf1af38c
fix clearing lists with environment variables ( #5410 ) ( #5924 )
...
MTX_AUTHINTERNALUSERS_0_IPS, MTX_LOGDESTINATIONS and MTX_RTSPTRANSPORTS
can now be used to clear their corresponding list by setting them to an
empty value.
2026-07-18 10:56:46 +02:00
Alessandro Ros and GitHub
e98b727277
fix error message ( #5922 )
...
'all' is a synonym for 'all_others'
2026-07-05 11:00:09 +02:00
Alessandro Ros and GitHub
99f804d733
api: generate most of OpenAPI automatically ( #5918 )
...
enums and structs are now generated automatically. This eliminates some
inconsistencies and makes development easier.
2026-07-04 17:45:43 +02:00
Alessandro Ros and GitHub
f4decfd41b
docs: fix MoQ read URL ( #5904 )
2026-06-28 16:29:24 +02:00
Alessandro Ros and GitHub
ce00edb92f
docs: change suggested hls.js CDN ( #5903 )
2026-06-28 16:29:12 +02:00
Alessandro Ros and GitHub
7eb5d30075
prevent truncation of 64-bit values on 32-bit platforms ( #5902 )
2026-06-28 11:37:14 +02:00
Alessandro Ros and GitHub
bf098c7eb5
support encoding secondary stream with H264 (2/2) ( #4485 ) ( #5898 )
2026-06-28 11:19:23 +02:00
Alessandro Ros and GitHub
1a7c10af1e
rpicamera: support encoding primary stream with MJPEG (2/2) ( #5892 )
2026-06-27 19:19:36 +02:00
Alessandro Ros and GitHub
07d0e232b2
rpi: add unified rpiCameraH264Profile, rpiCameraH264Level params ( #5894 )
...
These replace rpiCameraHardwareH264Profile, rpiCameraHardwareH264Level, rpiCameraSoftwareH264Profile, rpiCameraSoftwareH264Level.
2026-06-25 22:07:36 +02:00
Alessandro Ros and GitHub
b91affa054
rpi: exclude additional code from non-arm builds ( #5893 )
2026-06-25 19:37:28 +02:00
Alessandro Ros and GitHub
90b8d5c943
improve HTTP server performance ( #5886 )
...
log incoming requests without cloning.
2026-06-20 12:03:35 +02:00
Alessandro Ros and GitHub
28d648da37
move Content-Types to log in a map ( #5875 )
2026-06-20 09:35:55 +02:00
Alessandro Ros and GitHub
0996186cdf
restore quic-go/webtransport-go ( #5876 )
2026-06-16 15:09:00 +02:00
Alessandro Ros and GitHub
874b47d0b0
remove redundant copy operation ( #5862 )
...
Since #5856 , OrigDesc of Streams is never changed, so there's no reason
to clone offlineDesc before putting it into OrigDesc.
2026-06-13 11:45:44 +02:00
Alessandro Ros and GitHub
d0cf294637
print body of selected HTTP responses when log level is debug ( #5859 )
2026-06-11 00:53:52 +02:00
Alessandro Ros and GitHub
959f58cee9
limit size of HTTP requests shown in debug logs ( #5858 )
2026-06-11 00:31:10 +02:00
Alessandro Ros and GitHub
3940e68415
rtsp: restore support for H264 packetization-mode 0 ( #5846 ) ( #5857 )
...
H264 streams with packetization-mode=0 cannot be routed with UDP since
packets are too big. Inbound streams with packetization-mode=0 are
blocked by the server since v1.19.0 but this caused compatibility
issues with some cameras.
The server is now able to receive such streams with TCP, and
automatically remuxes them in streams with packetization-mode=1, which
can be routed freely.
2026-06-10 23:59:40 +02:00
Alessandro Ros and GitHub
7e576d077f
rtsp: use ServerStream.ReloadDesc to propagate description changes to RTSP servers ( #5856 )
2026-06-10 23:46:02 +02:00
Alessandro Ros and GitHub
51f826057a
moq: rename moqHTTPS2Address into moqHTTP2Address, moqHTTPS3Address into moqHTTP3Address ( #5841 )
2026-06-07 16:34:37 +02:00
Alessandro Ros and GitHub
17fadee594
restrict GitHub Actions workflow permissions ( #5840 )
2026-06-07 16:32:22 +02:00
Alessandro Ros and GitHub
c8eabc0307
hls: fix race condition in tests ( #5842 )
2026-06-07 16:28:27 +02:00
Alessandro Ros and GitHub
f5d7ed3138
improve anti-brute force mechanism ( #5835 )
...
delay authentication failure responses by a random amount of time, use
the same anti-brute force mechanism with all users.
2026-06-05 17:01:36 +02:00
Alessandro Ros and GitHub
5b9b6afcb8
replace errors.As with modern errors.AsType ( #5834 )
2026-06-05 09:56:06 +02:00
Alessandro Ros and GitHub
de7b4d5a29
restore pion/ice ( #5837 )
2026-06-05 09:16:33 +02:00
Alessandro Ros and GitHub
fa5e368341
moq: fix race condition when closing server ( #5836 )
...
some sessions were hanging if they were concurrently being closed by
the remote peer.
2026-06-04 23:27:14 +02:00
Alessandro Ros and GitHub
b5b63d02fc
support reading and publishing with Media-over-QUIC ( #5815 )
...
Media-over-QUIC is a streaming protocol built upon cutting edge
protocols (QUIC, HTTP3) and browser APIs (WebTransport, WebCodecs).
It's slightly faster than WebRTC, has an advanced data recovery
mechanism (placed at the frame level and not at the packet level), it
supports additional codecs (FLAC) and is less complicated to route.
2026-06-02 23:04:24 +02:00
Alessandro Ros and GitHub
640ddde51b
webrtc: fix connectivity after network changes ( #5097 ) ( #5818 )
2026-06-02 21:40:00 +02:00
Alessandro Ros and GitHub
0d7cbd6df8
fix two hot reloading cases ( #5817 )
...
* reload SRT server when metrics server is reloaded
* reload API server when RTMPS server is reloaded
2026-06-02 10:06:24 +02:00
Alessandro Ros and GitHub
7ab03cdc58
webrtc: rename incoming/outgoing into inbound/outbound ( #5816 )
2026-06-02 09:15:49 +02:00
Alessandro Ros and GitHub
0f5a76e253
modernize code ( #5814 )
2026-05-31 20:33:48 +02:00
Alessandro Ros and GitHub
903627ffed
apply prettier to the entire repository ( #5799 )
2026-05-26 11:35:14 +02:00
Alessandro Ros and GitHub
e63dd7132a
hls: remove redundant JavaScript argument ( #5806 )
2026-05-26 11:22:19 +02:00
Alessandro Ros and GitHub
66a824d3f1
webrtc: make handleError accept strings only ( #5805 )
2026-05-26 11:13:01 +02:00
Alessandro Ros and GitHub
17efb211a9
webrtc: make JavaScript internal variables private ( #5804 )
2026-05-26 11:09:05 +02:00
Alessandro Ros and GitHub
2795962d8e
hls: support reading and publishing FLAC ( #5778 ) ( #5791 )
2026-05-21 17:00:59 +02:00
Alessandro Ros and GitHub
0edc3dbe86
rtmp: support reading and writing FLAC ( #5778 ) ( #5789 )
2026-05-21 14:50:06 +02:00
Alessandro Ros and GitHub
111302f9e3
use file name suffix for OS-specific code wherever possible ( #5787 )
2026-05-19 11:48:05 +02:00
Alessandro Ros and GitHub
e7b811fdc0
add --check-version command line flag ( #5786 )
...
this allows to check whether a new version is available without upgrading.
2026-05-19 11:42:32 +02:00
Alessandro Ros and GitHub
c05c14d9af
webrtc: support WHIP ICE restarts ( #5183 ) ( #5770 )
2026-05-15 19:15:42 +02:00
Alessandro Ros and GitHub
aaa4a5dbc6
docs: update ( #5756 )
2026-05-14 21:22:17 +02:00
Alessandro Ros and GitHub
a439fd7e0d
bump Ubuntu to 24.04 ( #5769 )
2026-05-14 19:32:37 +02:00
Alessandro Ros and GitHub
09a733e5ce
rpi: support changing text overlay dynamically ( #5270 ) ( #5748 )
2026-05-13 18:13:59 +02:00
Alessandro Ros and GitHub
cdea2dc167
webrtc: support interacting with servers with no trickle ICE ( #5273 ) ( #5757 )
2026-05-12 21:07:16 +02:00
Alessandro Ros and GitHub
f542ccaf19
webrtc: fix checking POST responses ( #5758 )
2026-05-12 19:06:08 +02:00
Alessandro Ros and GitHub
37c3d0d627
docs: update ( #5747 )
2026-05-10 20:40:09 +02:00
Alessandro Ros and GitHub
0ad6897a4d
fix missing permission in GitHub actions ( #5722 )
2026-04-30 16:43:19 +02:00
Alessandro Ros and GitHub
ddb5f7212f
hls: add hlsCDNSecret ( #5716 )
...
this allows to serve HLS streams behind a CDN in a simplified way, compatible with the new HLS session system.
2026-04-30 15:52:11 +02:00
Alessandro Ros and GitHub
585b17375e
docs: remove the "variants" column from publish and read pages ( #5717 )
2026-04-30 13:19:50 +02:00
Alessandro Ros and GitHub
a9d4b2051e
docs: format ( #5715 )
2026-04-30 12:34:22 +02:00
Alessandro Ros and GitHub
57afd4e0f4
docs: move codecs in specific protocol pages ( #5713 )
2026-04-30 12:22:57 +02:00
Alessandro Ros and GitHub
9b4531364e
hls, webrtc: prevent open redirect attacks ( #5708 )
2026-04-30 00:10:46 +02:00
Alessandro Ros and GitHub
e6c20adf28
prevent code injection in case of MTX_QUERY in hooks ( #5707 )
...
When MTX_QUERY is used explicitly in hooks, for instance "curl
http://something/?$MTX_QUERY ", it can be used to inject arbitrary
commands. MTX_QUERY is now url-encoded to prevent any abuse regardless
of the configuration.
2026-04-29 22:59:40 +02:00
Alessandro Ros and GitHub
66a67188fe
tests: use testing.T.TempDir rather than os.TempDir ( #5709 )
2026-04-29 22:47:47 +02:00
Alessandro Ros and GitHub
744c35d93f
use temporary redirects instead of permanent redirects ( #5710 )
...
this prevents unwanted caching.
2026-04-29 22:44:11 +02:00
Alessandro Ros and GitHub
679925484f
use cmd.Start instead of NewCmd ( #5706 )
2026-04-29 13:29:33 +02:00