Viblast Player Release History
- Improve the handling of hls discontinuity.
- Fix the issue with equal SPSes and PPSes with equal IDs for different streams separated with discontinuity tag.
- Add new parameter
abr-min-chunk-size-consider-bandwidthfor better control of the ABR algorithm. When the segment size is less than its value, it will be skipped from the bandwidth calculation.
- Fix the issue with audio/video PES packets order for HLS streams.
- Change the default value for skip-first-non-idr to be
xhrBeforeCreatecallback is invoked before each HTTP request is actually created. This allows for changing the URL and method of the request.
- Fix the issue with program date time calculation for DVR streams.
- Add new parameter "dvr-min-duration", which instructs the player to consider the stream as a DVR one if the playlist duration is greater than it. The default value is
- Fix the issue with seek if the HLS segment timestamp is not aligned to the expected playlist timestamp
- Remove wrong log messages for deprecated WebRTC API usage /Firefox only/
- Change the default value for skip-first-non-idr to be true.
- Fix the autoplay issue with Firefox when the setting "block automatically playing" is on.
- Fix a bug when a segment request has a good HTTP response, i.e. with status code 200 or 206, but the content is empty.
- Add new parameter
maximal-segment-request-timeoutsimilar to minimal-segment-request-timeout.
- Fix a bug with frequent HLS stream source change and hls remuxer async release.
- Improve defer initialization if the player setup is called in hidden tab /Chrome/.
- Add support of MP3 audio for the flash fallback.
- Extend the transferfailure event to pass the response body together with the status code.
- Introduce two new player HLS parameters 'consume-incomplete-audio-packets' and 'consume-incomplete-video-packets'. They prevent the remuxer to process "broken" PES audio/video packets and send garbage to the browser decoder.
- Simplify and optimize the loading of internal web workers for remuxer, decryptor and flash by removing the iframe usage.
- Fix the issue with a very short TS chunk containing a single H264 sample with unknown duration.
- Add DASH audio-only support.
- Add videojs 6.x support.
- Fix flash fallback issue when the seek is performed immediate after the quality change.
- Improve the remux of PES packets with multiple IDR frames.
- Fix the playback freeze with Chrome Mac OS X with HW acceleration enabled.
- Improve ABR.
- Fix Safari issue with bigger compositionTimeOffset.
- Better handling for Chrome HTML5 video events.
- Update the optimization settings.
- Fix issue with embed adapter.js
- Update the WebRTC API used by Viblast PDN.
- Fix minor DRM issues.
- Fix async error when src of DASH DRM protected streams is changed.
- Keep the Viblast API listeners when src changed. Thus, there is no need to register them again.
- Optimize the stop() call.
- Introduce new remuxer config parameter "skip-unknown-nal-units" in order to force remuxer to ignore non-supported NAL units which broke Chrome/Windows decoder.
- Fix the issue when the MPEG/TS stream contains bad NAL Units which might cause the Chrome decoder to freeze.
- Enhance the Viblast analytics
- Optimize the Viblast PDN protocol
- Optimize the Viblast RealTime functionality
- Remove wrong console messages
- Optimize to work on IE11 and less CPU power
- Extend and optimize the real time analytics data
- Improve the Viblast PDN protocol
- Various bugs fixing
- Remove the usage of deprecated WebRTC API
- Better handling of IE11 warnings
- Add handling of missing WebRTC data channel API for Edge browser
- Improve the player behavior for very short ts segments
- add new configuration property minimal-segment-request-timeout for better control of the chunk downloader when the ts segments are too short
- Optimization added for IE11 when the network is fast enough and the stream is heavy
- Better clean of the viblast resources on stop()
- Add ontransferfailure call when the requests are aborted by playlist referesh
- Optimize the final library code
- Handle 'DOMException: The play() request was interrupted' produced by Chrome
- Fix DASH audio downloader issue when sometimes audio chunk is skipped
- Fix audio/video desync for first segment with NON-IDR
- Improve DASH support for Android
- Better remux of HLS segments which start with NON-IDR frame
- Fix discontinuity issue on Safari
- Introduce new configuration property "skip-first-non-idr" for Viblast remuxer which forces remuxer to start processing after an IDR frame. This is useful for HLS ts segments which do not start with an IDR frame.
- Refactoring the native SDK interface.
- Introduce new configuration property "pdn-signaling-server" which allows overriding of the default signaling server used by Viblast
- Fix minor bug of DASH initialisation for number templates
- A lot of Android native SDK improvements
- Introduce new configuration property "remuxer-set-sample-flag" which instructs the ts remuxer to generate flag for Trun sample boxes
- Improve Audio/Video sync correction
- Add ability to configure the player to start with the highest bitrate variant
- Optimise DRM session requests
- Fix seek issue in the flash fallback plugin
- Improve HE-AAC support for SBR streams
- Add seek support after long pause in pause state
- Fix PES assembler issue which breaks the Chrome video decoder
- Fix wrong timestamps calculations when pts==dts==0 in HLS remuxer.
- Improve detection of audio/video encoding changes for HLS streams.
- Improve the playback of HLS streams with segments which start with non-idr frame.
- Add property "playready" to DRM config in order to override LA URL from pssh when needed.
- Fix Chrome MP3 seek issue.
- Fix MS Edge version 40+ stream chunks download issue.
- Improve and fix MP3/AAC raw streams sniffing.
- Fix potential AV de-sync when audio sampling frequency changed.
- Fix DRM key initialization when the keysystem config is not provided.
- Add MPEG audio raw audio support/mp3 chunks/.
- Add MPEG audio encryption support.
- Fix regression of the issue with AV/sync.
- Fix DRM audioCapabilities and videoCapabilities settings initialization.
- Fix XmlHttpRequest extension in order to run Viblast Player in emulator env.
- Add MPEG audio/mp3/ support.
- Improve handling of HLS discontinuity tag.
- Fix minor issue with parsing of Dash Initialization segment.
- Add audio only and video only HLS stream detection. This removes the needs to pass explicitly enable/disable audio/video parameters.
- Fix updatemetadata event not fired on video only streams.
- Add handling of playlistStartingOffset for DASH streams.
- Add audio/videoCapabilities to DRM initialization.
- Fix video.js 5.16+ framework flash fallback plugin initialization.
- Improve PDN optimization for MPEG-DASH streams
- Fix a couple of minor memory leaks
- Support for
immediateaudio/video quality change.
- Fix possible infinite recursion when sliding the progress bar backward
- Fix possible null dereference when stopping Viblast on IE
- Memory improvements for IE
- Add support for MPEG-DASH unsegmented webvtt subtitles
- Reduced memory usage for HLS streams
- Viblast PDN Support for IE 11 by means of Viblast pluging
xhrBeforeSendcallback is invoked before each HTTP request is actually sent. This allows for setting up custom headers or properties to the XHR. Docs
- Proper handling of H.264 streams that have multiple PPSes
- Faster seeking
- Support for Clear Key DRM
- Error Handling API - Viblast fires “transferfailure” when a resource cannot be obtained. Docs
- Fix specifying widevine licensing server when using viblast().setup()
- Fix handling of streams that have SegmentList but no SegmentTimeline
- Fix handling of streams that have "empty" (i.e. useless) SegmentTemplate and a working SegmentList
- Fix changing quality of a multi-quality dash live stream when the birates of the representations change between mpd refreshes
- Fix parsing of #EXT-X-KEY URI attributes that have equal sign
- Fix regression: PlayReady support under Edge
- When using video.js options can be passed to Viblast using the
viblastproperty of the options argument given to videojs
- Fix DataCloneError when playing HLS on IE 11.0.4
- Viblast remuxer doesn't assumes that audio and video streams are synchronized on hls segment boundary. This allows for streams where the audio and video are desynchronized. Such streams are produced by some faulty encoders
- Add new paramter
base-urlthat specifies the base url for on-demand resources. Docs
- Don't refresh VoD playlist after seek or play/pause
- Proper handling of root level url for HLS playlists that have implicit protocol (i.e. playlists of the sort //server.com/playlist.m3u8 and url of the sort /resource.ts)
- Fix HLS multi-audio support for live streams
- Full support for preload="auto" and preload="none"
- Add parameter low-buffer-level. If the buffer level (in seconds) drop below this level, Viblast will start requesting additional chunks
- When paused viblast will continue downloading chunks until low-buffer-level is satisfied
- New parameter buffer-while-paused: If on, Viblast will continue downloading chunks while the player is paused until its buffer is filled
- Fix support for #EXT-X-KEY:METHOD=NONE
- Fix calculation of program date time for HLS VoD streams that have initial media sequence > 0
- Fix possible stall in FF when seeking back
- Fix possible stream doesn't start playing when running a 3fps stream on FF
- When switching qualities in a VoD stream Viblast does not request more chunks that required to fill its buffer
- Fix remuxer-log configuration parameter. In 6.16 it got ignored
- The client id is encoded as part of the offline license
- Optimized Flash fallback for old firefox browsers
- Optimized remuxing and worker communication
- Fix segfault when a pes header is segmented among ts packets
- Fix videojs(..).textTracks() returns empty list on Firefox. This fixes ID3 tags support + videojs + firefox
- Fix waiting/playing being fired twice on Firefox
- Fix playback for hls streams that have a single audio-only variant
- Fix handling of HLS playlist that have byte-range before extinf
- Fix setup of a videojs instance when there is no <source> tag specified to the target <video> element
- HLS multi audio support (i.e. support for the #EXT-X-MEDIA tag)
- Fix playback of mpeg-dash dynamic streams on Firefox 44 (Beta). (Problem caused by Firefox bug 1230141)
- Fix playback (and stall detection) of streams that have just 3 fps (or less) on Firefox
- Fix value of viblast.programDateTime in cases of a gap in the program-date-time value in the HLS playlist
- Support for explicitly signaling audio-only streams using the
- Default duration of metadata cues set to 1s. Previously it was 0.01s wich was causing the activeCues list to be always empty
- Fix handling of two id3 tags, one immediately after the other, in the ADTS stream. Previously the second tag was ignored
- Support for MPEG-DASH SegmentList
- Support for ID3 metadata with HLS streams (thanks, Greg and Carles!)
- Support for h.264 high-profile streams that have negative compositionTimeOffsets
- Fixed regression: playback of DASH streams did not resume after network blackout
- Support for audio-only HLS streams (thanks for the nudge, Mike!)
- Support for HLS streams that contain raw ADTS (AAC) audio (thanks, Greg, for your help!)
- Implemented support for real-time synchronization using HLS #EXT-X-PROGRAM-DATE-TIME
- Fixed calculation of HLS VoD clip duration (previously the duration of the first segment was not taken into account)
- Fixed seeking at the absolute end of an HLS VoD clip (thanks, Richard!)
- Fixed Flash playback of MPEG-DASH streams that have interlaced audio/video
- Fixed leaking viblast.crypto.js worker (thanks, Sergey!)
- iOS SDK - added VoD functionality (seek, etc.)
- Proper handling of H.264 pixel aspect ratio (widescreen signaling)
- Fixed possible data corruption when HLS encryption key is changed
- Fixed issue with calling viblast().setup() immediately after calling viblast().stop()
- For previously played videos, fixed 'ended' not being fired a second time after seek
- Viblast Player can now be P2P-enabled just by adding data-viblast-enable-pdn="true"
- Fixed issue with SAMPLE-AES encrypted HLS streams that use 3-byte nalu prefix instead of 4
- Enabled changing the src of a video element after viblast().setup() has been called
- Fix for Firefox 42+ issue with DASH live streams
- Duration of video tag now set to Infinity for DASH live streams
- Viblast().stop() now also works for injected Viblast Player instances
- Support for live VP8/VP9 MPEG-DASH streams
- Support for #EXT-X-BYTERANGE
- Fixed parsing of PlayReadyKeyMessage under IE 11 that could cause PlayReady protected streams not to be played
- Use the newest EME API on supported platforms. This fixes the annoying warning message under Chrome that the old API used
- Fixed a rare condition that could cause seek to break when seeking inside an HLS encrytped stream
- Fixed using data-viblast-widevine-licensing-server and video.js
- Fix for changing encrypted streams' quality very quickly
- Fixed detecting buffering events in IE 11 and Chrome for Mac
- Fixed signaling EoS for encrypted HLS streams
- Fixed uncaught exception when seeking in IE 11
- ABR API is now exposed through the videojs(...).viblast property
- Preloading is now "on" by default for IE. This fixes the "disabled play button" problem under IE
- Fixed bug causing DASH streams with segment durations less than 1s to freeze
- Fixed video-tag.play() calling after dom has been loaded but before page loads
If you are using the video.js Viblast Player VAST plugin then you have to update the
videojs.viblast-vast.js resource. You can download it or use the cloud-hosted version (same as download link).
- Removed jQuery dependency from player
- Fixed video.js Flash version progress bar when using VAST
- Fixed a bug that initialized the audio buffer with a wrong codec ID under certain conditions
- Fixed choppy VoD playback issue when network goes down & then reconnects
- Fixed possible exception when a page gets unloaded
- Manually fire 'waiting' and 'playing' in order to go around some browser bugs
- Fixed seek in HLS VoD streams that have non-zero MEDIA-SEQUENCE
- Fixed possible “video freeze” when seeking and browser doesn’t fire 'timeupdate' even
Viblast Player v6.0:
- Flash fallback via video.js player
- Added API functionality for ABR
- Added Viblast.printDebugInfo() function
Viblast Player 5.97
- Fixed video playback under Firefox ver >= 42
- Fixed autoplay under Firefox
- Fixed JW Player & Flowplayer integration under Firefox
- Fixed player freezes when seeking backwards in encrypted HLS streams
- License is now checked over HTTPS, fixing bogus error messages when a page is loaded over HTTPS
- Removed some misleading and ill-formated warning messages
- Fixed downloading the same chunks twice when using the Viblast Player Dynamic API and the target video tag has autoplay enabled
- Buffered content clean-up after pausing for a long time. This guards against playback getting behind if paused multiple times. Timeout can be specified using long-pause-timeout.
- viblast.msp.js renamed viblast.remux.js
Viblast Player 5.96
- Improved HLS encryption support (Support for explicit initialization vectors)
- Fixed regression that prevented playback from continuing after pausing video for longer periods
- Fixed a multitude of issues when using Viblast Player with Microsoft Azure
- Support for explicitly turning Viblast Player on/off using data-viblast="true"
Viblast Player 5.94
- VAST support for video.js and JW Player users
- Enhanced HLS VOD support - catch-up TV handling
- Bug fixes
Viblast Player 5.93
- JwPlayer integration
- Support for video elements that get added dynamically to the DOM tree
Viblast Player 5.92
- Various improvements of HLS VOD support, including seek functionality
- Bug fixes
Viblast Player 5.91
- Flowplayer and Video.js integration
- Optimizations for very long VOD playlists
Viblast Player 5.89
- DASH-related bug fixes
- Support for 4K streams
- Fixed signaling and detection of end stream
Viblast Player 5.88
- Major refactoring of Viblast Player and especially its DASH support.
- Smarter downloading of audio segments
- Fixed some minor bugs
Viblast Player 5.86
- Multi-DRM support - both Widevine and PlayReady are supported
Viblast Player 5.85
- Support for DASH video-on-demand (VOD) streams
- Support for seek in DASH VOD streams
Viblast Player 5.84
- Support for DASH dynamic streams
Viblast Player 5.83
- Fixed detection of screen size on HTML5
Viblast Player 5.80
- Fixed handling of missing chunks
Viblast Player 5.79
- HTTP Progressive Streaming for native players
- Publicly available Android version
- Fixed secure web sockets
- Public API that checks for WebRTC support on the current platform
Viblast Player 5.78
- Reworked Android API
- Packaging for Android removing the need for clients to do any JNI themselves