Wowza Media Server 3.6.3 Release Notes

Version: Wowza Media Server™ 3.6.3 build 8031 released on 1 November, 2013.

Wowza Media Server 3.6.3 is a bug fix release that rolls all patches and changes since the release of 3.6.2 into the installers.

Detailed Changes (since release of 3.6.2)


  • Added IDvrStreamManagerActionNotify2 to overcome problem where streamName was not available to the create callback
  • Added transcoder log warning when overlay image is too small (less than 4 pixels in either width or height)
  • Fixed DVR UTC to time mapping when requested UTC is in a gap between valid UTC times
  • Added transcoder log warning when overlay image is too small (less than 4 pixels in either width or height)
  • Fixed DVR PT to time mapping to do a better job ensuring requested time doesn't exist in a gap between recorded segments
  • Changed PT to DVR time conversion to start at most recent recorded segment instead of oldest segment. This covers case where packet times repest themselves in the DVR recording
  • Added call to processSendDirectMessages in Stream class implementation
  • Added support for avcprofile and avclevel in transcoder onMetaData event
  • Prevent DVR recorder from creating stream manager twice and starting recording when one has already started
  • Fixed problem with Apple HLS SAMPLE-AES encryption with VOD streams introduced in version 3.6.x
  • Fixed problem with multicast send not breaking if sending out
  • Improved target duration calculation for Apple HLS vod streams
  • Fixed RTPUtils.startRTPPull so that if MPEG-TS out non-RTP wrapped that the RTCP port is not allocated
  • Fixed RTPUtils.stopRTPPull(RTPPushPublishSession rtpPushPublishSession) to properly remove RTP sessions
  • Added application property to allow disabling of the more accurate audio timecode calculations
  • Fixed null pointer exception in LiveStreamRecordMP4 when segmenting audio only files
  • Improved HTTP streaming handling of query parameters so that original order is maintained
  • Added HTTPStreamer/Property string properties to add EXT-X-PLAYLIST-TYPE header Apple HLS chunklists
    • cupertinoDVRPlaylistType: EXT-X-PLAYLIST-TYPE for nDVR playlists
    • cupertinoLivePlaylistType: EXT-X-PLAYLIST-TYPE for live playlists
    • cupertinoVODPlaylistType: EXT-X-PLAYLIST-TYPE for VOD playlists
  • Added system to kill unidentified sessions for which we have not received enough data to determine protocol
  • Fixed issue with Wirecast and Digital Rapids encoders intermittently failing RTMP authentication
  • Fixed NetConnection so that IOPerformance counter properly accounts for outgoing media streams
  • Updated transcoder NVENC to version 3.0 of the NVidia SDK
  • Modified live stream packetizer for Apple HLS to reset the target duration reported in playlist if it is 3x the true target duration
  • Fixed RTP RR packets to include correct timestamp (shifted right 16 bits)
  • Suppressed transcoder frame rate missing warning so only shown once
  • Improved RTMP received bytes mechanism to honor max pending bytes per-client value
  • Fixed UDP port sharing problem that was leading to "Address already in use" error
  • Fixed FLV recording issue that lead to video pauses when the stream was played back (buffering code was not properly trimming the packet lists, now tracking abs timecodes)
  • Fixed Closed Caption HTTP Provider to explicit StorageDir
  • Added range responses for HLS availability requests.
  • Changed the HTTP response code to 206 for range requests that exactly match the entity size.
  • Added boolean RTP/Properties property g711DebugIncomingPacketTimes to turn on/off G.711 packet timecode debugging
  • Fixed problem with G.711 decoding in the transcoder that led to incorrect sample rate to be reported for the decoder (hard coded to 16000)
  • Added string Streams/Properties property debugIncomingPacketTimesStream to filter the debugIncomingPacketTimes to a single stream name
  • Fixed a problem with transcoder onMetaData translation that lead to the error "java.lang.ClassCastException: com.wowza.wms.amf.AMFDataMixedArray"
  • Updated versionFile to true for all startRecordingSegmentBy API's, so that first segment uses the fileTemplate for file name instead of just the stream name.
  • Improved handling of malformed MPEG descriptors.
  • Added code to LiveStreamRecordMP4 to use a more accurate packet timecode calculated from the audio sample rate and number of samples
  • Added code to LiveStreamRecordMP4 to correctly set the last STTS entry
  • Fixed problem initiating DVR origin-edge when specifying specific DVR store version in the URL
  • Fixed problem where DVR edge using mediacache would not pull chunks from the cache
  • Improved accuracy of live smooth streaming audio timecodes
  • Added support for SSL connection between origin and edge when using live repeater (when wowzs:// and rtmps:// are used for origin URL)
  • Improved liverepeater logging to log URLs more clearly on connection and resetConnection
  • Fixed issue with using smil file and WebVTT closed captions
  • Fixed support for loading RTSP properties when defined in the .stream file
  • Fixed a bug in QTMediaCursor which prevented seeking on very large mp4 files during vod playback
  • Fixed potential NPE when live onTextData captions are enabled but another type of data event like onCaptionInfo is parsed
  • Changed LiveStreamRecord logging to report vhost name instead of vhost java object
  • Fixed bug in LSR WebUI which caused files to be created with name "undefined"
  • Added log warning to LiveStreamRecorderFLV and LiveStreamRecorder.mp4 when LSR segment schedule string is empty and therefore recorder is not started
  • Fixed problem where DVR store deleted on origin was not correctly repeated to the edge
  • Fixed file descriptor leak when opening a corrupt file when using MediaCache
  • Improved transcoder template loading to add support for URLs
  • Added API to IServer to return information regarding transcoder licensing
    • public long getTranscoderLicenseInUse();
    • public long getTranscoderLicenseTotal();
  • Fixed NPE in HTTP origin mode, where if live stream was requested before a DVR stream the DVR stream would not return a manifest
  • Improved logic for recalculating entire ABR DVR alignment data structure. Now handles edge case for HTTP Origin mode where no alignment records are found
  • Added HTTPStreamer/Property httpCacheControlStatus4xx to control the Cache-Control header that is returned for HTTP streaming when a response in the 400's is returned
  • Fixed problem where large DVR stores on the edge would return the initial manifest before the origin had sent down the complete manifest
  • Added code to track when Application is active IApplication.isRunning()
  • Added code to be sure application folder is not created if application is not running
  • Added new IVHost API to shutdown an application and delete the application folder:
    • void IVHost.shutdownApplication(String appName, boolean deleteFolder);
  • Added new FileUtils API to delete a folder and it contents:
    • void FileUtils.deleteFolder(File folder)
  • Fixed bug where DVR audio only tsreams with MP3 would not play in DVR strobe player
  • Fixed problems when switching between nDVR and live streams when using HTTP Streaming in HTTP Origin mode
  • Fixed bug in LSR where outputFile url param was being ignored when using action types startRecordingSegmentByxxx
  • Improved HTTP streaming repeater logging to include context information
  • Implemented HTTPStreamer/Properties "cupertinoRelativePlaylistPlaylists" and "cupertinoRelativePlaylistItems" for nDVR
  • Allowed live streams to get property "cupertinoRelativePlaylistItems" from HTTPStreamer properties. Live, nDVR and VOD now all get this property from HTTPStreamer/Properties
  • Changed behavior to place EXT-X-ENDLIST after chunk URLs in a recorded HLS DVR playlist. Certain STBs do not like this even if it is to spec.
  • Added DVR property "dvrCupertinoPutEndTagBeforeChunks" in case the old behavior is needed. (Boolean, default: false)
  • Fixed problem where DVR would not respect "cupertinoFloatingPointDurations" if set to false
  • Added MPEG DASH sessions count entry to "flat" version of HTTP connections counts XML response
  • Fixed handling and naming of the MPEG DASH "HTTP Redirect" properties, as described in DASH article
  • Added support for ATSC Enhanced AC-3 pass thru
  • Improved AppleHLS feature cupertinoCalculateChunkIDBasedOnTimecode
  • Fixed SanJose Live Repeater null exception bug (Jira WMS-217, associated with Ticket #60055). The exception was triggered upon disconnection and then reconnection of the source stream.
  • Removed debug print statement in H.264 MediaReader for HTTP streaming audio only content
  • Fixed handling and naming of the MPEG DASH "HTTP Redirect" properties, as described in DASH article
  • Updated Wowza Transcoder to latest NVidia NVENC SDK (June 2013 release)
  • Improved Wowza Transcoder NVENC error handling to not terminate on error
  • Fixed problem when using calculateChunkIDBasedOnTimecode not working with origin/edge mode (this feature is not intended for origin/edge mode but is instead for HTTP origin mode - it is improved so that it at least works)
  • Fixed nullptr exception with Apple HLS packetizer
  • Updated Silverlight LiveDVRStreaming example player to fix loading issue on some browsers
  • Improved G.711 depacketizer (a-law and mu-law) to send packets with a smaller number of samples
  • Added RTP/Properties integer property g771SamplesPerFrame to control the number of G.711 (a-law and mu-law) samples per packet - set to zero will send all samples in an RTP packet
  • Fixed Apple HLS streaming when using SMIL files to be sure cupertinoCalculateCodecs and cupertinoCalculateResolution is properly honored
  • Added startTransmit and stopTransmit to ModuleCore to avoid warning log message
  • Improved E-AC-3 over Apple HLS pass through support
  • Fixed Closed Caption HTTP Provider to return correct contentType for srt files
  • Added Application level properties to Closed Caption HTTP Provider to allow returned content type to be changed. Properties are named httpCaptionProviderContentType<Ext>, where <Ext> is capitalized file extension
  • Improved transcoder decoder handling to properly deal with errors
  • Improved transcoder encoder logging to only log first error if transcoder not properly initialized
  • Improved transcoder shutdown code to close publish streams earlier
  • Improved transcoder shutdown logging if shutdown is delayed
  • Improved timecode debug logging for video to include dts to pts offset
  • Improved packetization to fix flush iteration problem (reset packetizer when artificially hit chunk end)
  • Fixed problem where extracting BOM from UTF8 CC line could convert said line into non-UTF8 string
  • Added RTPDePacketizerWrapperPacketLossSimulator to simulate packet loss
  • Improved JMX name encoding to properly escape
  • character
  • Guard against potential null MediaCaster in JMX's onSetSourceStram
  • Fixed NPE in validateNewConnection when using Vhosts.xml ConnectionLimit
  • Updated live and vod Flash examples players to work with CS3
  • Ignore IF-xxx requests as if they didn't exist instead of returning 501 (not supported)
  • Fixed problem with live repeater URLs not being translated correctly if application instance not specified as part of origin URL
  • Improved performance of NAL unit cleanup in live receiver (conversion from: [packet-size][start-code][nal-data][start-code][nal-data] to [nal-size][nal-data][nal-size][nal-data])
  • Added sleep time to Stream class when repeating playlist loop quickly
  • Added applyParameters method to native transcoder API
  • Fixed an NPE when using the StreamNameAlias Add-on and the url passed in isn't found in the stream alias file.
  • Fixed an issue with HTTP Origin and Apple HLS streams using absolute paths in the playlists.
  • Fixed Apple HLS logging issue with audio only chunks not reporting correct packetization mode