Important: A newer version of Wowza Streaming Engine is available. For more information, see Latest software updates for Wowza Streaming Engine.
Version: Wowza Streaming Engine™ 4.8.5 build 20200616153358 released on June 17, 2020.
Java support: Wowza Streaming Engine 4.8.5 is built on Java 9 (OpenJDK Java SE JRE 9.0.4), but can be used with Java versions 9-12. For more information, see Manually install and troubleshoot Java on Wowza Streaming Engine.
Latest patch: Wowza Streaming Engine 4.8.5.05 build 20201006161917. See Patch updates to Wowza Streaming Engine 4.8.5 for more information.
Notes:
- For step-by-step instructions on how to update your Wowza Streaming Engine media server software, see Update your Wowza Streaming Engine installation.
- Docker, Google Cloud, AWS, and Azure images for Wowza Streaming Engine 4.8.5 are now available. See Cloud deployments for more information.
Contents
New features and functionality in Wowza Streaming Engine 4.8.5
Installation and upgrade considerations for Wowza Streaming Engine 4.8.5
Breaking changes in Wowza Streaming Engine 4.8.5
Detailed list of changes in Wowza Streaming Engine 4.8.5
Known issues in Wowza Streaming Engine 4.8.5
Patch updates to Wowza Streaming Engine 4.8.5
New features and functionality in Wowza Streaming Engine 4.8.5
Wowza Streaming Engine is a robust, customizable, and scalable media server software that powers reliable streaming of high-quality video and audio to any device, anywhere. Wowza Streaming Engine 4.8.5 contains several enhancements and fixes that help to improve the functionality of the media server software.
WebRTC updates
Wowza Streaming Engine 4.8.5 includes significant upgrades and fixes for WebRTC functionality. We added support for configuring WebRTC streaming in Wowza Streaming Engine Manager and made WebRTC hosted test pages available for faster learning and testing. Additionally, we improved the accuracy of RTCP feedback messages for adaptive encoding when publishing WebRTC to Wowza Streaming Engine, and we improved the stability of WebRTC session timeouts. We also updated FIR messages to default to a more reliable time-based scheme, which enables a more regular interval for accessing WebRTC streams via a keyframe. For more information about WebRTC and Wowza Streaming Engine, see the following the articles:
- Set up WebRTC streaming with Wowza Streaming Engine Manager
- Set up WebRTC streaming with Wowza Streaming Engine
- WebRTC workflows in Wowza Streaming Engine
- Ingest RTSP, SRT, or RTMP streams into Wowza Streaming Engine for playback with WebRTC
SRT improvements
Wowza Streaming Engine 4.8.5 offers enhanced support for Secure Reliable Transport (SRT). We now support SRT version 1.4, which provides increased reliability. Other improvements include a number of new and renamed properties for SRT MediaCaster ingest and SRT stream targets and fixes for outstanding issues. For more information on newly available SRT properties, see the following articles:
- Specify per-stream settings in Wowza Streaming Engine .stream files
- Use SRT to distribute live streams from Wowza Streaming Engine
Low Latency HLS enhancements
Wowza Streaming Engine 4.8.5 includes adjustments to the Low Latency HLS implementation to keep up-to-date with modifications to Apple’s preliminary protocol extension to the HLS spec. We've added support for the EXT-X-PRELOAD-HINT media playlist tag, removed the HTTP/2 push delivery mechanism, and made other minor changes.
Performance upgrades
With Wowza Streaming Engine 4.8.5, we've increased playback performance for connections over SSL/TLS, updated the default server performance tuning, made general WebRTC performance upgrades, and updated MediaCaster ingest performance.
Security improvements
In Wowza Streaming Engine 4.8.5, we've fixed Wowza Streaming Engine Manager security concerns related to CSRF, authenticated XSS, and remote authenticated authorization. We've also added support for additional security-related HTTP headers in request responses, and we've enabled stricter Wowza Streaming Engine file access permissions on Linux and macOS.
Installation and upgrade considerations for Wowza Streaming Engine 4.8.5
We've repackaged the version of OpenJDK Java SE JRE 9.0.4 available with the release of Wowza Streaming Engine 4.8.5 to address an issue that caused a memory leak in Wowza Streaming Engine Manager. To take advantage of this fix, use the custom packaged version of OpenJDK when upgrading to Wowza Streaming Engine 4.8.5 or later.
When using the Wowza Streaming Engine 4.8.5 installer to install a new instance of Wowza Streaming Engine on Windows, you may need to install additional dependencies in order to ingest SRT MediaCaster streams or use the generic SRT stream targets destination to publish an SRT stream. To address this, install the latest version of the Microsoft Visual C++ Redistributable for Visual Studio appropriate to your operating system. This is not an issue for pre-existing installations of Wowza Streaming Engine that are updated to Wowza Streaming Engine 4.8.5.
Breaking changes in Wowza Streaming Engine 4.8.5
If you're updating from a version of Wowza Streaming Engine earlier than 4.8.5, the following file and library changes break functionality if you don't take steps to address them.
Wowza Streaming Engine REST API breaking changes
The Wowza Streaming Engine REST API authentication method values 'none' and 'basic' are no longer compatible with using Wowza Streaming Engine Manager to control and manage the media server software. If you plan to use Wowza Streaming Engine Manager, use 'digest', 'digestfile', or 'remotehttp' authentication methods instead (location: [install-dir]/conf/Server.xml, <RestInterface>/<AuthenticationMethod>).
Wowza Streaming Engine built-in HTTP provider breaking changes
To enable security updates for Wowza Streaming Engine Manager, we removed two built-in HTTP providers: HTTPLiveStreamRecord and HTTPStreamManager. The Live Stream Record webpage (http://[wowza-ip-address]:8086/livestreamrecord) and the Stream Manager webpage (http://[wowza-ip-address]:8086/streammanager) are no longer available.
As a replacement for the Stream Manager HTTP provider and webpage, see Create and use .stream files in Wowza Streaming Engine. Alternatively, see Create and manage stream files by using the Wowza Streaming Engine REST API or Control Stream class streams dynamically with a Wowza Streaming Engine Java module. A compiled jar file with a customized version of the removed Stream Manager HTTP provider is available with instructions from Wowza support.
As a replacement for the Live Stream Record HTTP provider and webpage, see Create and manage stream recorders by using the Wowza Streaming Engine REST API or Record live streams in Wowza Streaming Engine. A compiled jar file with a customized version of the removed Live Stream Record HTTP provider is available with instructions from Wowza support.
Detailed list of changes in Wowza Streaming Engine 4.8.5
Changes since 4.8.0 release
- Improved the Wowza Streaming Engine updater script to implement stricter file access permissions on Linux and macOS.
- Fixed an issue with the RTPDePacketizerWrapperReChunkMPEGTS property that allowed non-MPEG-TS data to be manipulated.
- Updated the Restlet framework library to version 2.3.12.
- Fixed issue where "@" characters were incorrectly filtered from data saved to XML files using the Wowza Streaming Engine REST API.
- Fixed an issue where HTTP requests routed to HTTP Providers on HostPorts defined in VHost.xml would throw a ConcurrentModificationException.
- Fixed an issue with search functionality in Wowza Streaming Engine Java API reference documentation.
- Added support for the Connection HTTP header in HTTP providers.
- Added a new property (name: cupertinoCacheableSegments, location: [install-dir]/conf/[application name]/Application.xml, <Application>/<HTTPStreamer>/<Properties>, type: Boolean, default: false) to enable identical segment URLs inside each session media playlist to support caching of segments for live or live edge applications.
- Fixed an issue with returning incorrect H.265 video codec information with calls to get incoming streams using the Wowza Streaming Engine REST API (version 3).
- Fixed an issue that caused a null pointer exception when using the live-record StreamType and specifying a recording file format that is not supported, such as MP3.
- Removed the Wowza Player page from Wowza Streaming Engine Manager.
- Changed the loadBalanceHTTPOutputClasses property name to loadbalanceHTTPOutputClasses in the Dynamic Load Balancing AddOn 4.5 to fix an issue with output classes not loading.
WebRTC
- Fixed issue that caused WebRTC playback connections to ignore the maximumPlaybackConnections property for ModuleCoreSecurity.
- Improved the calculation for the jitter value sent in a receiver report for WebRTC MediaCaster ingest. The jitter value is now calculated according to IETF RFC 3550.
- Improved WebRTC publisher and player timeouts as well as resource deallocation.
- Added the ability to block publishing and playing of WebRTC streams when using the IMediaStreamNameAliasProvider3 Java API interface.
- Fixed issues with WebRTC session initiation for streams that used query parameters in their stream names.
- Added support for configuring WebRTC streaming for live applications in Wowza Streaming Engine Manager.
- Added support for enabling WebRTC for Virtual Host host ports in Wowza Streaming Engine Manager.
- Added support for negative acknowledgements (NACK) to make RTCP feedback messages more accurate, which aids in adaptive encoding and reduces packet loss when publishing WebRTC streams to Wowza Streaming Engine.
- Added support for a jitter buffer for WebRTC streaming that is capable of handling out of order and retransmitted packets. The jitter buffer can be enabled with the rtpDePacketizerWrapper property (location: [install-dir]/conf/[application name]/Application.xml, <Application>/<RTP>/<Properties>; value: com.wowza.wms.rtp.depacketizer.JitterBuffer).
- Added support for the following new properties:
- Added a new property (name: useNack; location: [install-dir]/conf/[application name]/Application.xml, <Application>/<RTP>/<Properties>; type: Boolean; default: false) to enable sending of NACK messages to publishing clients to allow for retransmission of lost packets. The jitter buffer must also be enabled for this property to work.
- Added a new property (name: jitterBufferDelay; location: [install-dir]/conf/[application name]/Application.xml, <Application>/<RTP>/<Properties>; type: integer; default: 500) to configure the delay added by the jitter buffer. The time, in milliseconds, allows for out-of-order and retransmitted packets to be played in order, provided they are received in time.
- Added a new property (name: jitterBufferDebug; location: [install-dir]/conf/[application name]/Application.xml, <Application>/<RTP>/<Properties>; type: Boolean; default: false) to debug information about retransmitted packets and whether they were retrieved in time.
- Added a new property (name: logPacketLoss; location: [install-dir]/conf/[application name]/Application.xml, <Application>/<RTP>/<Properties>; type: Boolean; default: false) to enable logging when packets are lost.
- Changed the default Full Intra Request (FIR) message scheme to be time based instead of frame based to enable a more regular interval for accessing WebRTC streams via a keyframe.
- Added support for the following new properties:
- Added a new property (name: webrtcFIRMessageScheme, location: [install-dir]/conf/[application name]/Application.xml, <Application>/<WebRTC>/<Properties>, type: string, default: time) that specifies the scheme for the FIR message interval.
- Added a new property (name: webrtcFIRMessageInterval, location: [install-dir]/conf/[application name]/Application.xml, <Application>/<WebRTC>/<Properties>, type: integer, default: 1000) that specifies the interval between FIR messages.
- Deprecated the following properties:
- webrtcKeyFrameType. Use the webrtcFIRMessageScheme property instead.
- webrtcKeyFrameTimeInterval. Use the webrtcFIRMessageInterval property instead.
- webrtcKeyFrameTimeIntervalThreshold. No replacement is needed.
- Added support for the following new properties:
- Fixed an issue with WebRTC streams sent over TCP not maintaining a high bitrate.
- Fixed an issue with the format of RTCP receiver reports by including an SDES packet containing a CNAME for WebRTC MediaCaster ingest.
- Removed Vorbis from the list of preferred audio codecs for WebRTC in Application.xml.
- Fixed an issue with the server failing to start up properly when a virtual host was configured to listen for WebRTC WebSocket connections on a HostPort that did not have SSL/TLS enabled.
- Fixed an issue with UDP sessions sometimes failing to close for WebRTC sessions due to a race condition.
RTP/RTSP
- Fixed an issue with RTSP streaming that caused a null pointer exception to occur when using a jitter buffer.
- Added support for IP address message filtering for UDP messages received within an RTSP or RTP/RTCP session. This filtering can eliminate stream cross-talk when a disconnected RTSP source continues to send UDP messages to the same ports after the ports have been reallocated to a new RTSP connection.
- Added a new property to enable IP address message filtering on RTSP streams (name: rtspCheckIpAddresses, type: Boolean, path: Root/Application/RTP, default: false).
- For applications that support RTSP sources that use different IP addresses for their RTSP and RTP/RTCP communications, IP address filtering for RTSP streams shouldn't be enabled. If it is enabled, all packets will be dropped.
- Updated the name of the property used to enable debug logging for RTSP streams (name: rtspDebugSession, path: Root/Application/RTP, type: Boolean, default: false). The property can also be used in a .stream file to affect only the steam associated with the file. This property replaces rtpDebugSession.
SRT
- Updated the SRT implementation to version 1.4 for increased reliability.
- Fixed an issue where the onStreamStop() callback for SRT sometimes had a null stream. There is always a stream object available when calling mediacaster.getStream().
- Fixed a memory leak that could be caused by disconnecting and reconnecting SRT MediaCaster streams.
- Made the following updates to .stream file properties for SRT MediaCaster ingest:
- Deprecated the following properties:
- srtDataTimeout. Use the streamTimeout parameter instead (name: streamTimeout; location: [install-dir]/conf/[application name]/Application.xml,
<Application>/<MediaCaster>/<Properties>; type: Integer). This prompts Wowza Streaming Engine to monitor the stream. If a break occurs in the stream that's longer than the streamTimeout value, in milliseconds, it resets the connection to the camera. - srtTrafficType. There is no replacement needed.
- SendBufferSize. There is no replacement needed.
- SendBufferSizeUDP. There is no replacement needed.
- srtDataTimeout. Use the streamTimeout parameter instead (name: streamTimeout; location: [install-dir]/conf/[application name]/Application.xml,
- Renamed the following properties:
- The srtLatency property (name: srtLatency; location: [install-dir]/conf/[application name]/Application.xml, <Application>/<MediaCaster>/<Properties>; type: integer; default: 400) replaces srtRecoveryBuffer and specifies the latency, in milliseconds. This is the time it takes for a UDP packet to be sent and delivered, including the time required to account for sending and retransmitting lost packets. The srtLatency value should be 2.5 times the round trip time (RTT). When peers set different latency values, the maximum of the two values applies to both peers.
- The srtReceiveBufferSize property (name: srtReceiveBufferSize; location: [install-dir]/conf/[application name]/Application.xml, <Application>/<MediaCaster>/<Properties>; type: integer; default: 12058624) replaces receiveBufferSize and specifies the receive buffer size, in bytes.
- The srtReceiveBufferSizeUDP property (name: srtReceiveBufferSizeUDP; location: [install-dir]/conf/[application name]/Application.xml, <Application>/<MediaCaster>/<Properties>; type: integer; default: 12288000) replaces receiveBufferSizeUDP and specifies the receive buffer size for UDP connections, in bytes.
- The srtTimestampBasedDeliveryMode property (name: srtTimestampBasedDeliveryMode; location: [install-dir]/conf/[application name]/Application.xml, <Application>/<MediaCaster>/<Properties>; type: Boolean; default: true) replaces srtTimeMode and specifies whether the SRT time-stamp based packet delivery mode is enabled.
- The srtTooLatePacketDrop property (name: srtTooLatePacketDrop; location: [install-dir]/conf/[application name]/Application.xml, <Application>/<MediaCaster>/<Properties>; type: Boolean; default: true) replaces srtLatePacketDrop and specifies whether all packets that are received late are dropped.
- Added support for the following new properties:
- Added a new property (name: srtDebug; location: [install-dir]/conf/[application name]/Application.xml, <Application>/<MediaCaster>/<Properties>; type: Boolean; default: false) that specifies whether to write additional details to log files for SRT workflow debugging.
- Added a new property (name: srtFlightFlagSize; location: [install-dir]/conf/[application name]/Application.xml, <Application>/<MediaCaster>/<Properties>; type: integer; default: 25600) that specifies the maximum number of bytes that can be sent without being acknowledged.
- Added a new property (name: srtInputBandwidth; location: [install-dir]/conf/[application name]/Application.xml, <Application>/<MediaCaster>/<Properties>; type: integer; default: 0) that works with srtOverheadBandwidth to specificy the maximum bandwidth, only if srtMaximumBandwidth is set to 0. Uses this formula: max bandwidth = input bandwidth * (100 + overhead bandwidth)/100. If srtInputBandwidth is set to 0, then input bandwidth is estimated from the rate of input during transmission.
- Added a new property (name: srtKeyAnnounce; location: [install-dir]/conf/[application name]/Application.xml, <Application>/<MediaCaster>/<Properties>; type: integer; default: 0x1000) that specifies the interval between when a new encryption key is sent and when switchover occurs. This value also applies to the subsequent interval between when switchover occurs and when the old encryption key is decommissioned.
- Added a new property (name: srtKeyRefreshRate; location: [install-dir]/conf/[application name]/Application.xml, <Application>/<MediaCaster>/<Properties>; type: integer; default: 0x1000000) that specifies the number of packets to be transmitted with an encryption key before switching to a new key.
- Added a new property (name: srtMaximumBandwidth; location: [install-dir]/conf/[application name]/Application.xml, <Application>/<MediaCaster>/<Properties>; type: integer; default: -1) that specifies the maximum bandwidth, in bytes per second, that the connection can use. Valid values are -1 (infinite), 0 (calculated from srtInputBandwidth and srtOverheadBandwidth), and integers greater than 0 for an absolute limit in bytes per second.
- Added a new property (name: srtMaximumSegmentSize; location: [install-dir]/conf/[application name]/Application.xml, <Application>/<MediaCaster>/<Properties>; type: integer; default: 1500) that specifies the maximum size for a unit of transfer data (MTU), in bytes. For MPEG-TS streams, use the default.
- Added a new property (name: srtOverheadBandwidth; location: [install-dir]/conf/[application name]/Application.xml, <Application>/<MediaCaster>/<Properties>; type: integer; default: 25) that works with srtInputBandwidth to specificy the maximum bandwidth, only if srtMaximumBandwidth is set to 0. Uses this formula: max bandwidth = input bandwidth * (100 + overhead bandwidth)/100.
- Added a new property (name: srtPacketLossTolerance; location: [install-dir]/conf/[application name]/Application.xml, <Application>/<MediaCaster>/<Properties>; type: integer; default: 0) that specifies the maximum packet reorder tolerance, which is the number of packets to receive after loss before sending a loss report. When set to 0, the loss report is sent immediately when there is a gap in a sequence.
- Added a new property (name: srtReconnectWaitTime; location: [install-dir]/conf/[application name]/Application.xml, <Application>/<MediaCaster>/<Properties>; type: integer; default: 3000) that specifies, in milliseconds, how often the listener looks for an incoming stream. If a source drops, and the immediate reconnection attempt fails, the system waits this amount of time before looking for an incoming stream again.
- Added a new property (name: srtSendNakReports; location: [install-dir]/conf/[application name]/Application.xml, <Application>/<MediaCaster>/<Properties>; type: Boolean; default: true) that enables the receiver to send periodic NAK (Negative Acknowledgment) packet reports.
- Added a new property (name: srtTimesToPrintStats; location: [install-dir]/conf/[application name]/Application.xml, <Application>/<MediaCaster>/<Properties>; type: integer; default: 0) that specifies how many times stream statistics are written into the log after the stream starts. Statistics are logged each second. Set to -1 to log statistics indefinitely.
- Deprecated the following properties:
- Previously added SRT properties for SRT MediaCaster ingest can now be configured in Wowza Streaming Engine Manager.
- Made the following updates to SRT Stream Target properties, which can be configured in Wowza Streaming Engine Manager or the PushPublishMap.txt file:
- Renamed the following property:
- The srtLatency property (name: srtLatency, type: Integer, default: 400) replaces Recovery Buffer and specifies the latency, in milliseconds. This is the time it takes for a UDP packet to be sent and delivered, including the time required to account for sending and retransmitting lost packets. The srtLatency value should be 2.5 times the round trip time (RTT). When peers set different latency values, the maximum of the two values applies to both peers.
- Added support for the following new properties:
- Added a new property (name: srtConnectTimeout, type: integer, default: 3000) that specifies how long Wowza Streaming Engine waits for a target to respond to a connection request.
- Added a new property (name: srtFlightFlagSize, type: integer, default: 25600) that specifies the maximum number of bytes that can be sent without being acknowledged.
- Added a new property (name: srtInputBandwidth, type: integer, default: 0) that works with srtOverheadBandwidth to specify the maximum bandwidth, only if srtMaximumBandwidth is set to 0. Uses this formula: max bandwidth = input bandwidth * (100 + overhead bandwidth)/100. If srtInputBandwidth is set to 0, then input bandwidth is estimated from the rate of input during transmission.
- Added a new property (name: srtKeyAnnounce, type: integer, default: 0x1000) that specifies the interval between when a new encryption key is sent and when switchover occurs. This value also applies to the subsequent interval between when switchover occurs and when the old encryption key is decommissioned.
- Added a new property (name: srtKeyRefreshRate, type: integer, default: 0x1000000) that specifies the number of packets to be transmitted with an encryption key before switching to a new key.
- Added a new property (name: srtMaximumBandwidth, type: integer, default: -1) that specifies the maximum bandwidth, in bytes per second, that the connection can use. Valid values are -1 (infinite), 0 (calculated from srtInputBandwidth and srtOverheadBandwidth), and integers greater than 0 for an absolute limit in bytes per second.
- Added a new property (name: srtMaximumSegmentSize, type: integer, default: 1500) that specifies the maximum size for a unit of transfer data (MTU), in bytes. For MPEG-TS streams, use the default.
- Added a new property (name: srtOverheadBandwidth, type: integer, default: 25) that works with srtInputBandwidth to specify the maximum bandwidth, only if srtMaximumBandwidth is set to 0. Uses this formula: max bandwidth = input bandwidth * (100 + overhead bandwidth)/100.
- Added a new property (name: srtPeerIdleTimeout, type: integer, default: 5000) that specifies, in milliseconds, the peer idle timeout, or the maximum time of silence heard from a peer.
- Added a new property (name: srtStreamId, type: string, default: none) that populates a string sent on the socket prior to connecting. Length is a maximum of 512 characters. If using a stream ID, a peer connection must have a minimum SRT version of 1.3.
- Added a new property (name: srtSendBufferSize, type: integer, default: 12058624) that specifies the send buffer size, in bytes.
- Added a new property (name: srtSendBufferSizeUDP, type: integer, default: 65536) that specifies the send buffer size for UDP connections, in bytes.
- Added a new property (name: srtTimesToPrintStats, type: integer, default: 0) that specifies how many times stream statistics are written into the log after the stream starts. Statistics are logged each second. Set to -1 to log statistics indefinitely.
- Renamed the following property:
HLS, Low-Latency HLS, and CMAF
- Fixed an issue with Low Latency HLS that caused player requests for partial segments associated with completed media segments to fail with 404 resource not found errors.
- Removed support for the HTTP/2 push delivery mechanism.
- Added support for the EXT-X-PRELOAD-HINT media playlist tag.
- Added support for blocking partial segment requests based on EXT-X-PRELOAD-HINT tags.
- Added support for setting PART-HOLD-BACK in all media playlists in a multi-rendition, adaptive-bitrate playback session to at least three times the maximum PART-TARGET value across the renditions.
MPEG-DASH
- Fixed an issue with the Wowza Streaming Engine Java API that caused the LiveStreamPacketizer to fail to set a value for the mpegdashSegmentDurationTarget property.
- Fixed an issue with CMAF-packetized MPEG-DASH live stream encryption using key files. Previously, including both mpegdashstreaming-cenc and cmafstreaming-cenc entries in a key file could result in the generation of an invalid MPD file.
- Added millisecond precision to dates for the availibilityStartTime and publishTime properties in MPEG-DASH MPD manifest files for live applications.
- Fixed an issue with the sample duration value under MP4 track headers that was causing playback issues for MPEG-DASH VOD streams on ExoPlayer players in Android apps.
- Fixed an issue with increasing heap memory with MPEG-DASH stream targets when Playlist Count (http.playlistCount) was set to a high value.
- Fixed an issue with the mpegdashSegmentDurationTarget property not being read correctly for MPEG-DASH VOD streams.
- Fixed an issue with setting the Akamai Event Name and Adaptive Group properties and enabling relative playlists (http.relativePlaylists) for MPEG-DASH Akamai stream targets that resulted in an incorrect BaseURL value in MPEG-DASH MPD manifest files.
- Fixed an issue with setting the Akamai Event Name property, setting the Destination Server property to redundant, and enabling relative playlists (http.relativePlaylists) for MPEG-DASH Akamai stream targets that resulted in an incorrect primary BaseURL value in MPEG-DASH MPD manifest files.
Live Stream Encoding, Decoding, Transcoding, and Transrating
- Fixed a performance regression when using NVIDIA hardware accelerated decoding on multiple graphics cards that lead to dropped frames before hardware limits were reached.
- Fixed an issue that created extra transcoding sessions and didn't clean them up properly.
- Fixed an issue with RTMP streams that use H.264 Annex B start codes not processing.
- Fixed an issue with decoded frame sizes not updating correctly when accessed through the video decoder API in the Wowza Streaming Engine Java API.
- Fixed an issue that caused transcoder sessions to not close down properly when quickly republishing a stream.
Stream Targets (Push Publishing)
- Fixed an issue that caused the creation of duplicate Group Manager, Wowza Streaming Cloud, and Wowza CDN stream target sessions when a new target was added, an existing target was modified or restarted, or targets were enabled.
- Fixed an issue with HLS-based stream targets where a restart of a stream's Cupertino packetizer due to source stream issues resulted in associated stream targets failing to push the stream.
Live Stream DVR Playback (Wowza nDVR)
- Added a new interface, IDvrConverterActionNotify, for the Wowza Streaming Engine Java API. This interface invokes onConversionComplete after DVR conversion finishes, sending a notification to registered onConversionComplete listeners with the DVR store handle and the converted file’s name.
- Fixed an issue with MPEG-DASH nDVR functionality that caused video duration to decrease during playback.
- Fixed an issue with the dvrPacketSortTime property. When dvrPacketSortTime was set to add latency to DVR playback, additional unnecessary log messages appeared in the log file. With updated behavior, logs show a single entry when a problem arises in the DVR stream.
Performance improvements
- Improved performance of players connecting over SSL/TLS for TCP streaming.
- Updated the MediaCaster transport handler to use the VHost transport thread pool to increase throughput when many MediaCaster streams are used.
- Increased the defaults for Java heap size and several thread counts when using auto-tuning to better match modern hardware capabilities and increase server throughput.
- Updated the Wowza Streaming Engine Manager limits for Java heap size and thread counts to better match modern hardware capabilities.
Security improvements
- Added support for the following security-related HTTP headers in request responses with Content-Type: text/html:
- Content-Security-Policy: default-src 'self'
- X-Frame-Options: deny
- X-XSS-Protection: 1; mode=block
- X-Content-Type-Options: nosniff
- Referrer-Policy: no-referrer
- Upgraded the jQuery library to version 3.5.1.
- Fixed several issues with authenticated XSS security vulnerabilities in Wowza Streaming Engine Manager.
- Fixed several issues with CSRF security vulnerabilities in Wowza Streaming Engine Manager.
- Fixed an issue with a remote authenticated authorization bypass security vulnerability that could allow an unauthorized user to make changes in Wowza Streaming Engine Manager.
Known issues in Wowza Streaming Engine 4.8.5
For a detailed list of known issues that are still in effect, see the Wowza Streaming Engine known issues.
Patch updates to Wowza Streaming Engine 4.8.5
Between production releases, Wowza occasionally provides patches to fix bugs or regressions in the latest production release, which can be deployed in production environments and workflows for long-term stability.
Note: AWS, Docker, Google, and Azure cloud platform images use Wowza Streaming Engine 4.8.5 and do not include patch updates.
Wowza Streaming Engine 4.8.5.05
The latest patch release with updates to Wowza Streaming Engine 4.8.5 is available as Wowza Streaming Engine 4.8.5.05 build 20201006161917 on our Downloads webpage or from the Downloads tab of My Account.
Note: Wowza Streaming Engine 4.8.5.05 includes all of the changes released with the previous patch, Wowza Streaming Engine 4.8.5.01.
Changes since Wowza Streaming Engine 4.8.5.01
- Made the following improvements for Low-Latency HLS (LL-HLS):
- Fixed an issue where EXT-X-PROGRAM-DATE-TIME was reporting the segment end time instead of segment start time.
- Fixed an issue that caused a null pointer exception when adding rendition reports to media playlists.
- Fixed an issue with EXT-X-PROGRAM-DATE-TIME tags being added only after the complete segment was created.
- Fixed an issue with LL-HLS streaming that caused player requests for the last partial segment to fail with 500 internal server errors.
- Fixed an issue with HTTP/2 implementation and connection window size doubling.
- Fixed an issue that caused PART-HOLD-BACK values to not account for the maximum part target duration from all renditions.
- Fixed an issue that caused the cupertinoPartHoldBack property to be ignored.
- Fixed an issue with partial segments being removed earlier than three Target Durations from the end of the playlist for LL-HLS streams, causing playback issues.
- Fixed an issue with timing out and returning HTTP 503 errors earlier than three Target Durations after blocking playlist reloads is requested with the _HLS_part query parameter.
- Added support for PING messages over HTTP/2.
- Changed the default values for the following LL-HLS and CMAF packetizer properties:
- cmafLLChunkingScheme – byDuration
- cmafLLChunkDurationTargetVideo – 1000 (ms)
- cmafLLChunkDurationTargetAudio – 1000 (ms)
- cmafLLChunkFrameCountTargetVideo – 30
- cmafLLChunkFrameCountTargetAudio – 47
- cmafSegmentDurationTarget – 6000 (ms)
- Fixed an issue with error parsing of RTCP sender reports.
- Fixed an issue with starting nDVR recordings using the Wowza Streaming Engine Java API not working due to a stream timeout.
- Fixed an issue with a null pointer exception sometimes occurring when stopping a PushPublish session.
- Fixed an issue with erroneously logging "Stream index not found" when stopping SRT MediaCaster streams.
- Added exception handling and logging for methods in Java modules.
- Removed the [install-dir]/examples directory.
- Notarized and stapled the macOS installer to meet basic macOS security requirements.
- Updated the Windows installer to have a valid installer certificate.
Wowza Streaming Engine 4.8.5.01
The previous patch with updates to Wowza Streaming Engine 4.8.5 was Wowza Streaming Engine 4.8.5.01 build 20200724152835.
Changes since Wowza Streaming Engine 4.8.5
- Fixed an issue with incorrect logging when playing MPEG-DASH streams using secure tokens.
- Fixed an issue with the nDVR converter sometimes creating an audio-only MP4 file when audio and video content is in the nDVR store.
- Fixed an issue with parsing invalid Request-Lines in HTTP/1.1 request messages.
- Fixed an issue with shutting down RTSP streams that could cause a deadlock.
- Decreased the log level for missing Quick Sync system libraries from WARN to INFO.
- Modified the Wowza Streaming Engine updaters for Linux and macOS to only update permissions for the following directories: [install-dir]/lib, [install-dir]/manager/lib, [install-dir]/bin, [install-dir]/manager/bin, [install-dir]/scripts.
- Fixed an issue with incorrectly deserializing RTCP packets with a zero length resulting in repeated logging messages.
- Fixed an issue with RTCP handlers mishandling RTP packets when listening for RTP multicast streams.
- Added handling of invalid URLs for HTTP requests when attempting to resolve MIME types.
- Fixed an issue with the HTTPProviderSimpleWebServer returning the incorrect MIME type on Windows.
- Fixed an issue with playback of MPEG-DASH adaptive bitrate streams failing due to the play alias resolving incorrectly.