Cách kết nối với máy ảnh Sony qua Wifi từ Linux


9

Máy ảnh Sony có kết nối Wifi, nhưng phần mềm của họ chỉ được phân phối cho Mac và Windows. (www.sony.net/pm/)

Làm thế nào tôi có thể kết nối với nó từ Linux? (Cụ thể, Fedora 22 <-> DSC-HX60)

Khi tôi bật chức năng đẩy Wifi, camera sẽ cho tôi biết trước tiên tôi cần thêm thông tin thiết bị qua USB. Điều này dường như chỉ có thể với phần mềm PlayMemories đã đề cập ở trên.

Có ai đã tìm ra cách làm tương tự trong Linux chưa?

Trớ trêu thay, có vẻ như máy ảnh tự chạy trên BusyBox: / http://oss.sony.net/Sản phẩm / Linux / ID / DSC-HX60V.html

Tôi không muốn sử dụng Wine hoặc VM để chạy phần mềm Windows.

Câu trả lời:


3

Bạn có thể muốn xem dự án Playmemories thay thế này. Một nhà phát triển xuất sắc đã thiết kế ngược các phần độc quyền của giao thức PTP / IP được sửa đổi của Sony và quản lý để làm cho nó hoạt động với sự kết hợp của tập lệnh Python tùy chỉnh & GPhoto2 .

Cách Sony chuyển hình ảnh là thông qua PTP / IP (Giao thức truyền hình ảnh qua giao thức Internet). Khoảnh khắc bạn bật tùy chọn 'Gửi đến máy tính' từ Máy ảnh, nó bắt đầu truyền các gói UDP UPNP trên mạng đến địa chỉ phát đa hướng (239.255.255.250:1900). Điều này còn được gọi là Giao thức khám phá dịch vụ đơn giản (SSDP). Đồng thời, máy ảnh khởi động máy chủ PTP / IP trên cổng 15740. Các gói UPNP chứa tất cả các chi tiết kết nối. Ứng dụng Playmemories (hoặc sony-pm-alt.py) xem các gói này và sau đó quay lại nhấn máy chủ PTP / IP và chuyển ảnh.

Sony yêu cầu một số gói không chuẩn để hiển thị 'Gửi ...' trên máy ảnh. Điều này cũng áp dụng cho tính năng tự động tắt khi hoàn tất. Nếu không có điều này, bạn có khoảng 2 phút để chuyển ảnh trước khi camera dừng lại và bạn không có xác nhận nào rằng nó hoạt động. Ngoài ra, máy ảnh sẽ vẫn bật để bạn không thể bỏ đi nếu không pin của bạn sẽ tiếp tục cạn kiệt. Tôi đã hy vọng sẽ có một gói ma thuật để bật các tùy chọn này, nhưng điều này dường như không phải là trường hợp. Thực hiện một loạt các tcpdumps tôi có thể xác định gói nào làm cho nó hoạt động. Tôi đã bắt đầu với hơn 100 gói cần thiết và cuối cùng đã thu hẹp nó xuống còn 23 gói (cập nhật: 4 gói để bắt đầu và 3 gói để kết thúc). Tôi cũng hy vọng tôi có thể gửi các gói này trực tiếp từ python bằng cách sử dụng phiên tcp khác với gphoto, nhưng không gặp may. Vì thế, Tôi đã kết thúc việc hack mã libgphoto để thực hiện công việc này. Nhà phát triển libgphoto sau đó đã tốt bụng làm việc với tôi và kết hợp các thay đổi để khiến mọi thứ hoạt động mà không bị hack.

Tôi đã không tự mình kiểm tra, nhưng có vẻ như @ falk0069 đã thực hiện công việc của yeoman cung cấp một điểm khởi đầu để kết nối với máy ảnh hỗ trợ wifi của Sony.


0

Những điều sau đây dành cho Sony A7, tôi đoán nó tương tự với các máy ảnh Sony khác nhưng không biết DSC-HX60.

Camera có 2 chế độ kết nối Wifi: (a) Chế độ AP ("Kết nối với điện thoại thông minh"), trong đó camera hoạt động như một AP bạn có thể kết nối. Chỉ cung cấp quyền truy cập vào JPG, không phải là raws. API là độc quyền nhưng công khai ( https://developer.sony.com/develop/cameras/ ) (b) Chế độ cơ sở hạ tầng ("Kết nối với máy tính"), trong đó camera kết nối với AP và đẩy bất kỳ tệp nào vào máy tính trên mạng nội bộ. Sử dụng một số hương vị MTP (dựa trên PTP / IP).

Tôi giả sử bạn có nghĩa là (b). Bạn có thể thử gphoto2, mà nên có thể kết nối sử dụng PTP (tuy nhiên, trong vòng 5 phút, tôi đã cố gắng tôi không thể làm cho nó làm việc). Nếu bạn xác định Linux rộng rãi để bao gồm Android, thì bạn có thể sử dụng raw2dng để sao chép các tệp thô vào điện thoại / máy tính bảng của mình - nó sử dụng ngăn xếp PTP / IP của riêng nó (từ chối trách nhiệm: Tôi là tác giả).

Tuy nhiên, đối với (b), không có vấn đề gì, trước tiên bạn sẽ phải "ghép" máy ảnh với máy tính của mình bằng USB. Đây là một giao thức độc quyền chỉ được triển khai trong các chương trình Win / Mac của Sony. Tất cả những gì nó làm là bảo máy ảnh lưu địa chỉ MAC của máy tính. Trong các kết nối trong tương lai, máy chủ lưu trữ địa chỉ MAC của nó như một phần của yêu cầu kết nối ban đầu (không cần đến từ giao diện mạng thực tế).

raw2dng có thể lấy địa chỉ MAC "đã ghép" làm đầu vào, gphoto2 cũng có thể (không chắc chắn - nếu bạn muốn thử, đó là UID 16 byte: 8 * 0x00 + 2 * 0xFF + MAC). Vì vậy, có khả năng bạn có thể ghép máy ảnh với một máy tính Win / Mac khác mà bạn có thể có quyền truy cập và sau đó sử dụng địa chỉ MAC của máy tính đó để kết nối từ hộp Linux của bạn ... (chưa được kiểm tra)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.