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.2.0 build 15089 released on June 16, 2015.
Contents
New Features and Functionality in Wowza Streaming Engine 4.2.0
Detailed list of changes in Wowza Streaming Engine 4.2.0
New Features and Functionality in Wowza Streaming Engine 4.2.0
Wowza Streaming Engine™, formerly Wowza Media Server™, is robust, customizable, and scalable server software that powers reliable streaming of high-quality video and audio to any device, anywhere.
Improved Installation Experience
You can install a clean instance of the Wowza Streaming Engine software more easily using an improved install wizard on Windows, OS X, and Linux operating systems. The wizard automatically installs a server version of the Java Runtime Environment (JRE) that the Streaming Engine requires, making it easier to get your media server up and running. For installation instructions, see Install and configure Wowza Streaming Engine.
If you can't or don't want to use the version of Java that installs with Wowza Streaming Engine, you can use a different JRE. Wowza Streaming Engine requires a JRE that supports deploying Java in a server environment. Java 6, 7, and 8 are all supported but Java 8 is recommended. For more information on how to install a different, supported version of Java and how to instruct Wowza Streaming Engine to use it, see How to manually install and troubleshoot Java with Wowza Streaming Engine.
Stream Publishing for Distributed Delivery
The new Stream Targets feature in Wowza Streaming Engine Manager enables you to send an incoming live source stream to one or more destinations that re-distribute the source stream to users. Stream target destinations allow you to scale and add redundancy to your live streaming workflow. You can send a live source stream to destinations such as:
- Wowza Streaming Cloud™, which can transcode and deliver the stream to viewers anywhere around the world.
- Third-party content delivery networks (CDNs), which can deliver the broadcast to viewers using a global edge network.
- Video-sharing websites, which can host playback of the event on their own portal.
- A live application on another Wowza Streaming Engine software instance, which can transcode and deliver the stream to viewers.
The Stream Targets graphical user interface in Wowza Streaming Engine Manager lets you easily map your live streams to supported destinations--without manually editing an XML map file. If you're using the Push Publishing feature in Wowza media server software, you can bring your push publishing map file (PushPublishMap.txt) to your new Wowza Streaming Engine 4.2 installation and your existing map file settings will work with the Stream Targets feature. For details, see How to use CDNs and services to distribute live streams.
Integrated Pan/Tilt/Zoom Control for Axis and Sony Cameras
Wowza Streaming Engine simplifies live streaming workflows by delivering connection settings for live applications to integrated encoders and cameras from our Works with Wowza™ partners. This release of the Streaming Engine adds the capability to control the Pan/Tilt/Zoom (PTZ) functionality in integrated Sony and Axis IP cameras using a new Pan/Tilt/Zoom Controller in Wowza Streaming Engine Manager.
New Transcoder Codec and Hardware Acceleration Options
Technology preview support for VP8 and VP9 video codecs and Vorbis and Opus audio codecs, for both decoding and encoding, is added to Transcoder. A technology preview gives you a chance to try out an early version of software that we may update in a later release of Wowza Streaming Engine. Be aware that unexpected results can occur when using preview software. To get the best results when using these codecs, follow the instructions in How to transcode live streams to WebM for MPEG-DASH playback.
This release also includes new NVIDIA CUDA and NVCUVID hardware acceleration options for decoding incoming live video on 64-bit Windows and Linux operating systems. CUDA-based accelerated decoding is compatible with most NVIDIA graphics cards that support the legacy CUDA instruction set. Some newer NVIDIA graphics cards have fixed-function hardware that use NVIDIA CUDA Video Decoder (NVCUVID) video decode APIs for accelerated decoding on NVIDIA GPUs with CUDA. To our NVIDIA NVENC hardware acceleration encoding option, we've added support for encoding H.265/HEVC video renditions as a technology preview feature. For details, see Server specifications for NVIDIA NVENC and NVIDIA CUDA acceleration with Wowza Transcoder.
Renamed Features
To help users transition more easily between Wowza Streaming Engine software and Wowza Streaming Cloud software, we renamed several features in Wowza Streaming Engine Manager to be more closely aligned with similar features in Wowza Streaming Cloud. The functionality for these features hasn't changed, only the names.
Old Feature Name | New Feature Name |
Server > Publishers | Server > Source Authentication |
Applications > Incoming Publishers | Applications > Sources (Live) |
Applications > Incoming Security | Applications > Source Security |
Applications > Outgoing Security | Applications > Playback Security |
For details, see Find your way around Wowza Streaming Engine Manager.
Detailed list of changes in Wowza Streaming Engine 4.2.0
- Added logging of operating system network parameters on server startup
- Improved server startup logging to include indication of free and total memory values
- Improved startup scripts to use bootstrap class loader when starting the license update REST API
- Modified Windows startup.bat to not use the Windows Service Controller to shut down the service on error. This prevented the Windows Service Control restart mechanism from working
- Added following Streams/Properties to control maximum UDP packet size used for RTP streaming:
- h265MaxPacketSize
- rfc3984H264MaxPacketSize
- rtpAACMaxPacketSize
- Improved RTP stream ingestion to handle packetizers that have mixed startcode length and startcode indicator NAL units
- Fixed synchronization issue with stream demo publisher that caused streams to not start on slower systems
- Added MP4 file support for iTunes metadata in udta atom attached to moov atom or trak atoms
- Added additional debug logging to MP4 stream recorder code to track packet timecodes and offsets
- Fixed Smooth Streaming chunk generation to include sample flags in tfhd atom to fix streaming on Google Chromecast device
- Added smil and ngrp support for cupertinoBitrateAdjustmentFactor property in HTTP/Properties
- Fixed Null Pointer Exception when app context could not be loaded due to incorrect application being requested in Cupertino playlist.m3u8 request
- Added methods to HTTPStreamerSessionCupertino to control auto multi-bitrate generation for Apple HLS (cupertino) streams, enables controlling audio-only renditions based on user agent:
- boolean HTTPStreamerSessionCupertino.isAutoCreateMultibitratePlaylist()
- void HTTPStreamerSessionCupertino.setAutoCreateMultibitratePlaylist(boolean autoCreateMultibitratePlaylist)
- Fixed LiveStreamPacketizer/Properties cupertinoResetTargetDurationOnNewChunk, which was accessed using incorrect properties container
- Added HTTPStreamer/Properties integer property cupertinoFirstChunkRequestDelay to add a time delay to the first chunk request for a given Apple HLS (cupertino) streaming session (default is 0, which is no delay)
- Added support for the tag {host} in the cupertinoEncryptionBaseURL property. When returned to the client the {host} is changed to the requested IP/Hostname/Port.
- Fixed issue with Apple HLS (cupertino) SAMPLE-AES encryption (NAL unit length was not set properly if escaping was needed)
- Improved Apple HLS (cupertino) initialization vector (IV) generation for ENVELOPE-PLAYREADY encryption to work properly when doing HTTP byte range requests (IV is the same for requests of a given chunk)
- Improved MPEG-DASH CENC initialization vector (IV) generation to work properly when doing HTTP byte range requests (IV is the same for requests of a given fragment)
- Changed MPEG-DASH ABR rendition ordering so that renditions in the manifest are listed in the same order as they appear in the SMIL file, instead of always listing them in bitrate order. Changed for both on-demand and live streaming
- Fixed specification of presentationTimeOffset values in on-demand DASH manifests so that wowzaplaystart and wowzaplayduration query parameters work properly for all DASH manifest formats (by-time, by-list, and by-number)
- Updated the MPEG-DASH test player in Wowza Streaming Engine Manager and the MPEG-DASH Live and VOD example players with a fix from dash.js v1.3 to allow a canPlayType of "maybe" (in addition to "probably") to compensate for the more restrictive video codec support response provided by Chrome
- Added LiveStreamPacketizers/Properties and HTTPStreamer/Properties boolean property mpegdashForceDisplaySizeToBeEven to force frame size to be even for MPEG-DASH streaming (issue with latest Chrome browser, default is true)
- Added properties drmVerimatrixCupertinoDTVPosition and drmVerimatrixMpegDashDTVPosition to enable UTC timecodes for positions when requesting keys from Verimatrix. Default is false.
- Fixed HLS bug in Verimatrix module where the positionCount would get forced to the default value any time a keyRotateInterval parameter was not provided in the stream mapping, and the keyRotateInterval would also not be set properly if a user had defined a custom default value through the drmVerimatrixCupertinoKeyRotateInterval property
- Added code to discard MPEG Transport Packets with transport errors or transport scrambling enabled
- Added the following encoder strings to list of valid encoders in core security:
- "Lavf/" (ffmpeg)
- "UA Teradek/"
- "KulaByte/"
- Improved Transcoder NVENC shutdown code to make sure encoder is not running when destroyed
- Improved Transcoder onMetaData injection to include a better-formatted string for the track.description field
- Updated Transcoder MainConcept HEVC/H.265 libraries to version 4.1
- Added Transcoder template boolean property sortDebug to turn on/off Transcoder sort buffer debug logging
- Fixed problem with Transcoder sort buffer timecode map that was not returning the realtime values in all cases
- Fixed frame rate calculation issue with HEVC/H.265 streams (off by a factor of 2)
- Fixed an issue with range requests that started at offset 0 and would not return the Content-Range header
- Fixed deadlock on nDVR shutdown caused by lock inversion
- Enhanced ability to specify DVR mode with either _dvr or _DVR from within encoded playlist.m3u8 request
- Fixed DVR chunking algorithm. There was a case where the PTS was incorrectly checking against the chunk's DTS start time, causing a shorter than expected chunk length
- Fixed problem where DVR would sometimes create transcoded chunks larger than their ingest counterparts, if the ingest stream differed between pts and dts values
- Fixed an off-by one error when creating DVR chunks. If chunksize exactly equaled the minimum chunk size, the chunk would add content up to the next keyframe
- Fixed a bug in Wowza Streaming Engine Manager for nDVR options when disabling Media Cache
- Added MediaCacheSource/Properties integer property awsSigningVersion to conf/MediaCache.xml to enable version 2 or version 4 AWS URL signing (default is version 2, valid values are 2 or 4)
- Added MediaCacheSource/Properties string property awsDefaultRegion to conf/MediaCache.xml to enable setting of default region (default is us-east-1)
- Added support for Amazon AWS version 4 URL signing to MediaCache system:
- To turn on version 4 signing, set awsSigningVersion to 4
- When using version 4 signing, the bucket of the region must be included in the stream name along with the bucket name in the form [bucket-name].s3-[region], for example: amazons3/mybucket.s3-us-west-1/myfolder/myfile.mp4. The region can be omitted if bucket is in default region (awsDefaultRegion)
- Added MediaCacheSource/Properties string property userAgent to conf/MediaCache.xml to enable setting of user agent name for HTTP requests
- Added support for the configuration of push publishing through the Stream Targets feature Wowza Streaming Engine Manager
- Fixed problem where push publishing would throw an exception when invalid RTMP metadata was found in the packets list of the source stream
- Fixed push publishing RTMP issue where a missing parameter in the "publish" command caused connection issues with Microsoft Azure destinations
- Fixed the push publishing REST API so that the field name for the application instance map file parameter is labeled "appInstance" instead of "applicationInstance", as required by the Stream Targets feature
- Fixed push publishing in the handling of the HowToPublish parameter that is part of the RTMP "publish" command during the connection sequence. The default value for HowToPublish is now "live" instead of "publish"
- Added ability in PushPublishing module's "rtmp" profile to filter-out metadata items from onMetaData messages on a per-map-entry basis. Associated new map entry properties:
- removeMetadataObjects (Boolean) - enables removal of all array and object data types
- filteredMetadataItems (String) - allows definition of a pipe-separated list of named metadata items to remove
- Fixed Secure Token bug where the Client IP address was always checked in the hash when include client IP address in the hash was not enabled
- Fixed SMIL over-ride of HLS default VOD subtitle attributes: FORCED, AUTOSELECT, DEFAULT, and GROUP-ID
- Fixed SMIL over-ride of HLS subtitle. Was using wrong title value to match subtitles to video stream
- Fixed problem where HLS streams would specify a SUBTITLE track when their SMIL did not contain subtitles
- Added TimedText property "ccIngestCEA608RemoveExistingCEA608" to allow original CEA-608 captions in ingest stream to be removed after conversion to other caption types
- Added support for Streams/Properties boolean property fixH264VideoNALLenStartcodeMix in RTPPacket processing for RTP and RTSP streams
- Added application-level integer property liveStreamRecorderWaitForVideoFrameCount for live stream record that controls how many packets are processed before the stream is determined to be most likely audio-only
- Fixed Live Stream FLV Recorder when not starting on a keyframe to avoid null pointer exception error
- Fixed HTTP audio-only on-demand streaming to insure that fragments/chunks are packetized the same regardless of the order they are requested
- Fixed security module where publish should be denied if we require password and stream is not recognized as a publisher via its flashVer
- Changed default Garbage Collector from TuningGarbageCollectorConcurrentDefault to TuningGarbageCollectorG1Default to accompany Java 8
- Fixed NPE when serializing the origin repeater context between 3.x and 4.x
- Fixed issue in Wowza Streaming Engine Manager where Epiphan, Hauppauge, Matrox, NewTek, and Telestream XML generation had an undesired resources tag
- Moved Sources (Live) (was Incoming Publishers), Stream Files, and Incoming Streams features in the Wowza Streaming Engine Manager contents panel to better represent the flow of actions taken
- Fixed Content-Length handling to negate any negative values presented