Time-Lapse Camera Setup: FTP Upload & Image URL Configuration

This guide shows you how to connect your IP camera to webcam.io for automated time-lapse creation. Setup takes approximately 5 minutes with FTP upload — no port forwarding required.

Overview

For time-lapse, webcam.io collects still images (JPEG snapshots) from your camera at regular intervals and automatically creates:

  • Frame player — Interactive “live” time-lapse view on your website
  • Daily videos — MP4/WebM files generated automatically at midnight
  • Historical archive — Browse days, weeks, or months of footage

Two Connection Methods

Comparison of connection methods
Method FTP Upload ⭐ Recommended Image URL (Pull)
How it works Camera pushes images to webcam.io webcam.io fetches images from camera
Port forwarding ❌ Not needed ✅ Required
Dynamic DNS ❌ Not needed ✅ Required
Network security Camera stays behind firewall Camera exposed to internet
Reliability Better for slow/mobile connections Depends on camera availability
Setup time ~5 minutes ~15 minutes
Which Should I Choose?

Use FTP Upload unless you have a specific reason not to. It’s more secure, more reliable, and doesn’t require any router configuration.


Method 1: FTP Upload (Recommended)

With FTP upload, your camera sends images directly to our servers. This is the most reliable method and works even with:

  • Slow internet connections
  • Mobile/4G/LTE connections
  • Firewalled networks
  • Dynamic IP addresses

Step 1: Create Webcam in Dashboard

  1. Log in to webcam.io Dashboard
  2. Click WebcamsAdd New Webcam
  3. Enter a name for your camera
  4. Select FTP Upload as the connection method
  5. Click Save

Step 2: Get Your FTP Credentials

After saving, your unique FTP credentials are sent via email and appear on the same page:

Your FTP credentials (example)
Field Example Value
FTP Server ftp.webcam.io
Username user_a1b2c3d4
Password Xk9mP2qR7s
Port 21
Save Your Credentials

Copy these credentials now — you’ll need them for your camera settings. You can also find them later in your webcam settings or in the confirmation email.

Step 3: Configure Your Camera

Now configure your IP camera to upload snapshots via FTP. The exact steps vary by brand — see camera-specific guides below.

General settings to configure:

Setting Value Notes
FTP Server ftp.webcam.io Or use static IP if DNS doesn’t work
Port 21 Standard FTP port
Username Your webcam.io username From Step 2
Password Your webcam.io password From Step 2
Passive Mode Enabled required
Upload Path / or leave empty Path doesn’t matter
File Format JPEG / JPG Only JPEG supported

Step 4: Set Upload Schedule

Configure your camera to upload images at regular intervals matching your webcam.io settings:

Upload intervals by plan
webcam.io Plan Snapshots/Day Recommended Interval
Free 96 15 minutes
LIVE 1,440 1 minute
LIVE 2,880 30 seconds
LIVE+ 5,760 15 seconds
Match Your Intervals

Set your camera’s upload interval to match your webcam.io plan. Uploading too frequently will be rate-limited and may block your camera temporarily.

Step 5: Test the Connection

  1. Use camera’s test button — Most cameras have a “Test” button in FTP settings
  2. Wait 2–3 minutes — For the first image to upload
  3. Check webcam.io dashboard — And go to Webcams → Your Camera → Show
Test successful?
You should see images appearing in your webcam view. 🎉
Test button shows “Success” but no images?
The test only verifies login. You also need to configure the capture schedule (see camera guides below).

Camera-Specific FTP Setup Guides

Hikvision FTP Setup

