Wowza 4.7.1 (Build 20635)
Changes since 4.7.0.02 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
General/Other
- 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
Comments