Wowza Media Server 3.1.0 Release Notes

Wowza Media Server 3.1.0 Release Notes

Wowza Media Server 3.1.0 build1410 (19 April 2012)

Detail list of changes: (since: 3.0.5)

  • Wowza nDVR is out of beta and fully released
  • Apple HLS (cupertino) adaptive streaming has been improved to more robustly support session managment
    • SMIL file is referenced in all chunklist.m3u8 and media URLs
    • If session times out and is re-estabilished all adaptive streaming bitrates are available for streaming
  • Added boolean HTTPStreamer/Properties property cupertinoEnableOnEncKey to turn on/off onEncKey internal Apple HLS key delivery. For security reasons it's off by default
    • If you using this features in earlier version of Wowza Media Server you must add this property to Application.xml for secure Apple HLS streaming to continue to work
  • Fixed DVR San Jose Streaming to work with OSMF 2.0. OSMF 2.0 parser no longer allows first fragment ID in afrt table to be zero
  • Added support for boolean MediaReader/Properties property bufferSeekIO and mp4BufferSeekIO to turn on/off buffered IO when reading MP4 moov atom (default is false)
  • Fixed problem where Cupertino DVR playlist could be malformed when using DVR Window, sometimes causing iOS to stop playing (25338)
  • Fixed CUDA encoder to properly generate IDR frames
  • Fixed synchronization problem with low level UDP session recycling
  • Added boolean DVR/Properties property cupertinoRandomizeMediaName which when true will add a random 8 character string to the media names in the playlist.m3u8 responses to make the media names unique between sessions
  • Added string HTTPStreams/Properties properties dvrCacheControlChunk to control the Cache-Control HTTP headers for the DVR Chunk Provider
  • Added timeOffsetBetweenItems API to Stream class (time in milliseconds between playlist items)
  • Reworked a small part of the overlay API to make it work properly
  • Added log warning if DVR Audio codec is not MPEG1 Layer 3
  • Updated Apple HLS playlist #EXT-X-VERSION version from 2 to 3
  • Added HTTPStreamer/Properties string property smoothStreamingVideoCodecIDH264 to control FourCC value returned in Manifest for smooth streaming. Valid values are (H264 and AVC1)
  • Added support in DVR for HTTPStreamer/Properties smoothStreamingVideoCodecIDH264 to control FourCC value returned in Manifest
  • Added support for string property DVR/Properties dvrSmoothManifestH264Codec which over-rides smoothStreamingVideoCodecIDH264
  • Added DVR boolean debug property dvrDebugFailedChunkRetrievals to provide context when DVR chunk is not found
  • Removed FileNotFoundException stack trace logging when DVR chunk is not found
  • Added warning if LiveStreamPacketizers are set yet stream type if not a LIVE stream type
  • Fixed MPEG-TS ingestion to enable streams with program info descriptors greater than 188 bytes
  • Fixed HTTPProviderMediaList so that it works properly with RTMP dynamic streaming and MediaCache
  • Added warning message if DVR storage directory does not exist when recordings are loaded
  • Added support for tx3g metadata in onMetadata event
  • Fixed track index problem with tx3g tracks
  • Fixed bug where dvrStorageDirectory when specified by properties API was not expanded using environment variables
  • Added ability to allow DVR window duration to be over ridden on a per store basis before store is initialized
  • Fixed problem with RTSP video on demand streaming when .mp3 or .acc extension on file
  • Changed HTTP Streamers to allow application context to be recreated during media requests. This reduces occurrence of "Application Context Not Loaded" warnings
  • Fixed problem with SHOUTcast and RTSP/RTP re-streaming if exception due to DNS resolve failure
  • Added boolean Streams/Properties sendSetDataFrame which when set to true will propagate netStream.send("@setDataFrame", "onMetaData", metaData) from origin to edge (default is false)
  • Added boolean LiveStreamPacketizers/Properties property cupertinoRandomizeMediaName which when true will add a random 8 character string to the media names in the playlist.m3u8 responses to make the media names unique between sessions
  • Added string HTTPStreams/Properties properties cupertinoCacheControlPlaylist, cupertinoCacheControlEncKey and cupertinoCacheControlMediaChunk to control the Cache-Control HTTP headers for the associate HTTP responses
  • Added boolean HTTPStreamers/Properties property streamDomainProtectionActive to control turning on/off the stream crossing protection
  • Added boolean Stream/Properties property sendUpdatedOnMetaData to turn on/off sending of fully updated onMetaData event when we receive @setDataFrame updates
  • Fixed synchronization problem with UDP session recycler
  • Added ability to align video and audio fragment duration when generating smooth streaming fragments (LiveStreamPacketizer/Property boolean property smoothAlignAudioWithVideo)
  • Added additional DVR check to toss invalid A/V chunks based on the audio and video durations differing widely. Sometimes occurs during encoder reset
  • Enhanced DVR API by adding method to retrieve chunk within a delta of the DVR time
  • Moved and renamed RTPPackageFragment
  • classes to PacketFragment*
  • Package updated from com.wowza.wms.rtp.depacketizer to com.wowza.util
  • Added interface IPacketFragment
  • When selecting DVR chunks by time, allow a slight difference from requested time to retrieved chunk time. To support some STBs that calculate time using duration instead of using provided time. (Ticket 24456)
  • For DVR smooth streaming, by default do not provide duration in Manifest except for last chunk.
  • Added DVR property dvrSmoothManifestVerboseDuration to allow duration to be set for each Smooth manifest record
  • Improved logic for calculating DVR audio end time
  • Added warning to transcoder XML template parser if overlay index is used more than once in a transcoder template
  • Added check to DVR serialization code to ensure deserialized mediacache chunks have data in them.
  • Added logging around the server shutdown hook
  • Added packetization event limit to guard against OutOfMemory issues when packetizer is backed up
  • Added try/catch block around base packetization event
  • Fixed incorrect UTC time map when recording audio-only DVR recording (WMS-65, ticket 23977)
  • Added DVR support for MediaCache
  • Added property "dvrMediaCacheEnabled"
  • Added DVR recording limit of 30 hours, at which time the recording stops
  • Added property "dvrMaximumRecordingLength"
  • Added API methods IDvrManifest.getLiveDuration() and IDvrManifest.getRecordedDuration()
  • Fixed DVR repeater case where edge was shutting down if dvrstreamingrepeater was the only repeater specified in application
  • Fixed DVR repeater where edge presented playlist before large manifest had been completely ingested at edge. This sometimes caused the playlist/manifest to be invalid or the playlist to be shorter than expected
  • Fixed case where DVR Smooth Streaming was creating a null DVR playlist request
  • Fixed DVR Smooth Streaming bug where audio codec config packets were incorrectly sent to player
  • Enhanced DVR Smooth manifest to differentiate between live and recorded content
  • Fixed MP3 media reader to properly use more accurate duration in onMetaData data
  • Added audiocodecid and audiosamplerate and audiodatarate to onMetaData data for MP3 files
  • Rearranged the order that transcoder streams are created so that transcoder result flag is set before onPublish is called
  • Fixed file transfer/copy code to handle files over 2GB in size