Step 1: Configure FTP Server

  1. Log in to camera web interface (http://CAMERA-IP)
  2. Navigate to: Configuration → Network → Advanced Settings → FTP
  3. Enter settings:
Field Value
FTP Server ftp.webcam.io
Port 21
Username Your webcam.io username
Password Your webcam.io password
Directory Structure None
Upload Picture ✅ Enabled
  1. Click Test → Should show “Testing succeeded”
  2. Click Save

Step 2: Configure Capture Schedule

  1. Navigate to: Configuration → Storage → Schedule Settings → Capture
  2. Click Capture Parameters tab
  3. Configure Timing section:
    • Enable Timing Snapshot: ✅
    • Format: JPEG
    • Resolution: Main Stream (or as desired)
    • Quality: Medium or High
    • Interval: Match your plan (e.g., 60000ms = 1 minute)
  4. Click Capture Schedule tab
  5. Draw blue bars for when you want uploads (or select “All Day”)
  6. Click Save

Step 3: Enable FTP Upload for Captures

  1. Navigate to: Configuration → Event → Basic Event → Motion Detection
  2. Go to Linkage Method tab
  3. Check: ✅ Upload to FTP
  4. Click Save

Hikvision RTSP URL (if needed for testing):

rtsp://admin:password@CAMERA-IP:554/Streaming/Channels/101

Axis FTP Setup

Step 1: Configure FTP Recipient

  1. Log in to camera web interface
  2. Navigate to: Settings → System → Events → Recipients
  3. Click Add Recipient
  4. Configure:
Field Value
Name webcam.io
Type FTP
Host ftp.webcam.io
Port 21
Folder /
Username Your webcam.io username
Password Your webcam.io password
Use Passive Mode ✅ Yes
  1. Click Test → Should show green checkmark
  2. Click Save

Step 2: Create Scheduled Event

  1. Navigate to: Settings → System → Events → Rules
  2. Click Add Rule
  3. Configure:
    • Name: Time-lapse Upload
    • Condition: TimePulse → Every 1 minute (or your interval)
    • Action: Send images through FTP
    • Recipient: webcam.io (from Step 1)
    • Stream profile: Select resolution
    • Pre-buffer: 0, Post-buffer: 0
  4. Click Save

Alternative: Use VAPIX CGI

Axis cameras also support direct image URL:

http://user:pass@CAMERA-IP/axis-cgi/jpg/image.cgi?resolution=1920x1080

Dahua FTP Setup

Step 1: Configure FTP Server

  1. Log in to camera web interface
  2. Navigate to: Setup → Network → FTP
  3. Enter settings:
Field Value
Enable
Server Address ftp.webcam.io
Port 21
Username Your webcam.io username
Password Your webcam.io password
Remote Directory /
  1. Click Test → Should succeed
  2. Click Save

Step 2: Configure Snapshot Schedule

  1. Navigate to: Setup → Storage → Schedule → Snapshot
  2. Select channel
  3. Set schedule type: Regular
  4. Configure time periods (blue = active)
  5. Set interval (e.g., 60 seconds)
  6. Click Save

Step 3: Set Snapshot Parameters

  1. Navigate to: Setup → Camera → Encode → Snapshot
  2. Configure:
    • Snapshot Type: Regular
    • Image Size: 1920×1080 (or as desired)
    • Quality: 5 (high)
    • Interval: Match your plan
  3. Click Save

Generic FTP Setup

Most IP cameras support FTP upload. Look for these menu locations:

FTP Server Settings:

  • Network → FTP
  • Advanced → FTP
  • Storage → FTP Upload
  • Event → Notification → FTP

Capture/Snapshot Schedule:

  • Storage → Schedule → Capture
  • Event → Snapshot
  • Recording → Snapshot Settings

Key Settings:

Server: ftp.webcam.io
Port: 21
Username: [from webcam.io dashboard]
Password: [from webcam.io dashboard]
Passive Mode: Enabled
Path: / (or empty)

Can’t find FTP settings?

  1. Check camera manual for “FTP” or “Snapshot upload”
  2. Search: [your camera model] FTP setup
  3. Try ispyconnect.com for camera-specific info

Method 2: Image URL (Pull)

With Image URL mode, webcam.io fetches the latest image from your camera at regular intervals.

Requirements

This method requires:

  • Port forwarding configured on your router
  • Dynamic DNS hostname (unless you have a static IP)
  • Camera accessible from the internet

If you’re unsure, use FTP Upload instead.

Step 1: Find Your Camera’s Snapshot URL

Your camera has a URL that returns the current image as JPEG. Common formats:

http://user:pass@CAMERA-IP/ISAPI/Streaming/channels/101/picture

or

http://user:pass@CAMERA-IP/Streaming/Channels/1/picture
http://user:pass@CAMERA-IP/axis-cgi/jpg/image.cgi

With resolution:

http://user:pass@CAMERA-IP/axis-cgi/jpg/image.cgi?resolution=1920x1080
http://user:pass@CAMERA-IP/cgi-bin/snapshot.cgi
http://user:pass@CAMERA-IP/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=USER&pwd=PASS
http://user:pass@CAMERA-IP/onvif-http/snapshot

Use ispyconnect.com/cameras:

  1. Select your camera brand
  2. Find your model
  3. Look for “JPEG” or “Snapshot” URL

Step 2: Set Up Port Forwarding

Forward port 80 (HTTP) or your camera’s web port to your camera’s local IP:

External Port Internal IP Internal Port Protocol
80 192.168.1.100 80 TCP

See Live Streaming Setup → Port Forwarding for detailed instructions.

Step 3: Set Up Dynamic DNS

Create a hostname that always points to your router:

  1. Register at No-IP, DuckDNS, or similar
  2. Configure DDNS in your router settings
  3. Your hostname: e.g., mywebcam.ddns.net

See Live Streaming Setup → Dynamic DNS for detailed instructions.

Step 4: Build Your External URL

Combine your DDNS hostname with the camera path:

http://username:password@mywebcam.ddns.net/ISAPI/Streaming/channels/101/picture

Test in browser: Paste the URL — you should see the current camera image.

Step 5: Configure in webcam.io

  1. Log in to webcam.io Dashboard
  2. Click WebcamsAdd New Webcam
  3. Enter a name for your camera
  4. Select Image URL as connection method
  5. Enter your full image URL
  6. Set capture interval
  7. Click Save
JPEG Only

webcam.io only processes single JPEG images. MJPEG streams (/mjpg/video.mjpg) are not supported for time-lapse.


Configure Time-Lapse Settings

After connecting your camera, configure these additional settings:

Capture Interval

Choose how often to capture images:

Capture interval recommendations
Interval Images/Day Best For
15 seconds 5,760 Fast action, short projects
30 seconds 2,880 Construction, weather
1 minute 1,440 General time-lapse
5 minutes 288 Long-term projects
15 minutes 96 Seasonal changes

Active Hours (Timer)

Limit capture to specific times to save storage and avoid dark/useless images:

  • Daytime only: 6:00 AM – 8:00 PM
  • Sunrise/Sunset: Automatic based on location (see Timer Settings)
  • Business hours: 8:00 AM – 6:00 PM, Mon–Fri

Resolution

Configure in your camera settings:

Resolution vs. file size
Resolution File Size Recommended For
1920×1080 (1080p) ~200–400 KB Standard time-lapse
2560×1440 (2K) ~400–600 KB Detail-important scenes
3840×2160 (4K) ~800 KB–1.5 MB Professional/archival

Troubleshooting

FTP Issues

Cause: FTP login works, but capture schedule isn’t configured.

Solution: Configure your camera’s snapshot/capture schedule:

  • Hikvision: Configuration → Storage → Schedule Settings → Capture
  • Axis: Settings → Events → Rules (create scheduled event)
  • Dahua: Setup → Storage → Schedule → Snapshot

Also check that “Upload to FTP” is enabled in linkage/action settings.

Possible causes:

  1. Wrong server address — Use ftp.webcam.io exactly
  2. DNS resolution fails — Try static IP instead
  3. Firewall blocking outbound FTP — Allow port 21 outbound
  4. Passive mode disabled — Enable passive mode in camera settings

Test FTP manually:

# From command line (Linux/Mac)
ftp ftp.webcam.io
# Enter username and password when prompted

Check:

  • Username matches exactly (case-sensitive)
  • Password has no extra spaces
  • Credentials haven’t been reset (re-check dashboard)

Note: If you switch connection method in webcam.io settings, FTP credentials are regenerated.

Check:

  • File format is JPEG (not PNG, BMP, or video)
  • Upload interval matches webcam.io settings
  • Timer settings allow current time
  • Check Dashboard → Info for error messages

webcam.io rate-limits uploads that exceed your plan’s snapshots/day.

Solution:

  • Increase upload interval in camera settings
  • Disable motion-triggered uploads
  • Only enable timed/scheduled uploads

Image URL Issues

Check:

  1. URL works in your browser (from outside your network)
  2. Port forwarding is correct
  3. DDNS hostname resolves correctly
  4. Camera credentials in URL are correct
  5. URL returns JPEG, not HTML or MJPEG stream

Cause: Port forwarding not configured or not working.

Test:

  1. Use yougetsignal.com/tools/open-ports/ to check if port is open
  2. Test from mobile phone (with WiFi off) or ask a friend
  3. Check if ISP blocks port 80 — try a different port

Alternative: Script-Based Upload

For custom setups (Raspberry Pi, Linux servers, etc.), you can upload images via command line:

Using lftp

#!/bin/bash
# Upload image to webcam.io

# Configuration
FTP_USER="user_a1b2c3d4"
FTP_PASS="Xk9mP2qR7s"
FTP_HOST="ftp.webcam.io"
IMAGE_FILE="/path/to/snapshot.jpg"

# Upload
lftp -e "put $IMAGE_FILE; bye" -u $FTP_USER,$FTP_PASS $FTP_HOST

Using curl

curl -T snapshot.jpg ftp://ftp.webcam.io/ \
  --user "user_a1b2c3d4:Xk9mP2qR7s"

Capture + Upload (Raspberry Pi)

#!/bin/bash
# Capture image from USB webcam and upload

# Capture
fswebcam -r 1920x1080 --jpeg 85 /tmp/snapshot.jpg

# Upload
lftp -e "put /tmp/snapshot.jpg; bye" \
  -u user_a1b2c3d4,Xk9mP2qR7s ftp.webcam.io

Schedule with cron:

# Run every minute
* * * * * /home/pi/upload-webcam.sh

Next Steps

Your camera is now connected! Continue with:

  1. Embed Widgets — Add time-lapse player to your website
  2. Video Clips — Create highlight clips from your footage
  3. Text Overlays — Add timestamps, branding, weather data
  4. Timer Settings — Configure active hours and sunrise/sunset
  5. Backups & Export — Auto-export to YouTube or Dropbox
Need Help?

If you’re stuck, contact us with:

  • Your camera make/model
  • Connection method (FTP or URL)
  • Any error messages from the dashboard

We’re happy to help troubleshoot!

Back to top