The Vonage Video API Windows SDK lets you use Vonage Video API-powered video sessions in Windows apps.
This version fixes an issue where video was briefly stuttering after connecting to another user.
This version fixes an issue where the video resolution was not updating when devices were rotated.
This version adds support for Single Peer Connection. When enabled, it reduces OS resource consumption, improves rate control, and in the case of mobile native devices, supports large sessions. See the documentation for Session.SinglePeerConnection
.
This version adds support for VideoFrame.IsMirrored
, which returns true when the video frame is mirrored. This was previously a beta feature.
This version adds support for advanced noise suppression. This uses the Vonage Media Library to provide enhanced noise cancellation. See the documentation for the Publisher.AudioTransformers
property. This was previously a beta feature.
This version adds support for advanced audio controls. See the documentation for Publisher.AudioBitrate
, Publisher.AutoGainControl
, Publisher.NoiseSuppression
, Publisher.EchoCancellation
, and Publisher.DisableAudioProcessing
. This was previously a beta feature.
This version fixes an issue where, in some cases, the publisher was destroyed when video was muted.
This version adds support for VideoFrame.IsMirrored
, which returns true when the video frame is mirrored. This is a beta feature.
This version adds support for advanced noise suppression. This uses the Vonage Media Library to provide enhanced noise cancellation. See the documentation for the Publisher.AudioTransformers
property. This is a beta feature.
This version adds support for advanced audio controls. See the documentation for Publisher.AudioBitrate
, Publisher.AutoGainControl
, Publisher.NoiseSuppression
, Publisher.EchoCancellation
, and Publisher.DisableAudioProcessing
. This is a beta feature.
This version reduces the size of the SDK by removing the Vonage Media Library code. In order to use methods that use the Vonage Media Library, you must load the Vonage Media Library separately from the Vonage Video Windows SDK. These include the VideoTransformer(string name, string properties)
and AudioTransformer(string name, string properties)
constructors. For more information, see Vonage Media Library integration.
This version fixes a issue where, in some cases, the local publisher was not mirrored.
This version fixes a crash.
This version fixes a bug where CanSubscribe
returned incorrect information in Session.Capabilities
.
This version fixes an issue where an exception error was occurring when IVideoCapturer.SetVideoContentHint()
was called before IVideoCapturer.Init()
was invoked.
This version fixes an issue where the state of captions was not properly updated for subscribers under certain circumstances.
This version fixes a crash.
This version adds support for the
Vonage Media Processor library
and custom media transformers. See the documentation for the Publisher.AudioTransformers
and Publisher.VideoTransformers
properties. This was previously a beta feature.
This version adds support for publisher audio fallback. This was previously a beta feature. See the Publisher audio fallback documentation.
This version adds support for the VP9 codec in relayed sessions. For more information, see the Video Codecs documentation.
This version adds support for end-to-end encryption. You can enable end-to end-encryption using the Session.SetEncryptionSecret()
method. For more information, see the End-to-End Encryption documentation.
This version adds support for adaptive media routing. For more information, see the Adaptive Media Routing documentation.
This version adds some memory management improvements.
This version fixes an issue where certain events were being dropped.
This version adds support for publisher audio fallback. This is a beta feature. See the Publisher audio fallback documentation.
This version improves software-only performance for Vonage Media Processor filters.
This version fixes a rare issue where a crash occurred when closing an application.
This version fixes an issue where, in some cases, users were unable to connect to sessions with both custom TURN servers and IP Proxies enabled.
This version fixes an issue where, in some cases, using custom audio devices was causing publishing failures.
This version fixes some memory leaks.
This version fixes an issue where it sometimes took longer than expected to disconnect from a session.
This version fixes an issue where, in some cases, setting the microphone to mute was causing a crash.
Important: Windows SDK 2.26.0 was published as version 2.26.0-release
. We are looking into the issue.
This version adds support for Live Captions. See the docs for Publisher.PublishCaptions
and Subscriber.SubscribeToCaptions
. This was previously a beta feature.
This version adds support for more
Vonage Media Processor filters. The
background blur filter now accepts a custom radius option. And there is a new background replacement
filter. See the documentation for the Publisher.VideoTransformers
property. These are beta features.
This version adds support for the
Vonage Media Processor library
and custom media transformers. See the documentation for the Publisher.AudioTransformers
and Publisher.VideoTransformers
properties. NVIDIA GPUs are recommended for optimal performance. This is a beta feature.
This version fixes an issue where captions were enabled by default.
This version fixes some memory leaks.
This version fixes an issue where occasionally the app would crash if it was publishing for a very long time.
This version adds support for Live Captions. See the docs for
Publisher.PublishCaptions
and Subscriber.SubscribeToCaptions
. This is beta feature.
This version of the SDK uses an updated version of WebRTC 99, which includes improvements in performance and stability.
Added a OpenTok.IAudioDeviceExtension
interface. You can use this to set up
a custom audio device with methods for enumerating devices, selecting a specific
device, or subscribing to notifications, which can be wired internally to the custom
audio device implementation instead of the default static one. Additionally, the new
The MMAudioDevice class, included in the SDK, implements this interface using the
Windows mmdeviceapi.h interface.
This version fixes an intermittent crash that may occur when publishing and unpublishing rapidly.
This version fixes an issue where starting a session with muted video would disable scalable video.
This version fixes an issue where audio would remain muted for users under certain circumstances.
This version fixes an issue where proxies were not working.
This version fixes an issue where audio device changes could cause the application to crash.
This version fixes an issue where, in some cases, using a proxy server would cause the application to crash.
This version fixes an issue where publishing failures were occurring using certain USB cameras.
This version of the SDK uses WebRTC 99, which includes improvements in performance and stability.
This version adds support for accessing audio data for individual subscribed streams. This was previously
a beta feature. See the docs for the Subscriber.AudioData
event.
This version adds support for an audio output device selection. This was previously a beta feature.
See the docs for the AudioDevice.SetOutputAudioDevice()
method.
This version adds support for integration with Windows OS audio settings. See the documentation for
the OpenTok.AudioDevice.Notifications
class. This was previously a beta feature.
This version fixes an issue in which applications could not connect to a session when IP Proxy was enabled.
This version fixes an issue when the publisher image was frozen when turning video off.
This version fixes an issue when AES-256 was enabled and applications could not connect to clients using on Safari 15.3 and below.
This version adds support for integration with Windows OS audio settings.
See the documentation for the OpenTok.AudioDevice.Notifications
class.
This is a beta feature.
This version fixes an issue that caused excessive bandwidth usage by streams in relayed sessions.
This version fixes an issue where an app may crash when connected to a headset.
This version adds support for accessing audio data for individual subscribed streams. This is a beta feature.
See the docs for the Subscriber.AudioData
event.
This version adds support for an audio output device selection. This is a beta feature. See the docs for the
AudioDevice.SetOutputAudioDevice()
method.
This version adds support for the Custom Dispatcher API. See the reference documentation for the Context class.
In this version, scalable video in H.264 routed sessions is no longer hardcoded.
Adding support for Full High Definition (1920x1080-pixel) resolution. You can specify High1080p
as the
resolution
value you pass into the OpenTok.VideoCapturer.VideoDevice.CreateVideoCapturer()
method.
This was previously a beta feature.
This version adds support for Universal Windows Platform in desktop applications. This was previously a beta feature.
This version adds the ability to enable per-subscriber audio levels. This was previously a beta feature.
See the docs for the Subscriber.AudioVolume
property.
This version implements scalable video support for screen sharing.
This was previously a beta feature. See the Publisher.Builder.ScalableScreenshare
property.
This version fixes an issue where publishers of 1080p or 720p streams to routed sessions published two scalable video layers instead of three.
This version fixes an issue where the camera LED was not turned off when the video was muted.
This version fixes an issue where UTF8 strings in signals were garbled.
This version fixes an issue where VideoCapturer.EnumerateDevices()
does not list all the physical USB cameras.
Adding support for Full High Definition (1920x1080-pixel) resolution. You can specify High1080p
as the
resolution
value you pass into the OpenTok.VideoCapturer.VideoDevice.CreateVideoCapturer()
method.
This is a private beta feature. Please contact Vonage if you would like to enable this feature for
your Video API project.
This version adds support for Universal Windows Platform in desktop applications. This is a beta feature.
This version adds the ability to stream video with an Open Broadcast Software camera.
This version adds the ability to enable per-subscriber audio levels. This is a beta feature.
See the docs for the Subscriber.AudioVolume
property.
This version implements scalable video support for screen sharing.
This is a beta feature. See the Publisher.Builder.ScalableScreenshare
property.
This version adds the ability to enable Opus DTX.
Enabling Opus DTX can reduce bandwidth usage in streams that have long periods of silence.
This was previously a beta feature. See the docs for the Publisher.Builder.OpusDtx
property.
This version fixes an issue where signals may be received out-of-order when an unmanaged DLL fails to load.
This version removes support for cipher TLS_RSA_WITH_3DES_EDE_CBC_SHA.
This version fixes the following issues:
The application may crash when publishing multiple times.
H.264 streams in relayed sessions did not adapt to network conditions.
This version adds the ability to enable Opus DTX.
Enabling Opus DTX can reduce bandwidth usage in streams that have long periods of silence.
This is a beta feature. See the docs for the Publisher.Builder.OpusDtx
property.
This version fixes an issue where video published in H.264 sessions may have low frame rates.
This version adds the ability to dynamically change how published video streams are optimized.
This can improve video performance for some screen-sharing streams and in other conditions.
See the docs for the IVideoCapturer.GetVideoContentHint()
and IVideoCapturer.SetVideoContentHint()
methods.
This version adds the ability for moderators to mute participants. This was previously a beta
feature. See the docs for the Session.ForceMuteAll()
, Session.ForceMuteStream()
, and
Session.DisableForceMute()
methods. Note that the Session.ForceMuteAll()
and Session.ForceMuteStream()
methods no longer include an options
parameter, like they did in the beta version.
This version fixes an issue where video from some models of the Surface Pro could not be published.
This version fixes an issue where apps using some camera models would crash.
This version fixes an issue where apps may crash when gathering audio and video statistics for a subscriber.
This version adds the ability for moderators to mute participants. This is a beta
feature. See the docs for the Session.ForceMuteAll()
and Session.ForceMuteStream()
methods.
This version fixes an issue where the Session.Unpublish()
method may fail if called immediately after publishing.
This version of the SDK uses WebRTC 84, which includes improvements in performance and stability.
This version adds support for RTC audio and video statistics for publishers and subscribers.
See the docs for the Publisher.GetRtcStatsReport()
and Subscriber.GetRtcStatsReport()
methods.
This version fixes an issue where the audio bitrate value set for publishers was handled incorrectly internally.
This version fixes an issue where audio streaming was not working for relayed sessions.
Intermediate Certificates
store.Trusted Root Certification Authorities
of the local Windows machine so that it can use them as valid root certificates when
connecting to OpenTok services.This version fixes the following issue:
The GetPlaneWidth
, GetPlaneHeight
, GetPlaneSize
, GetPlaneStride
, GetPlane
methods of the VideoFrame
class returning incorrect values.
Attaching an instance of an EventHandler
object to either Publisher.AudioLevelArgs
and Subscriber.AudioLevelArgs
was not working.
This version fixes the following issues:
The Publisher.Error
event was not being sent in all scenarios where publishing failed.
The SDK was not proxying all communications correctly when the IP Proxy feature was being used.
This version adds support for the IP Proxy feature.
From this version on, HD resolution will be used for streams that use the scalable video feature, if the device supports it.
From this version on, RGBA video frames are supported in custom video capturers.
This version improves documentation for some methods in the AudioDevice
class.
This version fixes an issue in which a publisher property was not logged correctly causing information to be misrepresented in Inspector.
This version adds support for six-channel audio devices.
This version adds support for custom TURN servers.
This version leverages the builder pattern for initializing
Session
, Publisher
, and Subscriber
objects. See the documentation for the new
Session.Builder
, Publisher.Builder
, and Subscriber.Builder
classes.
These Builder classes replace the Session()
, Publisher()
, and Subscriber()
constructor methods, which are deprecated.
This version fixes the following issues:
Some URLs in the code were preventing apps from receiving FirstNet certification. We have removed these URLs.
The MFCapturer DLL library in the SDK was not being versioned.
Video Capturing was not working on Microsoft Surface devices.
This version fixes the following issues:
The SDK was not proxying all HTTP requests when the IP Proxy feature was being used.
The SDK was reporting incorrect values for the publisher's stream properties after the stream properties had changed.
This version fixes the following issue:
ErrorCode
property set to
OpenTok.ErrorCode.PublisherWebRTCError
.This version fixes the following issue:
The assemblies are now "strong-named," which means they contain a hash to validate that they haven't been modified. This allows you to install OpenTok in the Global Assembly Cache (GAC).
This version fixes the following issues:
The SDK used a temporary cacert.pem file to store certificates.
The apiUrl
parameter of the Session()
constructor did not work.
This version fixes the following issues:
The Session.StreamHasVideoChanged
event is not sent and
the HasVideo
property of a Subscriber object's Stream
property is not
updated when the stream's publisher starts or stops publishing video.
The Session.StreamHasAudioChanged
event is not sent and
the HasAudio
property of a Subscriber object's Stream
property is not
updated when the stream's publisher starts or stops publishing audio.
An app could crash with an access violation 0xC0000005 exception when you initialize a Publisher.
Installing a published app can result in a DllNotFoundException.
Data for published streams is not showing up in OpenTokInspector.
The Nuget package for the OpenTok Windows SDK was not signed.
This version fixes the following issues:
Apps receiving a Session.Signal
event sent using the
OpenTok REST API
would crash.
Reconnecting to sessions would occasionally fail.
This version fixes the following issues:
Sending a signal to a specific client would result in an error.
Apps would crash when running in Unity.
This version adds the following new features:
You can easily change the audio input source (microphone) used by publishers.
Call the static AudioDevice.EnumerateInputAudioDevices()
method to get a list of
AudioDevice.InputAudioDevice
objects, representing available input devices.
Call the AudioDevice.SetInputAudioDevice(audioInput)
method to set the
audio input device used by publishers.
You can implement a custom audio driver to read and write audio data for subscribers
and publishers. Create an implementation the IAudioDevice
interface and its methods.
The IAudioDevice.InitAudio(AudioDevice.AudioBus audioBus)
method is called when the
AudioDevice is initialized. Use the AudioBus object to read write audio data.
The Publisher()
constructor now includes a stereo
parameter, to support publishing
stereo audio from stereo microphones.
The Publisher.AudioLevel
and Subscriber.AudioLevel
events provide dynamic
audio level data for publishers and subscribers.
The Subscriber.PreferredFramerate
and Subscriber.PreferredResolution
properties
let you set the preferred frame rate and resolution for a subscriber’s stream.
This setting only applies to subscribers in a
routed session.
The Publisher.AudioStatsUpdated
and Publisher.VideoStatsUpdated
events are beta features
providing dynamic audio and video statistics for a publisher.
Partners that have the allowed IP add-on feature enabled
for an OpenTok project should set the new ipWhitelist
parameter of the
Session()
constructor to true
when instantiating a Session object.
This version fixes the following issue:
This version adds a VideoFrame.Metadata
property, which lets you set
and get metadata for a video frame when implementing custom video capturers
and renderers.
This version fixes the following issues:
The PacketsLost
property of the OpenTok.Subscriber.VideoNetworkStatsEventArgs
object (sent with the Subscriber VideoStatsUpdated
event) was always set to 0.
Session errors had incorrect code values.
Connecting to sessions was delayed up to 10 seconds on systems with automatic proxy detection. We have improved this on connections after the first attempt.
This version includes the following API changes:
The Subscriber class includes new AudioStatsUpdated
and VideoStatsUpdated
events.
The name of the signal
parameter changed to data
in the
Session.sendSignal()
method.
This version adds support for .NET version 4.0.
This version fixes the following issues:
Exception thrown if the application tries to reconnect to a session after it was forced to disconnect.
Unable to publish video after the network disconnected.
Incorrect exception thrown if the application tries to access to the publisher's stream before the publisher joins the session.
Publishers and subscribers do not create the default video renderer object if none was provided when the publisher or subscriber was created.
Disconnecting from a session may take longer than expected. We are working on a fix for this issue.
In some instances, signals can be sent out of order. We are looking into the issue now.
In some cases, the SDK may not detect proxy settings. We are looking into the issue.
Devices without NVIDIA GPUs may experience poor performance when using Vonage Media Processors. We are looking into the issue.