Upload Images, Videos, and Annotations
Upload images, videos, and annotations to Roboflow.
The first step to training and deploying a model with Roboflow is to upload data to a Project.
First, you will need to create a Project.
Then, you will be taken to a web page from which you can upload data. You can also access this page from the "Upload Data" button available in your project sidebar.
How to Add Data
You can add data to your Roboflow account by:
Using the web application: Recommended for datasets with fewer than 1,000 images.
Using the command line: Recommended for datasets with greater than 1,000 images.
Using the Dataset Upload Workflow Block: Recommended for collecting data from Workflows with a model already in production.
From the web application and command line, you can upload:
JPG, PNG, WEBP, AVIF, BMP, and HEIC/HEIF images.*
MOV and MP4 videos.
PDF files.
*Max size of 20MB and 16,400 x 10,900 pixels.
You can only upload annotations with their associated images. You cannot upload annotations for images that have already been imported into your dataset.
Upload Data with the Web Application
When you create a project, or on the Upload Data page, you will see a box into which you can drag and drop images, videos, and annotations:

Over 40+ annotation formats are supported. The formats supported vary based on your project type.
How file names are processed
We sanitize class names both at upload/import and export so image file names can be standardized. At upload and dataset export, we perform the following:
Trimming leading/trailing whitespace
All whitespace (including newlines & tabs) are converted to a space
Double spaces are removed
/.[]#~*characters are replaced with a dash (-)|'"characters are removed
Upload Video
Uploaded videos are broken up into individual frames you can annotate. When you upload a video, an extraction dialog opens with a built-in video player and two modes for selecting frames.
Interval extraction
Set a frame rate to sample frames at regular intervals. The highest rate is 60 frames per second; the lowest is 1 frame per 60 seconds. You can disable interval extraction if you only want to pick frames manually.
Manual frame marking
Play or scrub through the video and mark specific frames for extraction. Press the "Mark frame" button or the M key to place a marker at the current position. Step through individual frames with , and ., or jump between markers with Shift+Left and Shift+Right.
You can use both modes together. Interval frames and manual marks are merged and deduplicated, and the dialog shows a live count of total frames to extract.
To extract from only a portion of the video, drag the trim handles on the filmstrip to set a start and end point. Frames outside the trimmed range are excluded.
Click "Extract N frames" to split the video into frames and upload them to your dataset.
When multiple videos are queued, you can apply the same interval settings to all of them. Manual marks are per-video, so each video opens its own dialog when manual marks are present.
Supported video file formats
Roboflow uses your browser's built in support for video files to parse videos into frame images that you can use to train your models. That means you can use many different video formats, including MOV and MP4 files, depending on what browser you are using.
You can check which video formats are supported by your browser.
Note that e.g. HEVC/H.265 encoded MP4 files are only supported by the Safari browser. If you are importing from a GoPro or iPhone that shoots in H.265 you may want to change the settings to H.264 which is more widely supported.
If you are having trouble getting your video file loaded into Roboflow, you can post on our forum or contact your account representative.
Upload Datasets with the Command Line
You can upload larger datasets using the Roboflow Python command line interface.
You can only upload images with the command line interface. If you have videos, you will need to split them into frames saved as files. These files can then be uploaded to Roboflow.
To get started, first install roboflow-python:
Next, retrieve your Workspace ID.
Finally, prepare a command in the following format:
Here are the arguments you need to specify:
-w testupload: This is the workspace name.-p <project-id>: This is your project ID.
When you run the command, you will see a message that indicates the upload process has started. You will then see logs as images upload:

We have a video walkthrough that shows how to upload data from the command line:
View Your Uploaded Data
All data uploaded to Roboflow is uploaded in a "batch". These batches can be viewed on your Project Annotate page:

Image Size limits
The maximum size for an image is 20 MB
The maximum pixel dimensions are 16,400 × 10,900 pixels.
Duplicate Images
If you try to upload an image that is already in a Project, upload for that image will be skipped.
If you merge two datasets, the merged dataset and the two original datasets exist in your account. Therefore, there is no charge for the merge, because the images are duplicates.
Data Ownership
You retain ownership over all images and videos you upload to Roboflow. This is defined in our Section 23B of our Terms of Service:
You retain all ownership rights in any content, information, or materials You post, submit, publish, display, or transmit
Data Privacy
Public Plan: If you are on the Public plan unless explicitly specified and arranged by Roboflow, your datasets will be public on Roboflow Universe.
Paid Plans (including Enterprise): Unless otherwise specified, your data is private to your account.
Last updated
Was this helpful?