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