1e41f4b71Sopenharmony_ci# Video Recording Development
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci
4e41f4b71Sopenharmony_ci## When to Use
5e41f4b71Sopenharmony_ci
6e41f4b71Sopenharmony_ciUse the camera module APIs to capture video streams.
7e41f4b71Sopenharmony_ci
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ci## Available APIs
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ciFor details, see [Available APIs](subsys-multimedia-camera-photo-guide.md#available-apis).
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci
14e41f4b71Sopenharmony_ci## Constraints
15e41f4b71Sopenharmony_ci
16e41f4b71Sopenharmony_ciNone
17e41f4b71Sopenharmony_ci
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ci## How to Develop
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ci1. Perform step 1 through step 4 described in [Photographing Development](subsys-multimedia-camera-photo-guide.md).
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci2. Obtain the **FrameConfig** instance for video recording.
24e41f4b71Sopenharmony_ci     
25e41f4b71Sopenharmony_ci   ```
26e41f4b71Sopenharmony_ci   /* Obtain the surface from the recorder. */
27e41f4b71Sopenharmony_ci   Surface *surface = recorder_->GetSurface(0);
28e41f4b71Sopenharmony_ci   surface->SetWidthAndHeight(1920, 1080);
29e41f4b71Sopenharmony_ci   surface->SetQueueSize(3);
30e41f4b71Sopenharmony_ci   surface->SetSize(1024 * 1024);
31e41f4b71Sopenharmony_ci   /* Add the surface to the FrameConfig instance. */
32e41f4b71Sopenharmony_ci   FrameConfig *fc = new FrameConfig(FRAME_CONFIG_RECORD);
33e41f4b71Sopenharmony_ci   fc->AddSurface(*surface);
34e41f4b71Sopenharmony_ci   ```
35e41f4b71Sopenharmony_ci
36e41f4b71Sopenharmony_ci3. Start and stop video recording.
37e41f4b71Sopenharmony_ci     
38e41f4b71Sopenharmony_ci   ```
39e41f4b71Sopenharmony_ci   stateCallback->camera_->TriggerLoopingCapture(*fc); // Start recording.
40e41f4b71Sopenharmony_ci   stateCallback->camera_->StopLoopingCapture();       // Stop recording.
41e41f4b71Sopenharmony_ci   ```
42