Alessandro Ros and GitHub
f126a7e7d6
playback: improve segment merging algorithm ( #5084 )
...
* merge segments only if they belong to the same stream and are
consecutive. * compute DTS without using NTP timestamp, increasing
robustness against NTP fluctuations.
2025-10-13 17:00:21 +02:00
Alessandro Ros and GitHub
7bca38badb
add self-upgrader ( #3501 ) ( #5035 )
...
this allows to upgrade MediaMTX to latest version by running
./mediamtx --upgrade
2025-10-13 13:06:47 +02:00
Alessandro Ros and GitHub
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 and GitHub
ccaccc51b4
replace incoming absolute timestamps of any source ( #5081 )
...
Absolute timestamps are used to generate recording segments, so users
should not be able to change them, unless explicitly allowed.
Parameter useAbsoluteTimestamp allowed to re-enable absolute timestamps
with RTSP and WebRTC, now it is extended to all protocols.
2025-10-13 12:23:51 +02:00
Alessandro Ros and GitHub
75420552b9
recorder: reset fMP4 sequence number during segment switch ( #5082 )
...
It's useless to make sequence numbers unique across the entire stream.
2025-10-12 17:59:28 +02:00
Alessandro Ros and GitHub
a9d84103d0
prevent estimated absolute timestamp from drifting too much ( #5080 )
2025-10-12 17:53:22 +02:00
Alessandro Ros and GitHub
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 and GitHub
f5f03562d3
rewrite Unit definition ( #5079 )
...
Stream units now share the same struct, with a specialized payload.
2025-10-11 12:18:51 +02:00
Alessandro Ros and GitHub
6415285427
hls: improve web page performance ( #5062 )
...
load hls.js in parallel with the page.
2025-10-05 18:00:14 +02:00
Alessandro Ros and GitHub
7634370818
add read and write timeouts in HTTP servers ( #5056 )
...
this prevents zombie connections from piling up.
2025-10-04 10:01:21 +02:00
Alessandro Ros and GitHub
691d7290fb
webrtc: fix packet corruption when reading G711 ( #5048 )
...
when a reader is reading a G711 track, stream units are modified
globally, affecting every other reader. This fixes the issue.
2025-09-30 10:42:24 +02:00
Alessandro Ros and GitHub
2690ef8e71
api: add /info endpoint ( #945 ) ( #5045 )
2025-09-30 10:39:27 +02:00
Alessandro Ros and GitHub
2024783eec
webrtc: fix clippy audio when reading Opus ( #3878 ) ( #5047 )
...
Opus timestamp is now recomputed from scratch.
2025-09-30 10:35:56 +02:00
Alessandro Ros and GitHub
cd80814009
do not include recorder and HLS muxer in sent bytes ( #4380 ) ( #5039 )
...
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 and GitHub
ada39d22cd
on Windows, do not look for configuration in linux paths ( #5036 )
2025-09-27 13:36:04 +02:00
Alessandro Ros and GitHub
d6e6954a12
api: fix crash in rtspsessions/list and /rtspsessions/get ( #5030 ) ( #5031 )
...
sometimes sessions have an empty associated path, and this caused a
crash.
2025-09-25 10:57:03 +02:00
Alessandro Ros and GitHub
6b57c5187b
webrtc: add authentication parameters to publisher.js and reader.js ( #5026 )
...
add user, pass and token configuration parameters.
2025-09-24 18:28:53 +02:00
Alessandro Ros and GitHub
e1f5d06612
allow changing record parameters without disconnecting readers ( #4663 ) ( #5018 )
2025-09-23 10:31:05 +02:00
Alessandro Ros and GitHub
f987695d9d
rtsp: log authentication failure reason ( #4641 ) ( #5017 )
2025-09-23 10:18:13 +02:00
Alessandro Ros and GitHub
5240bcb8ff
log authentication errors of API, metrics, pprof ( #4641 ) ( #5015 )
2025-09-23 09:51:22 +02:00
bluenviron-bot and GitHub
b192dbc492
bump hls.js to v1.6.13 ( #5024 )
2025-09-23 09:36:32 +02:00
Alessandro Ros and GitHub
85f57b90db
stop accepting JWTs from query parameters unless allowed in conf ( #5010 )
...
This is the first step into removing support for JWTs in
query parameters, which is a security flaw.
2025-09-22 10:04:51 +02:00
Alessandro Ros and GitHub
68b4c20627
fix reading JWT when it is passed through the password field ( #5009 )
...
Usernames and passwords must be requested explicitly to clients, but
they were not requested when JWT is meant to be passed as password.
This fixes the issue.
2025-09-22 10:00:33 +02:00
Alessandro Ros and GitHub
b517631b8f
fix authentication failure reason not being displayed ( #5007 )
2025-09-22 09:48:51 +02:00
253df883c2
build(deps): bump github.com/bluenviron/mediacommon/v2 ( #4990 )
...
Bumps [github.com/bluenviron/mediacommon/v2](https://github.com/bluenviron/mediacommon ) from 2.4.2 to 2.4.3.
- [Commits](https://github.com/bluenviron/mediacommon/compare/v2.4.2...v2.4.3 )
---
updated-dependencies:
- dependency-name: github.com/bluenviron/mediacommon/v2
dependency-version: 2.4.3
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-09-18 13:10:42 +02:00
bluenviron-bot and GitHub
d6cb547321
bump mediamtx-rpicamera to v2.5.0 ( #4993 )
2025-09-18 13:06:12 +02:00
Alessandro Ros and GitHub
f81c50ee68
rtsp: support reading streams tunneled with HTTP or WebSocket ( #4986 )
2025-09-17 22:31:20 +02:00
Alessandro Ros and GitHub
558d1c3818
api: add tunnel and profile to RTSP conns and sessions ( #4985 )
2025-09-17 22:18:21 +02:00
Alessandro Ros and GitHub
e3b8af8933
switch to gortsplib/v5 ( #4978 )
2025-09-16 13:10:34 +02:00
ebd9eb6665
build(deps): bump github.com/bluenviron/mediacommon/v2 ( #4975 )
...
Bumps [github.com/bluenviron/mediacommon/v2](https://github.com/bluenviron/mediacommon ) from 2.4.2-0.20250909112826-017d0bbe41db to 2.4.2.
- [Commits](https://github.com/bluenviron/mediacommon/commits/v2.4.2 )
---
updated-dependencies:
- dependency-name: github.com/bluenviron/mediacommon/v2
dependency-version: 2.4.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-09-15 22:56:28 +02:00
Alessandro Ros and GitHub
35aceaa4a9
send server name (SNI) when opening TLS connections ( #4973 )
2025-09-15 19:38:36 +02:00
Alessandro Ros and GitHub
1b8897d30d
rtmp: move implementation to gortmplib ( #4968 )
2025-09-13 11:50:36 +02:00
Alessandro Ros and GitHub
e8b746b6d5
rtsp: fix memory leak when closing sessions ( #4964 ) ( #4678 ) ( #4967 )
2025-09-12 15:48:14 +02:00
Alessandro Ros and GitHub
0c801564fd
playback: fix crash during authentication errors ( #4960 ) ( #4966 )
2025-09-12 15:24:51 +02:00
Alessandro Ros and GitHub
57021467e9
rename formatprocessor into codecprocessor ( #4962 )
2025-09-12 10:24:11 +02:00
bluenviron-bot and GitHub
8e359a1eea
bump hls.js to v1.6.12 ( #4957 )
2025-09-12 08:53:53 +02:00
Alessandro Ros and GitHub
9318107779
rtmp: support additional enhanced RTMP features ( #4168 ) ( #4321 ) ( #4954 )
...
* 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 and GitHub
e0f4748839
modernize code ( #4947 )
2025-09-07 16:08:47 +02:00
Alessandro Ros and GitHub
736abc40b3
fix golangci_lint workflow ( #4933 )
2025-09-03 15:22:27 +02:00
cb16f68432
rtmp: improve control message compatibility with non-standard cameras ( #4909 )
...
* feat: improve RTMP control message compatibility with non-standard cameras
- Add flexible chunk stream ID validation for control messages
- Support common non-standard chunk stream IDs (2,3,4,5,6) used by various cameras
- Maintain backward compatibility with standard RTMP clients
- Fix connection issues with PTZ cameras using chunk stream ID 4
This resolves compatibility issues with IP cameras that don't strictly follow
RTMP spec while maintaining full support for standard RTMP implementations.
Previously, cameras using non-standard chunk stream IDs would fail with
'unexpected chunk stream ID' errors. Now MediaMTX provides nginx-rtmp level
compatibility with real-world camera implementations."
* add tests
* entirely remove control chunk stream ID validation
---------
Co-authored-by: Hyesung.Kim <hyesung.kim@xcath.com >
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com >
2025-09-03 15:11:32 +02:00
Alessandro Ros and GitHub
a558c5681a
improve documentation ( #4918 )
2025-08-31 14:15:58 +02:00
bluenviron-bot and GitHub
9fce341fa2
bump hls.js to v1.6.11 ( #4898 )
2025-08-26 23:51:13 +02:00
Pooyan Khanjankhani and GitHub
3c8d78194c
refactor: remove duplicated http middleware ( #4894 )
2025-08-24 12:37:56 +02:00
bp0 and GitHub
fa6a20a5f9
hls, webrtc: Add disablepictureinpicture param ( #4883 )
...
ref: https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/video#disablepictureinpicture
2025-08-17 21:45:48 +02:00
bluenviron-bot and GitHub
9ab48ea480
bump hls.js to v1.6.10 ( #4877 )
2025-08-15 10:57:24 +02:00
alex9long and GitHub
262ce82d58
refactor: use the built-in max/min to simplify the code ( #4867 )
...
Signed-off-by: alex9long <alex9long@outlook.com >
2025-08-14 10:32:24 +02:00
Alessandro Ros and GitHub
c80220eb7c
webrtc: solve domains in webrtcAdditionalHosts on server-side ( #4817 ) ( #4866 )
2025-08-12 15:49:38 +02:00
Alessandro Ros and GitHub
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 and GitHub
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 and GitHub
89993951ca
fix arm32 / arm64 binaries ( #4863 )
2025-08-12 14:22:50 +02:00