Description
Import photos/videos directly from mirrorless cameras to Capsule app directly. We will support Sony Alpha cameras for now and to each camera.
Use Case
Professional photographers often face a barrier from acquisition to import. The most common solution is taking the SD/CFExpress cards and copying over into a computer. We want importing content directly into Capsule to be efficient and robust.
Proposed Solution (optional)
Most professional cameras support PTP/IP and some extension. Specifically for Sony, it also extends write functionality (e.g. deleting files) via Camera Remote API. They provide a C++ SDK (compileable for only common desktop platforms) and an application: https://pro.sony/en_CA/digital-imaging/camera-remote-toolkit
There are existing libraries that may provide a working PTP/IP implementation (e.g., https://github.com/gphoto/libgphoto2) but it may be best to implement our own portable library in Rust instead.
Technical considerations:
- All transfers should be robust against data-loss. Checksum end-to-end (note PTP/IP does not provide any hashes by itself but TCP's guarantees is "good enough").
- Imports from any device (including from cameras) should be deduplicated on import. This prevents re-imports from including previously imported assets.
Description
Import photos/videos directly from mirrorless cameras to Capsule app directly. We will support Sony Alpha cameras for now and to each camera.
Use Case
Professional photographers often face a barrier from acquisition to import. The most common solution is taking the SD/CFExpress cards and copying over into a computer. We want importing content directly into Capsule to be efficient and robust.
Proposed Solution (optional)
Most professional cameras support PTP/IP and some extension. Specifically for Sony, it also extends write functionality (e.g. deleting files) via Camera Remote API. They provide a C++ SDK (compileable for only common desktop platforms) and an application: https://pro.sony/en_CA/digital-imaging/camera-remote-toolkit
There are existing libraries that may provide a working PTP/IP implementation (e.g., https://github.com/gphoto/libgphoto2) but it may be best to implement our own portable library in Rust instead.
Technical considerations: