Skip to main content
Wowza Streaming Engine 4.3.0.01 released
Wowza Streaming Engine 4.3.0.01 build 16210
- Implemented MPEG-DASH WebVTT VOD captions
- Improved ServerListenerStreamDemoPublisher by adding and modifying the following configuration items:
- Renamed "repeat" to "playlistRepeat" ("repeat" is also supported) - If true, playlist items are repeated
- Added "publishDuration" - Time, in seconds, the stream will publish (format: HH:MM:SS.mmm)
- Added
"publishRepeat" - If true, the stream is re-published in a loop after
the "publishDuration" time has elapsed ("publishDuration" must be
greater than zero, default is false)
- Added
"publishPauseTime" - Time, in seconds, the stream pauses before being
republished if "publishRepeat" it set to true (format: HH:MM:SS.mmm,
default is 1 second)
- Added Apple HLS
(cupertino) LiveStreamPacketizers/Properties integer property
cupertinoMaxTimecodeGap (in milliseconds). If the gap in time between
the previous packet and the next packet is greater than this value, the
packetizer is reset (default is -1, which disables this mechanism)
- Fixed
Swagger documentation for the application publisher endpoint such that
the singular "publisher" field that was presented to the user is now
"publisherName" to match the rest of the documentation nomenclature
- Added
new server listener
(com.wowza.wms.module.ServerListenerTranscoderPreload) to preload
Transcoder libraries on server startup to avoid issues where Transcoder
is slow to load on first use
- Fixed Transcoder issue with B-frame timecodes to avoid negative DTS to PTS offsets
- Removed
extra "Send the stream to the backup entry point at the destination"
option from Akamai RTMP stream target Basic tab "view" page
- Fixed SecureToken hash generation for RTMP when using certain media type prefixes
- Added
User-Agent HTTP header to all HDS and HLS file pushes to Akamai,
allowing Wowza Streaming Engine releases to be fully certified with
Akamai for RTMP, HLS, and HDS going forward
- Normalized
Akamai HLS and HDS ingest/playback URL construction to correct ingest
HDS URL issues and to align HLS and HDS ingest/playback URLs
- Fixed
issue where a PushPublishing output session would not reset correctly
when its source stream had intermittent re-connection issues, resulting
in orphaned PushPublishing sessions
- Updated Destination
Stream Name derivation for PushPublishing Akamai RTMP targets so that
when adding a default bitrate value to the Destination Stream Name (when
not properly specified by the user), a calculated or stream
metadata-based value for the bitrate is used (if available), instead of
the current default value ("200"), when the PushPublishing session
starts
- Improved the live-record recording process to
ensure that audio and video are in sync by trimming audio and video from
the start of recordings if audio is delayed from video. The following
Streams/Properties are available to control the recording process:
- recordDebugRecordWrites - Turns on debug logging of recording sessions (default is false)
- recordVersionFile
- If true, file versions are created if a previous file with the same
name exists (default is true, property name versionFile is also
supported)
- recordWaitForVideoKeyFrame - If true, audio,
video, and data are trimmed from the stream until the first keyframe is
encountered (default is true)
- recordUseCalculatedAudioTimecodes - If true, more accurate timecodes are calculated for audio frames (default is true)
- recordSkipKeyFrameIfNoAudio
- If true, and recordWaitForVideoKeyFrame is true, keyframes that don't
have audio within tolerance value are skipped (default is true, more
aggressive trimming to ensure audio/video synchronization)
- recordSkipKeyFrameIfNoAudioTolerance
- The tolerance value, in milliseconds (ms), for
recordSkipKeyFrameIfNoAudio (default is 150 ms)
- recordSkipKeyFrameIfNoAudioMaxDropTime
- The maximum stream duration, in milliseconds, that
recordSkipKeyFrameIfNoAudio system will drop (default is 4000 ms)
- recordMinBufferTime
- The time, in milliseconds, the stream is buffered before the first
write operation to synchronize the audio and video
- recordMaxWaitingPackets - The maximum time, in milliseconds, a packet remains in the synchronization buffer before it's flushed
- Added
API to get the incoming framerate of a live stream that's published to
the media server. There are two sources of framerate data: measured
(IMediaStream.PUBLISH_FRAMERATE_SOURCE_MEASURE) and metadata
(IMediaStream.PUBLISH_FRAMERATE_SOURCE_METADATA):
- int IMediaStream.getPublishFramerateVideo(); // if metadata available, it is returned; if not, measured is returned
- int IMediaStream.getPublishFramerateAudio(); // if metadata available, it is returned; if not, measured is returned
- int
IMediaStream.getPublishFramerateVideo(int source); //
IMediaStream.PUBLISH_FRAMERATE_SOURCE_MEASURE or
IMediaStream.PUBLISH_FRAMERATE_SOURCE_METADATA
- int
IMediaStream.getPublishFramerateAudio(int source); //
IMediaStream.PUBLISH_FRAMERATE_SOURCE_MEASURE or
IMediaStream.PUBLISH_FRAMERATE_SOURCE_METADATA
- Added API to get the number of audio, video, and data frames received for an incoming live stream:
- long IMediaStream.getPublishFrameCountVideo();
- long IMediaStream.getPublishFrameCountAudio();
- long IMediaStream.getPublishFrameCountData();
- Added
API to get the last 10 video GOP sizes/keyframe intervals received for
an incoming live stream (the most recent GOP is first in the list):
- int[] IMediaStream.getPublishKeyFrameIntervalsVideo();
- Improved stream ingestion to detect video and audio codecs earlier in the publishing process by inspecting the onMetaData event
- Improved compatibility of MPEG-DASH live streaming with the Shaka and bitdash players
- Fixed query parameter support for SMIL file
- Fixed Live Stream Record segment recording file names to reflect the time zone name instead of an hour offset
- Added TimedText Boolean property "cupertinoLiveWebVTTAddSpecialEmptyCaption"
to control creation of a special empty chunk in live webVTT subtitle
chunk (default is true)
- Added IRTPPacketizerMPEGTSPacketNotify interface to monitor and control outgoing MPEG-TS streams
- Added
Streams/Property string property "mpegtsPacketNotifyClass" which can be
set to the full class path of the IRTPPacketizerMPEGTSPacketNotify
class that's called back for each AMF packet handled during MPEG-TS
playback/output
- Added the following RTPPacketizerMPEGTS API to enable insertion of ID3 metadata into an MPEG-TS stream:
- RTPPacketizerMPEGTS.addDataEvent(long timecode, byte[]
buffer, int offset, int len) (timecode should be aligned with stream
being output, byte[] should be serialization of ID3Frames object -
id3Frames.serialize(true, false, ID3Frames.ID3HEADERFLAGS_DEFAULT))
- RTPPacketizerMPEGTS.setDataPID(int
dataPID) (set to RTPPacketizerMPEGTS.DEFAULT_PID_DATA in init method of
IRTPPacketizerMPEGTSPacketNotify to turn on ID3 metadata output in
MPEG-TS program map)
To upgrade
cd /usr/local/WowzaStreamingEngine/updates
wget http://mydomain.com/WowzaStreamingEngine-Update-4.3.0.01.zip
unzip WowzaStreamingEngine-Update-4.3.0.01.zip -d wowza-4.3.0.01
cd wowza-4.3.0.01/linux
chmod +x *.sh
service WowzaStreamingEngine stop; service WowzaStreamingEngineManager stop;
./update.sh
service WowzaStreamingEngine start; service WowzaStreamingEngineManager start;
Comments