ビデオキャプチャのSDLライブラリ.
このAPIはウェブカメラのようにアプリケーションにビデオソースから入力を読み込ませる. カメラデバイスに対して, 一覧の獲得, 問い合わせ, オープンを行うことができる. オープンすると, ビデオから入力があるたびに新しいフレームがSDL_Surfaceオブジェクトとして提供される. これらのサーフェイスはSDL_Textureやメモリ上のピクセル群にすることもできる.
一部の環境では, アプリケーションがカメラにアクセスしようとするとユーザに警告する. さらに一部の環境では, アプリケーションが映像を獲得することを許可するかをユーザに尋ねるダイアログを表示し, 拒否されることもある. カメラのオープンに成功しても許可が確定するまで映像は提供されない. アプリケーションは, カメラデバイスをオープンした後, SDL_GetCameraPermissionState()関数のポーリングでアクセス可能になるまで待つことや, SDL_EVENT_CAMERA_DEVICE_APPROVEDまたはSDL_EVENT_CAMERA_DEVICE_DENIEDイベントを待つことが可能である. ユーザの許可を必要としない環境では, 即座に許可される.
SDLカメラは, 動画ファイル形式でエンコードした全フレームではなく, 映像を1フレームずつ提供することに注意すること. そのため, アプリケーションは必要なフレームをあらゆる形式に自由にエンコードできる. さらに, カメラハードウェアからの音声もこのAPIでは提供されない. 多くのウェブカメラがマイクを搭載していないだけでなく, ストリーム配信からZoomまで大半のユーザはカメラとは別のマイクを使いたいだろう. いずれにせよ, カメラハードウェアのマイクの搭載に関わらず, 入力された音声はSDLのオーディオAPIを通して利用する.
一般向けのカメラハードウェアは, デバイスをオープンした後に使用できるまで時間がかかることがある. 一般的にほとんどのカメラアプリケーションには写真を撮るUI(photo boothの様なレビューの表示と撮影ボタン, ユーザがポーズを取るためのカウントダウン)があり, ユーザが操作するか, 長時間留まる(Pokemon Goなど)場合が多い.
新規にオープンしたカメラが, 真っ暗なフレームに続いて露光不足の映像を送ることは珍しいことではない. もし自動的に1枚のフレームを撮る場合や, ユーザにプレビューを提供せずに録画する場合は, カメラの画像を使用する前に最初の数フレームを無視するのはよい方法である(最初の数秒のフレームに価値がない場合は).