The Twilio Programmable Video SDKs use Semantic Versioning. Twilio supports version N-1 for 12 months after the first GA release of version N. We recommend you upgrade to the latest version as soon as possible to avoid any breaking changes. Version 5.x is the latest Video iOS version.
Support for 4.x will cease on February 14th, 2023. This branch will only receive fixes for critical issues until that date. Check this guide when planning your migration to 5.x.
Support for iOS SDK version 3.x ended on December 4, 2021.
To ensure your account has the most up-to-date features and bug fixes, we recommend updating your Twilio Video SDK at least once a quarter.
The Twilio Programmable Video SDKs use Semantic Versioning.
Bug Fixes
Known Issues
LocalAudioTrack
or LocalVideoTrack
might not be seen by Participants. #34Size Impact
Architecture | Compressed Size | Uncompressed Size |
---|---|---|
Universal | 6.0 MB | 20.4 MB |
arm64 | 6.0 MB | 20.4 MB |
Enhancements
Known Issues
LocalAudioTrack
or LocalVideoTrack
might not be seen by Participants. #34Size Impact
Architecture | Compressed Size | Uncompressed Size |
---|---|---|
Universal | 6.0 MB | 20.4 MB |
arm64 | 6.0 MB | 20.4 MB |
Enhancements
insightsEnabled
property is enabled in TVIConnectOptions
.
The required reason APIs included in the privacy manifest are for internal usage by WebRTC and are not used directly by the Video SDK.Known Issues
LocalAudioTrack
or LocalVideoTrack
might not be seen by Participants. #34Size Report
Architecture | Compressed Size | Uncompressed Size |
---|---|---|
Universal | 6.0 MB | 20.4 MB |
arm64 | 6.0 MB | 20.4 MB |
Enhancements
Known Issues
LocalAudioTrack
or LocalVideoTrack
might not be seen by Participants. #34Size Report
Architecture | Compressed Size | Uncompressed Size |
---|---|---|
Universal | 6.0 MB | 20.4 MB |
arm64 | 6.0 MB | 20.4 MB |
This release is now available through CocoaPods again as we have resolved the issue.
Bug Fixes
didFailToPublishVideoTrack
callback.Known Issues
LocalAudioTrack
or LocalVideoTrack
might not be seen by Participants. #34Size Impact
Architecture | Compressed Size | Uncompressed Size |
---|---|---|
Universal | 6.3 MB | 21.2 MB |
arm64 | 6.3 MB | 21.2 MB |
This release adds the possibility to enable camera multitasking for a video session.
Enhancements
Limitations
This feature is supported on a limited set of devices:
Known Issues
LocalAudioTrack
or LocalVideoTrack
might not be seen by Participants. #34Size Impact
Architecture | Compressed Size | Uncompressed Size |
---|---|---|
Universal | 6.3 MB | 21.2 MB |
arm64 | 6.3 MB | 21.2 MB |
This release is not available through CocoaPods because CocoaPods has incorrectly removed the ownership of this project from Twilio. We will publish the pod for this release as soon as the ownership issue is resolved.
Enhancements
Known Issues
LocalAudioTrack
or LocalVideoTrack
might not be seen by Participants. #34Size Impact
Architecture | Compressed Size | Uncompressed Size |
---|---|---|
Universal | 6.3 MB | 21.2 MB |
arm64 | 6.3 MB | 21.2 MB |
Bug Fixes
"Thread Performance Checker: -[AVCaptureSession startRunning] should be called from background thread. Calling it on the main thread can lead to UI unresponsiveness"
Maintenance
"Starting with Xcode 14, bitcode is no longer required for watchOS and tvOS applications, and the App Store no longer accepts bitcode submissions from Xcode 14."
"Xcode no longer builds bitcode by default and generates a warning message if a project explicitly enables bitcode: "Building with bitcode is deprecated. Please update your project and/or target settings to disable bitcode." The capability to build with bitcode will be removed in a future Xcode release. IPAs that contain bitcode will have the bitcode stripped before being submitted to the App Store. Debug symbols can only be downloaded from App Store Connect / TestFlight for existing bitcode submissions and are no longer available for submissions made with Xcode 14. (86118779)"
Known Issues
LocalAudioTrack
or LocalVideoTrack
might not be seen by Participants. #34Size Impact
Architecture | Compressed Size | Uncompressed Size |
---|---|---|
Universal | 5.7 MB | 19.1 MB |
arm64 | 5.7 MB | 19.1 MB |
Features
NoiseCancellationProcessor
via a new TwilioAudioProcessors SDKAPI Changes
TVIAudioDeviceFormatChanged
method is now marked as deprecated and will raise a warning to use TVIAudioDeviceReinitialize
instead. The API will be removed in v6.0+.Known Issues
LocalAudioTrack
or LocalVideoTrack
might not be seen by Participants. #34Size Impact
Architecture | Compressed Size | Uncompressed Size |
---|---|---|
Universal | 4.7 MB | 10.9 MB |
arm64 | 4.7 MB | 10.9 MB |
Enhancements
SampleBufferVideoView
is added for picture in picture support. In order for picture in picture to work on iOS 15+, your app must have com.apple.developer.avfoundation.multitasking-camera-access entitlement.The following code, from our Twilio Video iOS App, illustrates implementing picture in picture using SampleBufferVideoView
:
1class PictureInPictureViewController: UIViewController {23@IBOutlet weak var videoView: VideoView!45private var pipController: AVPictureInPictureController!6private var pipVideoCallViewController: AVPictureInPictureVideoCallViewController!78override func viewDidLoad() {9let sampleBufferVideoCallView = SampleBufferVideoView()10sampleBufferVideoCallView.contentMode = .scaleAspectFit1112pipVideoCallViewController = AVPictureInPictureVideoCallViewController()13pipVideoCallViewController.preferredContentSize = CGSize(width: 1080, height: 1920)14pipVideoCallViewController.view.addSubview(sampleBufferVideoCallView)1516sampleBufferVideoCallView.translatesAutoresizingMaskIntoConstraints = false17let constraints = [18sampleBufferVideoCallView.leadingAnchor.constraint(equalTo: pipVideoCallViewController.view.leadingAnchor),19sampleBufferVideoCallView.trailingAnchor.constraint(equalTo: pipVideoCallViewController.view.trailingAnchor),20sampleBufferVideoCallView.topAnchor.constraint(equalTo: pipVideoCallViewController.view.topAnchor),21sampleBufferVideoCallView.bottomAnchor.constraint(equalTo: pipVideoCallViewController.view.bottomAnchor)22]23NSLayoutConstraint.activate(constraints)242526sampleBufferVideoCallView.bounds = pipVideoCallViewController.view.frame2728let pipContentSource = AVPictureInPictureController.ContentSource(29activeVideoCallSourceView: videoView,30contentViewController: pipVideoCallViewController31)3233pipController = AVPictureInPictureController(contentSource: pipContentSource)34pipController.canStartPictureInPictureAutomaticallyFromInline = true35pipController.delegate = self36}37}38
Please note that the render hints are not supported in picture in picture mode except for the track switch on and off hints when the SampleBufferVideoView
renderer is added and removed from the RemoteVideoTrack
respectively. As a result when the app is in the background and in picture in picture mode, the displayed RemoteVideoTrack
will still be active (e.g Dominant Speaker track), consuming bandwidth, and it will have the default spatial dimension determined by the media server.
Known Issues
LocalAudioTrack
or LocalVideoTrack
might not be seen by Participants. #34Size Impact
Architecture | Compressed Size | Uncompressed Size |
---|---|---|
Universal | 4.7 MB | 10.9 MB |
arm64 | 4.7 MB | 10.9 MB |
Bug Fixes
Known Issues
LocalAudioTrack
or LocalVideoTrack
might not be seen by Participants. #34Size Impact
Architecture | Compressed Size | Uncompressed Size |
---|---|---|
Universal | 4.7 MB | 10.9 MB |
arm64 | 4.7 MB | 10.9 MB |
Bug Fixes
Known Issues
LocalAudioTrack
or LocalVideoTrack
might not be seen by Participants. #34Size Impact
Architecture | Compressed Size | Uncompressed Size |
---|---|---|
Universal | 4.7 MB | 10.9 MB |
arm64 | 4.7 MB | 10.9 MB |
Bug Fixes
Known Issues
LocalAudioTrack
or LocalVideoTrack
might not be seen by Participants. #34Size Impact
Architecture | Compressed Size | Uncompressed Size |
---|---|---|
Universal | 4.8 MB | 11.4 MB |
arm64 | 4.8 MB | 11.4 MB |
Features
videoEncodingMode
to auto
, which allows the SDK to select video codecs, use adaptive simulcast and manage encodings automatically. This feature cannot be used alongside EncodingParameters.maxVideoBitrate
.API Changes
videoEncodingMode
property to ConnectOptions
.videoEncodingMode
API is mutually exclusive with existing codec management APIs EncodingParameters.maxVideoBitrate
and preferredVideoCodecs
.Known Issues
LocalAudioTrack
or LocalVideoTrack
might not be seen by Participants. #34Size Impact
Architecture | Compressed Size | Uncompressed Size |
---|---|---|
Universal | 4.8 MB | 11.4 MB |
arm64 | 4.8 MB | 11.4 MB |
Maintenance
Enhancements
Notes
Bug Fixes
Known Issues
LocalAudioTrack
or LocalVideoTrack
might not be seen by Participants. #34Architecture | Compressed Size | Uncompressed Size |
---|---|---|
Universal | 4.8 MB | 11.3 MB |
arm64 | 4.8 MB | 11.3 MB |