New Features and Functionality in Wowza Streaming Engine 4.7.5
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.5 contains several fixes and enhancements that help to improve the functionality of the media server software.
Facebook Live Stream Target enhancements
The Stream Targets feature in Wowza Streaming Engine enables you to send live streams to content delivery networks (CDNs), streaming servers, streaming services, and multicast networks for distributed delivery. The destinations distribute your live stream, enabling you to scale your Streaming Engine implementation, computing resources, and delivery options for a variety of scenarios. One such destination is Facebook Live. Wowza Streaming Engine 4.7.5 adds several enhancements to Facebook Live stream targets to improve functionality, including fixing a rate-limiting issue that sometimes caused the stream target to fail. For more information, see How to stream to Facebook Live using Wowza Streaming Engine.
WebRTC preview enhancements
Wowza Streaming Engine supports WebRTC streaming as a public preview AddOn. Wowza Streaming Engine 4.7.5 addresses some previously known issues and limitations, including improved support for playing WebRTC streams in the Google Chrome and Mozilla Firefox browsers. Some issues with UDP connections have also been fixed. For more information, see How to use WebRTC with Wowza Streaming Engine.
Detailed list of changes in Wowza Streaming Engine 4.7.5
Changes since 4.7.4 release
- Updated HTTP range requests to return code 206 even when returning a full response. VHost/Properties httpRangeCodeOverride (Boolean, default is false)
- Added support for 32-bit timecode wrapping from non-64-bit compliant streams
- Updated the update tool to correctly check for Java 7 and prevent incompatible updates
- Updated CORS to allow dynamic responses based on the CORS request. By default this is disabled.
- Application/HTTPStreamer/Properties [httptype]CORSDynamicEnabled (Boolean, default is false)
- Application/HTTPStreamer/Properties [httptype]CORSUseHostname (Boolean, default is false)
- Updated MPEG-TS non-aligned PES packet processing to better handle small packets
Stream Targets (Push Publishing)
- Fixed the Wowza Streaming Cloud stream target so that it generates the correct RTMP stream name when pushing to a Live Stream transcoder in the Wowza Streaming Cloud service
- Facebook stream target updates:
- Replaced Facebook degub_token API calls with calls that are less sensitive to rate limiting
- Fixed bug where reusing a Facebook stream target would fail if the previous video post created through that stream target had been deleted
- Increased default Facebook API read/write timeout to 6 seconds and added properties to allow modification of the default values.
- PushPublishMap.txt file: facebook.connectionTimeout and facebook.readWriteTimeout
- Application.Properties: pushPublishFacebookConnectionTimeout (Integer, default is 1000 milliseconds) and pushPublishFacebookReadWriteTimeout (Integer, default is 6000 milliseconds)
- Updated Wowza Streaming Engine Manager Stream Targets to correctly show MPEG-DASH stream targets with Akamai
- Fixed Wowza Streaming Engine Manager port validation for Stream Target entries
- Fixed PushPublishCupertino class (used by Akamai HLS stream targets) so that it collects chunks only for the rendition(s) specified in the target (audio-only, video-only, or a/v), avoiding race conditions that can cause chunk misses
Live Stream DVR Playback (Wowza nDVR)
- Added Application/DVR/Properties dvrCupertinoPutEndTagIfPlaylistDurationReached to add EXT-X-ENDLIST tags only to requested DVR playlists with durations that have been reached
- Added NDVR read caching system. Application/DVR.Properties chunkReadMemeoryCacheEnable (Boolean, default is false)
- Fixed a bug that caused the mishandling of sessions for adaptive bitrate streams with HLS DVR functionality
- Fixed nDVR chunkID by timecode to correctly manage indexes for multi-bitrate searching and purging
- Updated nDVR chunkID by timecode to correctly handle META and CODEC packet updates
- Updated nDVR chunkID by timecode resolver
- Updated nDVR chunkID by timecode example implementation
- I[dated nDVR getLastLiveEntry() to search chunkID index correctly when using chunkID by timecode
- Updated nDVR converter to be more accurate for specified durations
- Added REST API query parameter dvrConverterTolerance to allow conversion windows to check if the last GOP will fit within the tolerance specified. Default is 1000 milliseconds
- Updated DvrMBRChunkIDByTimecodeResolver to correctly handle dynamic ChunkID gaps
- Updated IDVRChunkIDHandler2
- Added getLastAssignedChunkId which must return the most recent ID delivered by onAssignChunkID
- Deprecated onAssignChunkID (String streamName, AMFPacket dataPacket) for metadata packets
Live Stream Encoding, Transcoding, and Transrating
- Updated Transcoder decoding to prevent invalid aspect ratio streams from being transcoded
- Upgraded the MainConcept Transcoder libraries to 10.5
- Improved MainConcept H.264 support for B-frames
- Upgraded Intel Media SDK for Linux to 2017 R3
- Added NVIDIA NVENC support for B-frames
- Added variables to track additional parameters
- Fixed misspelling of decrementMessageBytesWaiting method
- Added support for B-frames in QuickSync H.264 encodes
WebRTC (Preview)
- Upgraded Bouncy Castle cryptography library to 159
- Fixed thread leak caused by failed connections
- Fixed UDP connections to prevent stalls
- Fixed H264 constraints from failing to propagate correctly
- Fixed JSON response to prevent an ‘OK’ response being included after a failed response
- Fixed client correctly disconnecting after a source stream is unpublished
- Fixed bug where a WebRTC debug-enabled log statement caused an exception while handling STUN requests
- Fixed WebRTC to correctly handle thread shutdown after negotiation
- Fixed WebRTC UDP port leak
Apple HLS (Cupertino) Streaming
- Changed Cupertino chunk overflow logic so that chunks are forcibly ended when they get too long, such as when Wowza Streaming Engine stops receiving keyframes
- Added property cupertinoForceEndChunkWhenNoKeyframes to wrap Cupertino logic that forcibly ends chunks when Wowza Streaming Engine stops receiving keyframes. Application/LiveStreamPacketizer/Properties cupertinoForceEndChunkWhenNoKeyframes (Boolean, default is false)
- Updated Apple HLS MediaCaster to correctly support HTTPS absolute paths
Secure Reliable Transport (SRT) Streaming
- Fixed SRT MediaCaster to correctly support srtRecoveryBuffer and srtLatePacketDrop
Microsoft Smooth Streaming
- Fixed Smooth Streaming when using NGRP/SMIL to correctly return a complete manifest when audio-only is listed as the first entry
MPEG-DASH Streaming
- Updated ALS VOD playback for MPEG-DASH to correctly support variable coded descriptor lengths
Media Cache
- Fixed Media Cache SSL source to prevent caching of 404 return codes
Closed Captioning
- Updated TimedText to correctly log when using a MediaCache source
- Updated ModuleCEA608ToOnTextData so that if ccIngestCEA608RemoveExistingCEA608 is false, then the conversion of CEA608 captions to OnTextData captions won’t occur in transcoded streams to duplicate onTextData messages
Features:
- Maximum Connections: Unlimited
- Maximum Incoming Streams: Unlimited
- Transcoder Streams Available: Unlimited (NVEC and Intel Quick Sync)
- Transcoder Watermark: No
- nDVR Available: Yes
- DRM Available: Yes
- HTTP Origin Available: Yes
- Push Publish Available: Yes