Note: Wowza Media Server 3.0.2 is maintenance release to fix the following two problems:
- Startup problem that caused the server to exit immediately
- Live stream repeater problem that caused streams to stop if encoder reconnected to origin
Wowza Media Server 3.0.2 build866 (16 October 2011)
New Features
- Live Stream Transcoder
- Support for transcoding on Windows 64-bit and Linux 64-bit (no support for 32-bit or OSX at this time)
- CUDA accleration available on Windows
- Intel Quick Sync acceleration available on Windows
- Following formats are supported:
- Video decoding: H.264, MPEG2, MPEG4 Part 2
- Video encoding: H.264
- Audio decoding: AAC, MP3, MPEG 1 Part 1/2, Speex, G.711 (mu-law, a-law)
- Audio encoding: AAC
- Following ingestion protocols are supported:
- H.264: RTMP, RTSP/RTP && native RTP (IETF RFC3984, QuickTime Generic RTP Payload Format), MPEG-TS (ISO/IEC 13818-1), MPEG-TS over RTP (IETF RFC2038)
- ACC: RTMP, RTSP/RTP && native RTP (IETF RFC3640, IETF RFC3016, ISO/IEC 14496-3), MPEG-TS (ISO/IEC 13818-1), MPEG-TS over RTP (IETF RFC2038)
- MP3: RTMP, RTSP/RTP && native RTP (IETF RFC2250), MPEG-TS (ISO/IEC 13818-1), MPEG-TS over RTP (IETF RFC2038)
- MPEG2: RTSP/RTP && native RTP (IETF RFC2250), MPEG-TS (ISO/IEC 13818-1), MPEG-TS over RTP (IETF RFC2038)
- MPEG1 Part 1/2: RTSP/RTP && native RTP (IETF RFC2250), MPEG-TS (ISO/IEC 13818-1), MPEG-TS over RTP (IETF RFC2038)
- MPEG4 Part 2: RTSP/RTP && native RTP (IETF RFC3106), MPEG-TS (ISO/IEC 13818-1), MPEG-TS over RTP (IETF RFC2038)
- Rich API (better document API with clear examples for final release)
- Considering a deeper video profile system to control lower level encoding parameters
- Transcoding templating system for defining encoding parameters
- StreamNameGroups feature for creating multi-bitrate groups
- Support for looping the source stream back into encoding list so it can be part of a StreamNameGroup
- All transcoded streams are sorted and aligned using a 750ms sort buffer
- Support for image overlays (watermarks) with transparency
- Support for cropping of source video frame
- Network DVR (nDVR) (beta)
- Single nDVR cache - any screen playback
- Records H264 Video and either AAC or MP3 Audio
- Playback of recorded streams via HTTP Streaming (Cupertino, San Jose, Smooth Streaming)
- Multi-bitrate stream support (currently assumes streams as recorded are time aligned)
- Support for pause, seek, resume
- Rich APIs (better document API with clear examples for final release)
- Origin Edge Support
- Memory cache of most recent Audio and Video chunks for better performance.
- Digital Right Management (DRM)
- Verimatrix support for iOS streams
- PlayReady support for smooth streaming streams
- New low-level encryption API to enable iOS key rotation for live streams (will be documented in a later build)
- Other features
- New MediaList system to enable custom parsers and API for group streams for multi-bitrate delivery
- Improved MPEG-TS ingestion (should be able to handle higher bitrate streams, more efficient)
- Support for MP4 data event (AMF0 and AMF3) video on demand playback and recording
- Support for multi-language subtitles in MP4 files for video on demand playback
- Ability to specify a video on demand play start time and duration for iOS, Smooth and Flash HTTP streaming
- Many other improvements
Detail list of changes: (since: 3.0.0)
- Fixed problem with startup code that resulted in server shutdown when generated random number had first 9 digits set to all 1's
- Added method ILiveStreamDvrRecoder.getAppInstance()
- Removed IDvrStreamManager.setDvrStorageWindowSeconds(), setDvrStorageDir(), and setArchiveStrategy(). DvrApplicationContext should be used to set these.
- Removed unused DvrApplicationContext methods isRecorder() and setIsRecorder()
- Fixed DVR delete mode. DVR was failing to move the old store to a ".delete" folder name before trying to delete it.
- Added log messages for successful and failed attempts to delete old DVR store.
- Improved logic for generating the folder name the old stores are renamed to, ensuring the rename folder doesn't already exist.
- Added StringUtils.equals(), which includes null protection and comparison.
- Implemented API to allow output recording name to be different from input stream name.
- Provided methods to manage start/stop/shouldRecordOnStartup in ILiveStreamDvrRecorder instead of IDvrStreamManager
- Changed DVR recorder stream timeout from 60 to 300 seconds to better account for encoder restarts during DVR recording
- Add support for archive method "delete" when stream starts recording instead of when stores are loaded, to allow a recorded stream to be played before recording starts in "delete" mode
- Added example HTTPProvider for starting and stopping recording of DVR stream by allowing recordingname to be set
- Changed for DVR, when encoder unpublished the DVR recorder was immediately destroyed. Now "streamTimeout" property is respected.
- Fixed case when player requested a specific version of a DVR recording (foo.0) and instead the highest available version was provided.
- Updated Transcoder to allow transcoder to work with central configuration system
- Fixed SMIL parser to properly support system-bitrate and systemBitrate
- Added for Cupertino streaming and we are not recording, allow checkAvailability to trigger a load of an existing DVR store
Detail list of changes: (since: 2.2.4.x)
- Added HTTP provider to take ngrp and return SMIL HTTPProviderGetMediaListAsSMIL
- Added API to MediaList to return as SMIL
- Fixed synchronization problem in LiveReceiver flush method
- Improved debug logging for advance stream monitor
- Added API to get/set forceMPEGTSOut to RTPStream API
- Added support for setting the MPEG-TS video and audio PID and streamID
- Added normalized transcoder logging to enable more generalized accounting
- Added support for grabbing images from the transcoder (HTTPProvider)
- Fixed ID3 tag generator for iOS streaming to properly encode header and footer tags in TS
- Fixed metadata propogation problem with San Jose streaming (now use videocodecinfo to get width/height rather than metadata block)
- Fixed small RTSP problem with interleave combined with UDP delivery
- Added support for native RTP AAC streams that are missing the config property in the SDP data but include DTS headers
- Fixed metadata propogation problem with San Jose streaming (now use videocodecinfo to get width/height rather than metadata block)
- Added support for MP4 file sbtl tracks which are sent as onTextData AMF events
- Added new example code for audio, video, data track selection in MP4 files
- Added support for timed events in iOS streaming
- Fixed potential string length issues with double byte characters in ID3 tags
- Added support for HTTP and RTSP redirects
- Added support for MPEG-TS filtering by programID and audioLanguage
- Updated RTSP/RTP to use stream name as session name in SDP data
- Improved log message when A/V are out of sync
- Added onCodecInfoVideo and onCodecInfoAudio to IMediaStreamActionNotify3
- Added support for AMF data in MP4 files both read and write
- Added ability to add custom user HTTP headers to HTTP streaming responses
- IHTTPStreamerSession.setUserHTTPHeader(String name, String value);
- Added Stream property rtpAACMaxAudioGroupSize to control the number of audio packets per RTP packet
- Added support for spaces in RTSP/RTP stream names
- Added new amlst media list reader type for resolving media lists using application instance level API
- Added ability to specify playStart and playDuration when streaming video on demand using HTTP streaming
- query params playstart=[time-milliseconds] and/or playduration=[time-milliseconds]
- IHTTPStreamerSession API setPlayStart and/or setPlayDuration
- SMIL file using <video> tag property begin (play start in seconds) and dur (play duration in seconds)
- MediaListRendition API setPlayStart and/or setPlayDuration
- Modified HTTP streaming system to create a phantom HTTP session before calling resolve play alias (phantom session will be populated based on underlying HTTP request)
- Enhanced HTTP session base to now include all HTTP header information from underlying HTTP request
- Added following methods to IHTTPStreamerSession
- public Map<String, String> getHTTPHeaderMap();
- public String getHTTPHeader(String name);
- public int getHTTPIntHeader(String name);
- public Set<String> getHTTPHeaderNames();
- Added support for MPEG-TS streaming carrying MPEG2 where each logical PES packet includes an entire GOP
- Fixed MPEG-TS parser to properly handle program maps broken over multiple segments
- Fixed MPEG-TS parser to properly handle multiple program maps in a single TS stream
- Enhanced metadata processing for HTTP streaming (width, height and codec information)
- Added new util method getRepeaterOriginURLs() using logic found in mapMediaCasterName()
- Fixed overall width and height f4m information for San Jose multibitrate DVR streaming. Overall width and height is now maximum of each w and h
- Added toString to LiveStreamPacketizerList Guard against NPE in LiveStreamPacketizerBase.getContextStr
- Added new CipherSuites and Protocols elements to SSLConfig in conf/VHost.xml
- Fixed problem with GMT dates not using GMT timezone
- Fixed problem with multicast TTL values correctly propogating to multicast transport layer
- Turned on OriginalTimecodes flag for live stream repeater streams
- Changed NetConnection response AMF object id from 4 to 3 to work with Red5 as RTMP origin
- Added sent/received packet count to unbind statement for UDP/multicast streaming
- Fixed RTSP/RTP CSeq parsing issue (trim value before converting to integer)


Article List
Categories