# Share a camera or external source
The screen is the most common share source, but the Video SDK for Android also lets you share a camera as content or an external frame source. Both run through the same `ZoomVideoSDKShareHelper` as a screen share, and you stop them the same way with `stopShare`. For the shared start/stop lifecycle, see [Core features](/docs/video-sdk/android/share/).
## Share a camera as content
`startShareCamera` broadcasts a camera as a separate content stream, distinct from the user's normal video, useful for document cameras or a second perspective. The user must already be sending video; otherwise the call returns `Errors_Session_Share_Camera_Video_Not_Start`.
Add a `ZoomVideoSDKCameraShareView` to your layout, then pass it to `startShareCamera`.
```xml
```
```kotlin
val cameraShareView = findViewById(R.id.camera_share_view)
val result = ZoomVideoSDK.getInstance().shareHelper.startShareCamera(cameraShareView)
if (result != ZoomVideoSDKErrors.Errors_Success) {
// Handle the error (most commonly, user hasn't started video yet).
}
```
```java
ZoomVideoSDKCameraShareView cameraShareView = findViewById(R.id.camera_share_view);
int result = ZoomVideoSDK.getInstance().getShareHelper().startShareCamera(cameraShareView);
if (result != ZoomVideoSDKErrors.Errors_Success) {
// Handle the error (most commonly, user hasn't started video yet).
}
```
## Share an external source
`startSharingExternalSource` feeds frames from a custom pipeline (a USB capture device, a media file decoder, an AR overlay) through the SDK. Implement `ZoomVideoSDKShareSource` for video and (optionally) `ZoomVideoSDKShareAudioSource` for audio.
```kotlin
val source: ZoomVideoSDKShareSource = MyShareSource()
val audioSource: ZoomVideoSDKShareAudioSource = MyShareAudioSource() // or null
ZoomVideoSDK.getInstance().shareHelper.startSharingExternalSource(
source,
audioSource,
true // bPlaying — start emitting frames immediately
)
```
```java
ZoomVideoSDKShareSource source = new MyShareSource();
ZoomVideoSDKShareAudioSource audioSource = new MyShareAudioSource(); // or null
ZoomVideoSDK.getInstance().getShareHelper().startSharingExternalSource(
source,
audioSource,
true // bPlaying — start emitting frames immediately
);
```
Frame format, callback timing, and the rest of the source-implementation surface live alongside the [raw data](/docs/video-sdk/android/raw-data/) APIs. See the `ZoomVideoSDKShareHelper` reference for the full source interfaces.