Starts video capture or interval image capture depending on value of captureMode in Options. This command was added in API level 2.


  • This command has no parameter in request body. Whether it is interval image capture or video capture is determined by captureMode option. For interval capture, whether it is open ended capture or not depends on whether captureNumber is equal to or larger than 0. captureMode, captureInterval and captureNumber need to be set prior to interval capture. Only captureMode needs to be set to "video" prior to video capture, which can only be stopped by camera.stopCapture command.


  • Open-ended capture (when captureMode == "video" or captureNumber == 0)
    • No results.
  • Non-open-ended interval capture:
    • fileUrls: A list of absolute URLs, pointing to image files for interval capture. Please note this command doesn’t return fileUrls immediately since the capture takes captureNumber to complete. The progress of the command can be obtained by polling the camera periodically. For example, poll after an estimated duration (time = captureInterval * (captureNumber - 1)) using the /osc/commands/status API and fileUrls is the result returned when the command finishes. If the command doesn’t finish successfully (e.g. only 3 out of images were taken before the camera runs out of battery) or the camera is disconnected from the client phone in the middle, but the command does finish successfully, the client should be able to obtain the images using the camera.listFiles later when a new connection is established between the client and the camera.


  • disabledCommand: Command is currently disabled; for example, the camera is in the middle of a video capture or an interval capture.
  • invalidParameterName: The parameter name is unrecognized; for example, sessionId is not recognized.

Command I/O

Command Input
Command Output
    "results": {
Command Output (Error)
    "error": {
        "code": "disabledCommand",
        "message": "Command is currently disabled."