Camera RAW vs. JPEG Ingestion & High-Speed Proxy Pipeline
Supported camera RAW formats, upload limits, client vs server Sharp proxy generation, and performance optimization.
High-Throughput Proxy Architecture
Photographers demand uncompromised image fidelity while requiring snappy, zero-latency browser performance when reviewing thousands of images. BestShots.AI delivers both by pairing client-side Web Worker extraction with direct-to-cloud proxy streaming (ADR 0015). Original camera RAW sensor bytes remain 100% on your local workstation, while high-fidelity 2048px WebP inspection proxies are uploaded to the cloud in seconds.
Supported Camera RAW & Image Formats
BestShots provides native ingestion support for 21 authentic camera RAW and raster formats across all major camera manufacturers:
| Manufacturer / Standard | File Extensions | Notes & Specifications |
|---|---|---|
| Sony Alpha | .ARW, .SRF, .SR2 | Uncompressed, Lossless Compressed, and Compressed RAW from all A7, A1, A9, and FX series cameras. |
| Canon EOS | .CR3, .CR2, .CRW | Dual Pixel RAW, C-RAW (Compact RAW), and standard RAW formats across modern mirrorless and legacy DSLRs. |
| Nikon Z & D | .NEF, .NRW | Lossless 14-bit and High Efficiency RAW (HE*) from Z9, Z8, Z6/Z7, and legacy D-series bodies. |
| Fujifilm X & GFX | .RAF | X-Trans sensor patterns and medium format GFX RAW files. |
| Panasonic Lumix | .RW2 | Micro Four Thirds and full-frame Lumix S series RAW captures. |
| Olympus / OM System | .ORF | High-resolution shot modes and standard OM System captures. |
| Leica & Adobe | .DNG, .RWL | Universal digital negatives, Leica M/SL series, and aerial drone DNG captures. |
| Hasselblad | .3FR, .FFF | Medium format captures from X and H system digital backs. |
| Phase One | .IIQ | High-bitrate IQ series commercial medium format files. |
| Pentax | .PEF | Pentax K-series DSLR and mirrorless RAW captures. |
| Kodak & Leaf | .KDC, .MOS | Archival and legacy digital medium format studio captures. |
| Apple iOS / macOS | .HEIC, .HEIF | High Efficiency Image Container photos from iPhones with depth maps and Apple ProRAW. |
| Standard Raster | .JPG, .JPEG, .PNG, .WebP, .AVIF | Full-resolution JPEG deliverables and modern web formats. |
Smart Typo Guidance
If a file with a common extension typo is dragged into the dropzone (such as .awr instead of .arw, .rc3 instead of .cr3, or .fen instead of .nef), BestShots actively detects the typo and displays a guidance card indicating the correct camera manufacturer format.
Fast Cloud Ingestion Architecture (ADR 0015)
Traditional web applications attempt to upload whole 50MB to 100MB camera RAW files to serverless functions. For a 2,000-frame wedding or studio shoot, that requires uploading 60GB to 150GB of data, taking hours and often triggering timeouts or connection drops.
BestShots solves this via Previews-Only Cloud Ingestion (ADR 0015):
Request SAS Token
Client requests time-bound upload SAS signature from BestShots API.
Direct Stream to Azure Blob
Browser streams up to 50MB RAW directly, bypassing the 4.5MB Vercel cap.
Event Grid & Sharp Proxy
Azure Functions extract EXIF tags and render 300x300 WebP proxies.
How It Works Under the Hood
- Chunked Binary Slicing: Using HTML5
File.slice(), dedicated background Web Workers inspect only the header and container chunks of local camera files. The massive multi-megabyte sensor data is never loaded entirely into browser RAM. - ISP Embedded Preview Extraction: The
exifrparser isolates the high-resolution JPEG preview generated directly by your camera's image signal processor (ISP) and embedded within the RAW container. - Hardware-Accelerated Decoding: The browser's native
createImageBitmap()decodes the preview on worker threads, applying EXIF orientation tags automatically. - Normalized WebP Inspection Proxy:
OffscreenCanvasrenders an optimized 2048px WebP proxy (~250KB–500KB at 85% quality) and a 300px thumbnail. - Lossless EXIF Metadata Preservation: Camera make, camera model, lens, focal length, shutter speed, aperture (f-number), ISO, and capture timestamp are parsed client-side with zero server round-trips.
- Direct Azure Blob Upload via SAS: Only the lightweight 2048px WebP inspection proxy is uploaded to Microsoft Azure Blob Storage using secure Shared Access Signature tokens.
- Over 95% Bandwidth Reduction: Ingesting a 50GB RAW shoot requires transmitting only ~1.2GB of WebP proxies. Uploads finish in 2 to 3 minutes instead of multiple hours.
- Zero Cloud RAW Exposure: Your master RAW files remain 100% on your local workstation or external SSD.
Network-Adaptive Concurrency
The client upload manager inspects browser navigator.connection metrics to optimize throughput:
- Fast Broadband / Fiber (4G/5G/WiFi): Runs up to 4 parallel upload streams simultaneously.
- Constrained / Mobile Connections (2G/3G): Automatically throttles down to 1 to 2 streams with chunked retries to prevent connection exhaustion.
Recommended Ingestion Strategies
Choose the strategy that fits your studio workflow:
Strategy A: Direct RAW Ingestion (Recommended)
- Best For: All shoots, including studio sessions, weddings, and commercial projects.
- How It Works: Drag your camera RAW files (
.ARW,.CR3,.NEF,.RAF, etc.) directly into BestShots. The app extracts 2048px proxies locally in seconds, runs AI analysis, and exports an XMP Workflow Bundle. - Advantage: Zero pre-conversion required. Master RAW files stay safely on your computer.
Strategy B: Companion RAW+JPEG Shoot
- Best For: Photographers who capture dual-slot RAW + JPEG in camera.
- How It Works: Upload either the RAW files or companion JPEGs. Because camera files share identical base filenames (e.g.
080A0386.CR3and080A0386.JPG), exported.xmpsidecars pair seamlessly with both formats. - Sync Back: BestShots generates
.xmpsidecars retaining original camera stems ({originalName}). Moving sidecars into your photo folder synchronizes ratings across both RAW and JPEG files simultaneously.
System Architecture & Serverless Pipeline
High-throughput architecture connecting Next.js 15, Neon PostgreSQL pgvector, and Azure Functions v4.
Direct-to-Cloud Azure Blob Streaming
Streaming high-fidelity 2048px inspection proxies and raster uploads directly to Microsoft Azure Blob Storage with adaptive concurrency.