Repository navigation
Releases
Releases Β· Red5/red5-server
Red5 Server 2.0.53
Full Changelog: v2.0.52...v2.0.53
Red5 Server 2.2.0
Changes since 2.0.52
- JDK 25 is now the baseline: compiler release and enforcer require Java 25; Maven compiler and surefire plugins updated; junit, httpclient and httpcore pinned
- Launch scripts: dropped options removed or deprecated in current JDKs (-Xverify:none, -noverify, UseBiasedLocking, UseStringCache); G1GC replaces ZGC in the Windows and daemon scripts; debug scripts use -agentlib:jdwp
- Commons Daemon 1.6.1: jar version is now filtered from the pom into the init script and Windows installer; install-service.bat fixed for the JDK 9+ layout (no jre directory); systemd unit is Type=forking; service README and jsvc notes refreshed
- Servlet module builds again and is part of the reactor; it is not yet included in the server distribution
- Javadoc added for previously undocumented public members
- Docker image moves to eclipse-temurin 25 (Red5/docker)
Known issues
- RTMPT requires org.red5.server.net.rtmpt.RTMPTServlet from the servlet module, which is not packaged in the server distribution
- Windows service install, the systemd unit and jsvc 1.6.1 against JDK 25 have not been exercised
Red5 Server 2.0.52
Changes since 2.0.51
- Tomcat bumped to 11.0.27
- WsRemoteEndpointImplServer adapted to the Tomcat 11.0.27 WsRemoteEndpointImplBase.doWrite signature (explicit blocking flag); async websocket writes remain non-blocking
Known test status
- Full suite: SharedObjectTest.testAttributeBlastingWithPrimitive and PublisherConnectLoadTest.testPublishers fail (both also fail on 2.0.51)
- RTMPSClientTrustTest failed once in the full suite run and passes when run alone; under review
Red5 Server 2.0.51
Red5 Server 2.0.51
Changes since 2.0.50:
- MediaBunny: fMP4 init segment and fragment builders are now inlined in the server module (org.red5.server.net.mediabunny.fmp4). The red5-moq-pkgr dependency is removed. Output bytes are unchanged; golden-value tests guard the wire format.
- Service: tests for service methods with Object and Object[] parameters.
- AMF interop and Enhanced RTMP test coverage (from 2.0.50 branch work carried forward).
- Javadoc: primitive types written as {@code} rather than {@link} so javadoc:jar builds.
2.0.50 Release
Highlights
- Service method lookup (#500): fixes
argument type mismatcherrors when a call with a single map argument, such as theNetStream.Play.*status objects sent as anonymous objects since 2.0.49, targets a service with overloaded methods.- A lone
Objectparameter now accepts any argument, soonStatus(Object)is selected amongonStatus(Object[]),onStatus(Object)andonStatus(Status). - A method whose only parameter is
Object[]receives the call arguments as one array. An argument that already is an array of the parameter type is passed as is. - A leading
IConnectionparameter still receives the connection.
- A lone
- Build:
red5-moq-pkgris pinned to 1.3.11 (was the open range[1.3.9,)), which restores the POM after the property was dropped.- BouncyCastle 1.86.
- Javadoc builds again: primitive types are written as
{@code}instead of{@link}, which had failedjavadoc:jaron red5-io.
Full Changelog: v2.0.49...v2.0.50
2.0.49 Release
Highlights
- Spec-compliant AMF0/AMF3 (#415, #497, #498):
- The codecs are cross-checked against Mini-AMF 0.9.1 and Apache BlazeDS 4.7.3, with golden test vectors from both.
- Fixed: reference handling, the AMF0-to-AMF3 switch scope, Vector and Dictionary decoding, the Vector encoders, XML documents and string length limits.
- Fixed: Flex shared objects with AMF3 encoding, Flex message parameters, and status objects on AMF3 connections.
- RTMP:
- WebSocket:
- Resource limits (#488, #494, #496):
- Recording size, duration and free-space limits, including append mode.
- Per-application recording budgets, principal quotas and an opt-in retention policy.
- Shared-object count, size, memory and disk budgets, and idle eviction of persistent shared objects.
- MediaBunny limits per application, plus a per-address cap.
- Fixed: a recording writer thread leak.
- TLS: TomcatConnector accepts PEM certificate and key files (#487).
Upgrade notes
- WebSocket origins (#495): browser pages served from a different origin than Red5 need their origin in the
allowedOriginscontext-param. Reverse proxies must passHostorX-Forwarded-Host. SetcrossOriginPolicy=falseto restore the old behavior. - AMF wire changes:
- AMF0 dates are written with time-zone 0.
- AMF0 XML documents carry a U32 length.
Vector<Number>andVector<Object>are prefixed with the AMF3 switch marker. Older Red5 peers that sent them without it no longer decode.- Status and error objects on AMF3 are anonymous objects with the same members as AMF0.
- Connect
_result: the properties object carries fmsVer (nowRED5/2,0,49,0), capabilities and the E-RTMP keys (capsEx, previouslyCapsEx). The information object always includesobjectEncoding. - Data messages on stream 0: a message named
on*is delivered as a call instead of being dropped. The server no longer answers a peer's data message with_result. - New limits are off by default. See
red5.properties(fileconsumer.*,recording.app.max.bytes,so.*) and the commented examples in the live webapp. The one exception isso.max.name.depth, which defaults to 16.
Full Changelog: v2.0.47...v2.0.49
2.0.47 Release
2.0.46 Release
What's Changed
Full Changelog: v2.0.45...v2.0.46
2.0.45 Release
What's Changed
- Bump org.springframework:spring-web from 6.2.18 to 6.2.19 by @dependabot[bot] in #451
- Bump org.springframework:spring-webmvc from 6.2.18 to 6.2.19 by @dependabot[bot] in #449
- Bump org.springframework:spring-core from 6.2.18 to 6.2.19 by @dependabot[bot] in #450
- Remove cleared client references immediately by @cragkhit in #448
- Fix/issue batch 2.0.42 by @mondain in #482
- Make sure to clean up scopes, even when the request exits before any connection/listener joins [AUTO-724] by @nateroe in #483
- Bug/red5dev 2425 by @nateroe in #484
New Contributors
Full Changelog: v2.0.44...v2.0.45