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.7.8 build 20191105123929 released on November 5, 2019.
Note: For step-by-step instructions on how to update your Wowza Streaming Engine media server software, see Update your Wowza Streaming Engine installation.
New features and functionality in Wowza Streaming Engine 4.7.8
Wowza Streaming Engine is 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.7.8 contains several fixes and enhancements that help to improve the functionality of the media server software.
Support for Low-Latency HLS
Wowza Streaming Engine can now produce Low-Latency HLS live streams. Low-Latency HLS streams conform to Apple’s preliminary protocol extension to the HLS spec.
Note: The Low-latency HLS live streams produced by Wowza Streaming Engine version 4.7.8 conform to the version of this Apple specification published on July 25, 2019. This implemention does not support skip tags or renditions reports.
Wowza Streaming Engine generates Low-Latency HLS streams using the CMAF packetizer, which, in addition to generating CMAF segments, also generates smaller units of content called chunks. These CMAF-compliant chunks double as partial segments for Low-Latency HLS streaming. As a result, you can use the CMAF packetizer to generate Low-Latency HLS streams that use the fMP4 container format and are delivered to players over HTTP/2.
For more information about Low-Latency HLS, see our technical article Deliver Apple Low-Latency HLS live streams using Wowza Streaming Engine.
You can also find information about both CMAF and Low-Latency HLS in the article Understanding protocols and formats supported by Wowza Streaming Engine.
Support for CMAF
Wowza Streaming Engine now also supports Common Media Application Format (CMAF), the open, extensible standard that enables efficient streaming using the HLS and MPEG-DASH protocols. Wowza Streaming Engine can deliver both single and adaptive bitrate HLS and MPEG-DASH live streams using the single new cmafstreamingpacketizer, which wraps stream segments in the fMP4 container format and delivers streams over HTTP/1.1. For more information about using CMAF in Wowza Streaming Engine, see any of these technical articles:
- About CMAF workflows in Wowza Streaming Engine
- Stream using CMAF with Wowza Streaming Engine
- Configure CMAF live streaming packetization in Wowza Streaming Engine
- Create adaptive bitrate CMAF streams using Wowza Streaming Engine
- Stream using a CMAF live stream repeater in Wowza Streaming Engine
- Deliver HLS live streams using CMAF and HEVC/H.265 with Wowza Streaming Engine
Breaking changes in Wowza Streaming Engine 4.7.8
If you're updating from an early version of Wowza Streaming Engine, the following file and library changes break functionality if you don't take steps to address them.
Update to Java 9
Wowza Streaming Engine 4.7.8 and later is built on Java 9 (OpenJDK Java SE JRE 9.0.4) and supports Java versions 9 - 12. Earlier versions of Java aren't supported.
Important notes about changing the Java version:
- Previous versions of Wowza Streaming Engine media server software were built on Java 8. If you're updating an earlier installation of Wowza Streaming Engine to version 4.7.8 or later, you must install OpenJDK Java SE JRE 9.0.4 before running the Wowza Streaming Engine updater. For your convenience, we've provided the OpenJDK Java SE JRE 9.0.4 files as a zip on the Downloads tab of your Wowza account.
- With the release of Wowza Streaming Engine 4.8.5, we've repackaged the available version of OpenJDK Java SE JRE 9.0.4 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.
- If your Wowza Streaming Engine workflow uses custom modules or plugins, we recommend that you test them with Wowza Streaming Engine 4.7.8 or later in a non-production environment prior to updating your media server software. The following Java modules are included:
- jdk.unsupported (available with Wowza Streaming Engine 4.8.5 and later)
- java.scripting (available with Wowza Streaming Engine 4.8.5 and later)
For more information, see Manually install and troubleshoot Java on Wowza Streaming Engine.
Due to security concerns, Wowza Streaming Engine 4.7.8 discontinued the use of the Winstone servlet container in Wowza Streaming Engine Manager. Instead, Wowza Streaming Engine Manager 4.7.8 and later uses Apache Tomcat 9.0 as the servlet container. The winstone.properties file has been replaced with tomcat.properties; the content of the files is nearly identical, but the name has changed. For more information, see Connect to Wowza Streaming Engine Manager over HTTPS.
Transcoder doesn't work in Wowza Streaming Engine 4.7.8 on CentOS 6
The Transcoder feature in Wowza Streaming Engine 4.7.8 requires GNU C Library (glibc) 2.17 or later. CentOS 6 doesn't support this minimum version of glibc. We recommend updating to CentOS 7 or using a different operating system if your workflow requires the Transcoder feature.
Detailed list of changes in Wowza Streaming Engine 4.7.8
Changes since 4.7.7.01 release
- Updated the BouncyCastle version to bcprov-jdkon-160.jar to get the latest security updates
- Changed the download link in the "Update" dialogue to go directly to the download and added a link to the release notes
- Fixed an issue with the thumbnailer that caused artifacts in the thumbnail image if the frame being thumbnailed was corrupted in some way
- Fixed an issue where thumbnails generated using the ThumbnailsUtil API could generate thumbnails from multiple different input streams
- Added a new property (name: transcoderThumbnailerReuseSession, type: Boolean, location: VHost.xml) that, when set to the default value (true), results in the transcoder using a pool of thumbnail encoders. Resources are cleared between each request, but may be shared between streams. If false, the transcoder uses a new thumbnail encoder for each thumbnail request which may result in a degredation of performance under heavy load
- Added support for HTTP/2 over TLS enabled host ports through TLS Application-Layer Protocol Negotiation
- Added support for mapping domain to keystores for SSL certificates on WebRTC
- Replaced Winstone with Apache Tomcat 9.0 as the servlet container in Wowza Streaming Engine Manager
- Replaced Oracle Java SE JRE 1.8.0_77 with OpenJDK Java SE JRE 9.0.4
Stream Targets (Push Publishing)
- Fixed an issue where restarting an Akamai HLS (cupertino) stream target also restarted the chunk IDs the target assigns to the chunks it pushes, resulting in chunks being pushed with the same chunk IDs as those previously pushed
- Fixed an issue with cupertino stream targets that caused an incorrect EXT-X-MEDIA-SEQUENCE tag value to be reported after a live packetizer restart or after a stream restart with http.playlistAcrossSessions:true defined for the target
- Fixed the frequency of a Wowza Streaming Cloud REST API call by Wowza CDN stream targets
- Fixed an issue with Akamai HLS/DASH/HDS stream target where an exception occured if both the http.playlistAcrossSessions target property was set true and destinationServer (or legacy akamai.destinationServer) was set to "redundant"
Live Stream Encoding, Transcoding, and Transrating
- Changed the Dolby codec description for E-AC-3 in HLS master playlists from "e-ac-3" to "ec-3"
Live Stream DVR Playback (Wowza nDVR)
- Added a new live stream packet sorter to resolve out-of-order packets within the audio or video track.
- The new sorter, com.wowza.wms.stream.live.LiveReceiverPacketSorter2, is enabled by default for DVR recording when sorting is enabled via the dvrPacketSortTime property
- Added a new DVR property (dvrPacketSorterClass) to specify which packet sorter should be used (com.wowza.wms.stream.live.LiveReceiverPacketSorter2 or com.wowza.wms.stream.live.LiveReceiverPacketSorter)
- Now a custom packet sorter that implements the ILivePacketSorter interface can be provided
- Added the srtDataTimeout SRT stream file parameter to enable you to specify how long to wait before closing an SRT socket connection when data is no longer being received. The srtDataTimeout parameter can be configured in Wowza Streaming Engine Manager or by editing the .xml files directly
- Fixed an issue where using a custom chunk ID handler for MPEG-DASH live streaming resulted in an error and failed playback
- Improved handling of application restarts while MPEG-DASH DVR playback sessions are in progress, especially HTTP origin mode
HLS, Low-Latency HLS , and CMAF
- Enabled EXT-X-DISCONTINUITY and EXT-X-DISCONTINUITY-SEQUENCE tags by default. Removed the cupertinoEnableDiscontinuity and cupertinoEnableDiscontinuitySeq properties
- Added the EXT-X-DISCONTINUITY tag when stream mode changes
- Fixed an issue with HLS HE-AAC (v1 & v2) playback and removed the detectAACExtension server property because it's no longer needed
- Added support for CMAF packaging for DASH playback
- Added support for CMAF packaging for HLS playback
- Added the following features to support Apple's preliminary protocol extension for Low-Latency HLS (Preliminary Specification) with CMAF
- Added support for generation of CMAF partial segments
- Added support for blocking playlist reloads for segments and partial segments
- Added support for the EXT-X-SERVER-CONTROL tag
- Added support for push promise, partial segment, and segment playlist request query parameters, as defined in the specification