Menu

Expand
Rate this page:

Changelog: Twilio Video iOS Latest

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.

5.7.0 (June 14, 2023)

This release adds the possibility to enable camera multitasking for a video session.

Enhancements

  • Camera multitasking allows users to continue broadcasting their camera even if the video application is put to background.

Limitations

This feature is supported on a limited set of devices: - iPad Pro (4th generation) - iPad Pro (5th generation) - iPad Air (5th generation)

Known Issues

  • Audio playback fails in some cases when running a simulator on a Mac Mini. #182
  • Unpublishing and republishing a LocalAudioTrack or LocalVideoTrack might not be seen by Participants. #34
  • H.264 video might become corrupted after a network handoff. #147
  • iOS devices do not support more than three H.264 encoders. Refer to #17 for suggested work arounds.
  • Publishing H.264 video at greater than 1280x720 @ 30fps is not supported. If a failure occurs then no error is raised to the developer. [ISDK-1590]

5.6.0 (March 28, 2023)

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

  • This release now uses WebRTC-m105

Known Issues

  • Audio playback fails in some cases when running a simulator on a Mac Mini. #182
  • Unpublishing and republishing a LocalAudioTrack or LocalVideoTrack might not be seen by Participants. #34
  • H.264 video might become corrupted after a network handoff. #147
  • iOS devices do not support more than three H.264 encoders. Refer to #17 for suggested work arounds.
  • Publishing H.264 video at greater than 1280x720 @ 30fps is not supported. If a failure occurs then no error is raised to the developer. [ISDK-1590]

Size Impact

Architecture Compressed Size Uncompressed Size
Universal 6.3 MB 21.2 MB
arm64 6.3 MB 21.2 MB

5.5.0 (January 5, 2023)

Bug Fixes

  • The following thread performance checker warning has been resolved

"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

  • Audio playback fails in some cases when running a simulator on a Mac Mini. #182
  • Unpublishing and republishing a LocalAudioTrack or LocalVideoTrack might not be seen by Participants. #34
  • H.264 video might become corrupted after a network handoff. #147
  • iOS devices do not support more than three H.264 encoders. Refer to #17 for suggested work arounds.
  • Publishing H.264 video at greater than 1280x720 @ 30fps is not supported. If a failure occurs then no error is raised to the developer. [ISDK-1590]

Size Impact

Architecture Compressed Size Uncompressed Size
Universal 5.7 MB 19.1 MB
arm64 5.7 MB 19.1 MB

5.4.0 (November 29, 2022)

Features

  • This release introduces support for a noise cancellation audio device, NoiseCancellationProcessor via a new TwilioAudioProcessors SDK

API 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

  • Audio playback fails in some cases when running a simulator on a Mac Mini. #182
  • Unpublishing and republishing a LocalAudioTrack or LocalVideoTrack might not be seen by Participants. #34
  • H.264 video might become corrupted after a network handoff. #147
  • iOS devices do not support more than three H.264 encoders. Refer to #17 for suggested work arounds.
  • Publishing H.264 video at greater than 1280x720 @ 30fps is not supported. If a failure occurs then no error is raised to the developer. [ISDK-1590]

Size Impact

Architecture Compressed Size Uncompressed Size
Universal 4.7 MB 10.9 MB
arm64 4.7 MB 10.9 MB

5.3.0 (November 7, 2022)

Enhancements

The following code, from our Twilio Video iOS App, illustrates implementing picture in picture using SampleBufferVideoView:

class PictureInPictureViewController: UIViewController {

    @IBOutlet weak var videoView: VideoView!

    private var pipController: AVPictureInPictureController!
    private var pipVideoCallViewController: AVPictureInPictureVideoCallViewController!

    override func viewDidLoad() {
        let sampleBufferVideoCallView = SampleBufferVideoView()
        sampleBufferVideoCallView.contentMode = .scaleAspectFit

        pipVideoCallViewController = AVPictureInPictureVideoCallViewController()
        pipVideoCallViewController.preferredContentSize = CGSize(width: 1080, height: 1920)
        pipVideoCallViewController.view.addSubview(sampleBufferVideoCallView)

        sampleBufferVideoCallView.translatesAutoresizingMaskIntoConstraints = false
        let constraints = [
            sampleBufferVideoCallView.leadingAnchor.constraint(equalTo: pipVideoCallViewController.view.leadingAnchor),
            sampleBufferVideoCallView.trailingAnchor.constraint(equalTo: pipVideoCallViewController.view.trailingAnchor),
            sampleBufferVideoCallView.topAnchor.constraint(equalTo: pipVideoCallViewController.view.topAnchor),
            sampleBufferVideoCallView.bottomAnchor.constraint(equalTo: pipVideoCallViewController.view.bottomAnchor)
        ]
        NSLayoutConstraint.activate(constraints)


        sampleBufferVideoCallView.bounds = pipVideoCallViewController.view.frame

        let pipContentSource = AVPictureInPictureController.ContentSource(
            activeVideoCallSourceView: videoView,
            contentViewController: pipVideoCallViewController
        )

        pipController = AVPictureInPictureController(contentSource: pipContentSource)
        pipController.canStartPictureInPictureAutomaticallyFromInline = true
        pipController.delegate = self
    }
}

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

  • Audio playback fails in some cases when running a simulator on a Mac Mini. #182
  • Unpublishing and republishing a LocalAudioTrack or LocalVideoTrack might not be seen by Participants. #34
  • H.264 video might become corrupted after a network handoff. #147
  • iOS devices do not support more than three H.264 encoders. Refer to #17 for suggested work arounds.
  • Publishing H.264 video at greater than 1280x720 @ 30fps is not supported. If a failure occurs then no error is raised to the developer. [ISDK-1590]

Size Impact

Architecture Compressed Size Uncompressed Size
Universal 4.7 MB 10.9 MB
arm64 4.7 MB 10.9 MB

5.2.1 (September 30, 2022)

Bug Fixes

  • Fixed a bug in Adaptive Simulcast where processing of capturer parameter change events was causing a crash and debug check failure. [VIDEO-11409]

Known Issues

  • Audio playback fails in some cases when running a simulator on a Mac Mini. #182
  • Unpublishing and republishing a LocalAudioTrack or LocalVideoTrack might not be seen by Participants. #34
  • H.264 video might become corrupted after a network handoff. #147
  • iOS devices do not support more than three H.264 encoders. Refer to #17 for suggested work arounds.
  • Publishing H.264 video at greater than 1280x720 @ 30fps is not supported. If a failure occurs then no error is raised to the developer. [ISDK-1590]

Size Impact

Architecture Compressed Size Uncompressed Size
Universal 4.7 MB 10.9 MB
arm64 4.7 MB 10.9 MB

5.2.0 (August 24, 2022)

Bug Fixes

  • Max video bandwidth limits are now applied to each simulcast layer when simulcast is enabled, and the expected behavior for max video bitrates with simulcast is better documented.
  • Fixed several bugs that could cause crashes and deadlocks when a Room is disconnected / destroyed.
  • Fixed a use-after-free bug associated with tasks posted to TaskQueue that could lead to undefined behavior.
  • Fixed a bug which could cause a crash in IceConnectionActivityMonitor when reconnecting to or disconnecting from a Room.
  • Fixed a race condition where subscribed callbacks for Remote Participant could be raised for tracks that have been ended.

Known Issues

  • Audio playback fails in some cases when running a simulator on a Mac Mini. #182
  • Unpublishing and republishing a LocalAudioTrack or LocalVideoTrack might not be seen by Participants. #34
  • H.264 video might become corrupted after a network handoff. #147
  • iOS devices do not support more than three H.264 encoders. Refer to #17 for suggested work arounds.
  • Publishing H.264 video at greater than 1280x720 @ 30fps is not supported. If a failure occurs then no error is raised to the developer. [ISDK-1590]

Size Impact

Architecture Compressed Size Uncompressed Size
Universal 4.7 MB 10.9 MB
arm64 4.7 MB 10.9 MB

5.1.1 (July 5, 2022)

Bug Fixes

  • Fixed symbol naming conflicts for side-by-side support of third-party WebRTC builds. #207

Known Issues

  • On iOS 15.4+, lower frame rate may be observed when H.264 codecs are used. #238
  • Audio playback fails in some cases when running a simulator on a Mac Mini. #182
  • Unpublishing and republishing a LocalAudioTrack or LocalVideoTrack might not be seen by Participants. #34
  • H.264 video might become corrupted after a network handoff. #147
  • iOS devices do not support more than three H.264 encoders. Refer to #17 for suggested workarounds.
  • Publishing H.264 video at greater than 1280x720 @ 30fps is not supported. If a failure occurs then no error is raised to the developer. [ISDK-1590]

Size Impact

Architecture Compressed Size Uncompressed Size
Universal 4.8 MB 11.4 MB
arm64 4.8 MB 11.4 MB

5.1.0 (March 14, 2022)

Features

  • This release introduces Adaptive Simulcast along with new Video Encoding modes for publishers. Adaptive Simulcast reduces publisher resource usage by only sending those encodings for a video track that are needed by subscribers or by the media server (when recording is enabled). This is an opt-in feature and can be enabled by setting the new Connect Option 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

  • Added the videoEncodingMode property to ConnectOptions.
  • The videoEncodingMode API is mutually exclusive with existing codec management APIs EncodingParameters.maxVideoBitrate and preferredVideoCodecs.

Known Issues

  • Audio playback fails in some cases when running a simulator on a Mac Mini. #182
  • Unpublishing and republishing a LocalAudioTrack or LocalVideoTrack might not be seen by Participants. #34
  • H.264 video might become corrupted after a network handoff. #147
  • iOS devices do not support more than three H.264 encoders. Refer to #17 for suggested work arounds.
  • Publishing H.264 video at greater than 1280x720 @ 30fps is not supported. If a failure occurs then no error is raised to the developer. [ISDK-1590]

Size Impact

Architecture Compressed Size Uncompressed Size
Universal 4.8 MB 11.4 MB
arm64 4.8 MB 11.4 MB

5.0.0 (February 14, 2022)

Maintenance

  • The minimum iOS version supported is 12.2.
  • This release is built with Xcode 13.

Enhancements

  • Microphone access will only be requested when recording audio and publishing an audio track.

Notes

  • Starting with iOS 14.5, apps can overwrite the audio interruption caused by smart cover use on iPads. See #225 for more details.

Bug Fixes

  • Fixed a bug which could occur when connected to a Peer-to-Peer or Go Room and publishing a second video track before another Participant joins, causing the connection to be terminated or the second video track not to be fully established.
  • Fixed a bug which could cause the Room connection to be terminated by the server.
  • Fixed a bug which could cause the media connection not to be re-established after network changes.
  • Fixed a bug where audio fails to start in the iOS Simulator on M1 Mac Mini when no microphone is present.

Known Issues

  • Audio playback fails in some cases when running a simulator on a Mac Mini. #182
  • Unpublishing and republishing a LocalAudioTrack or LocalVideoTrack might not be seen by Participants. #34
  • H.264 video might become corrupted after a network handoff. #147
  • iOS devices do not support more than three H.264 encoders. Refer to #17 for suggested workarounds.
  • Publishing H.264 video at greater than 1280x720 @ 30fps is not supported. If a failure occurs then no error is raised to the developer. [ISDK-1590]
Architecture Compressed Size Uncompressed Size
Universal 4.8 MB 11.3 MB
arm64 4.8 MB 11.3 MB
Rate this page:

Need some help?

We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd by visiting Twilio's Stack Overflow Collective or browsing the Twilio tag on Stack Overflow.

Loading Code Sample...
        
        
        

        Thank you for your feedback!

        Please select the reason(s) for your feedback. The additional information you provide helps us improve our documentation:

        Sending your feedback...
        🎉 Thank you for your feedback!
        Something went wrong. Please try again.

        Thanks for your feedback!

        thanks-feedback-gif