August 17, 2017

Wowza 4.7.1 (Build 20635)

Changes since release
  • Fixed parsing of AC-3 descriptor in MPEG-TS source streams
  • Added validatePath to IHTTPProvider to enable requested content paths to be validated
  • Updated Application and ApplicationInstance name verification
  • Updated HTTP and RTSP streamer URL validation
  • Updated the default JMX permissions to readonly
  • Disabled Server.readConfig() and Server.writeConfig mbeans
  • Updated HTTP provider HTTPProviderMediaList to validate provided stream names
  • Updated default VHost.xml to remove HTTP provider HTTPProviderCaptionFile
  • Fixed Microsoft PlayReady encryption to properly handle large fragments
  • Fixed CORS headers for Apple HLS and range requests
  • Updated liverepeater MediaCaster when streamForceResetOnReconnect is enabled
  • Fixed Wowza nDVR out-of-bounds exception when segments are empty
  • Added REST endpoint /v3/servers/{serverName}/vhosts/{vhostName}/applications/{appName}/instances/{instanceName}/incomingstreams/{streamName}:
    • Added parameter streamRunningTime, which specifies how long the stream has been running in seconds
    • Added parameter isAudioReady, which specifies the audio codec config packet count from the packet queue
    • Added parameter isVideoReady, which specifies the video keyframe count from the packet queue
  • Improved error handling for HTTPByteWriter and HTTPSByteWriter to avoid exceptions when data can't be written correctly
Stream Targets (Push Publishing)
  • Fixed several issues with how PushPublishManager API interacted with PushPublish module when adding and deleting stream targets
  • Fixed destination stream name generation for Wowza CDN stream targets to follow [stream_name]_1_[bitrate] format as is used for Wowza Streaming Cloud stream targets
  • Fixed issue with incorrect generation of destination stream names for Wowza CDN and Wowza Streaming Cloud stream targets
  • Fixed Stream Targets PushPublishHTTPCupertino base class so that after a media segment is pushed, the actual chunk object reference that's held by the associated MediaSegmentModel is cleared, instead of just the chunk's fragments list
  • Fixed HTTP stream target profiles (for HLS, HDS, and MPEG-DASH) so that they don't show adaptive (ABR) groups as being "ready" until they have a populated chunklist, avoiding the "Failed to create group playlist for group..." log that would appear at the beginning of the ABR push session(s)
  • Fixed Wowza Streaming Engine Manager so that errors that occur while deleting Wowza CDN stream targets are handled properly and a failure message is displayed on the Stream Targets page
  • Fixed PushPublishHTTPCupertino base class so that when a target has no playlist/chunklist built yet and a disconnect() occurs, it doesn't generate an NPE
  • Fixed Akamai HLS/HDS/MPEG-DASH stream targets to properly handle relative playlists when an eventName is defined for the target
Live Stream Recording
  • Fixed LiveStreamRecord synchronization to prevent segmentation failures
  • Added Application/Properties property liveStreamRecorderDebugAACTimecodes (Boolean, default=false) that enables debugging of AAC timecodes when recording to a file
Live Stream DVR Playback (Wowza nDVR)
  • Fixed nDVR Converter REST Swagger documentation to include the dvrConverterStoreList parameter, which is required by the DvrRESTConverterStoresAction API
  • Fixed nDVR Converter API so that it honors the dvrConverterDefaultFileDestination parameter
  • Fixed nDVR 404 playlist responses so they include CORS headers
  • Fixed Wowza Streaming Engine Manager where we showed "not supported when Only DVR Streaming is enabled" for the MPEG-DASH playback type (on application Setup tab) any time when "DVR streaming only" is selected in nDVR configuration, even when nDVR is disabled
  • Added query parameter dvrConverterInterleaveDelay to the nDVR REST API for store conversions to control I/O saturation time
  • Fixed nDVR conversion for audio-only streams when using a start offset
  • Improved nDVR REST API endpoint to report when a conversion is already in progress
  • Improved nDVR store error handling when invalid data is encountered
MediaCasters, Stream Files, and Startup Streams
  • Added MediaCaster/Properties property streamForceResetOnReconnect (Boolean, default = false) to force a complete unpublish/republish of a stream when a live repeater connection is reset
  • Fixed applehls mediacaster fetch timers so they don't overcompensate when large delays occur
  • Fixed applehls mediacaster retry logic to correctly retry within the defined limits
  • Fixed applehls mediacaster when playlist retrieval results in an unparseable response
  • Updated liverepeater MediaCaster to unpublish/republish when forceReset is called using the reconnectWaitTime parameter
  • Updated streamfiles/{streamfileName}/adv endpoint changing RTPTransportMode to interleave to match default Application.xml configuration
WebRTC (Preview)
  • Added the following H.264 WebRTC constraints override properties (they should only be used when WebRTC is being used):
    • Added Application/RTP property rtpForceH264Constraint (Boolean, default=false) to override the constraints value for H.264
    • Added Application/RTP property rtpForceH264ConstraintValue (Integer, default=192) to set the override constraint value (only the top 4 bits MUST be set)
  • Added the following H.264 WebRTC constraints properties (these should only be used when WebRTC is being used):
    • Added Application/RTP property rtpUseLowestH264Constraint (Boolean, default=false) to force the use of the lowest constraint information found in an H.264 video stream
    • Added Application/RTP property rtpUseHighestH264Constraint (Boolean, default=false) to force the use of the highest constraint information found in an H.264 video stream
RTSP/RTP Streaming
  • Fixed Application/RTP property rtpForceH264Constraint so it can be set independently to rtpUseLowestH264Constraint and rtpUseHighestH264Constraint
  • Added Application/RTP property resyncAudioVideoOnSRLogStreamSuffix (String, default not used) that allows timecodes from transcoded streams to be logged when resyncAudioVideoOnSRLog is enabled
  • Improved RTSP/RTP playback to properly handle Streams/Properties instanceOn and instantOnBufferTime
  • Fixed bad XML in Akamai DASH manifest for audio Adaptation Set with DRM
  • Added default Sample Frequency (8000) for PCM audio when creating SDP entries
  • Fixed SCTE parsing to correctly return splice information
  • Added IWebSocketEventNotify2.onIdle(IWebSocketSession webSocketSession) handler to websocket event interface to enable hooking into idle events
  • Improved liverepeater-lowlatency stream type to properly set low-latency stream settings
  • Added live stream receiver log statement on stream startup to log more information about live stream settings such as sort buffer and onFlushNotifyClient
  • Improved error handling for HTTPSByteWriter to avoid exceptions when hostname/remote servers aren't available
  • Fixed Server Name Identification (SNI) configuration so that variable expansion works properly on the "DomainToKeyStoreMapPath" field in the host port SSL configuration as well as the "keyStorePath" field in DomainToKeyStoreMap.txt
  • Fixed bug where an application shutdown request via REST or JMX interface occurring at the same time as an HTTP session timeout-shutdown could cause a deadlock
  • Fixed H.264 MediaReader to correctly count atom entries to allow F4V file playback

No comments: