# Multiple camera support Users can run more than one camera at the same time using the methods provided by the Video SDK for macOS. Multiple cameras can also be used while screen sharing. To enumerate the available cameras and read each camera's `deviceID`, see [Get the camera list](/docs/video-sdk/macos/video/camera-controls/#get-the-camera-list). ## Enable or disable a multi-camera stream Pass a `deviceID` from the camera list to enable or disable that camera as an additional stream. You can supply a custom display name when enabling. Both calls fire `onMultiCameraStreamStatusChanged`. For more information, see [Multi-camera stream status](/docs/video-sdk/macos/video/video-events/#multi-camera-stream-status). ```swift let videoHelper = ZMVideoSDK.shared()?.getVideoHelper() let enableResult = videoHelper?.enableMultiStreamVideo("cameraDeviceID", customDeviceName: nil) let disableResult = videoHelper?.disableMultiStreamVideo("cameraDeviceID") ``` ```objectivec ZMVideoSDKVideoHelper *videoHelper = [[ZMVideoSDK sharedVideoSDK] getVideoHelper]; BOOL enableResult = [videoHelper enableMultiStreamVideo:@"cameraDeviceID" customDeviceName:nil]; BOOL disableResult = [videoHelper disableMultiStreamVideo:@"cameraDeviceID"]; ``` ## Mute or unmute a multi-camera stream Mute or unmute an active multi-camera stream by its `deviceID`. ```swift let videoHelper = ZMVideoSDK.shared()?.getVideoHelper() let muteResult = videoHelper?.muteMultiStreamVideo("cameraDeviceID") let unmuteResult = videoHelper?.unmuteMultiStreamVideo("cameraDeviceID") ``` ```objectivec ZMVideoSDKVideoHelper *videoHelper = [[ZMVideoSDK sharedVideoSDK] getVideoHelper]; BOOL muteResult = [videoHelper muteMultiStreamVideo:@"cameraDeviceID"]; BOOL unmuteResult = [videoHelper unmuteMultiStreamVideo:@"cameraDeviceID"]; ``` ## Map a pipe back to a device ID The local user's multi-camera streams are exposed as `ZMVideoSDKRawDataPipe` objects through `getMultiCameraStreamList`. To find the `deviceID` for a given pipe, use `getDeviceIDByMyPipe`. For more on handling raw data, see [Raw data](/docs/video-sdk/macos/raw-data/). ```swift if let localUser = ZMVideoSDK.shared()?.getSession()?.getMySelf(), let pipeList = localUser.getMultiCameraStreamList() { let videoHelper = ZMVideoSDK.shared()?.getVideoHelper() for pipe in pipeList { let deviceID = videoHelper?.getDeviceIDByMyPipe(pipe) } } ``` ```objectivec ZMVideoSDKUser *localUser = [[[ZMVideoSDK sharedVideoSDK] getSession] getMySelf]; NSArray *pipeList = [localUser getMultiCameraStreamList]; ZMVideoSDKVideoHelper *videoHelper = [[ZMVideoSDK sharedVideoSDK] getVideoHelper]; for (ZMVideoSDKRawDataPipe *pipe in pipeList) { NSString *deviceID = [videoHelper getDeviceIDByMyPipe:pipe]; } ```