Cómo conectarse a una cámara Sony a través de Wifi desde Linux

9

Las cámaras Sony vienen con conectividad Wifi, pero su software solo se distribuye para Mac y Windows. (www.sony.net/pm/)

¿Cómo me puedo conectar desde Linux? (Específicamente, Fedora 22 <--> DSC-HX60)

Cuando habilito la conexión Wifi, la cámara me dice que primero debo agregar la información del dispositivo a través de USB. Esto solo parece posible con el software PlayMemories mencionado anteriormente.

¿Alguien ha descubierto cómo hacer lo mismo en Linux?

Irónicamente, parece que la cámara se ejecuta en BusyBox: / http://oss.sony.net/Products/Linux/DI/DSC-HX60V.html

PD: Prefiero no usar Wine o una máquina virtual para ejecutar el software de Windows.

cirilo
fuente

Respuestas:

3

Es posible que desee ver este proyecto alternativo de Playmemories . Un destacado desarrollador ha realizado ingeniería inversa de las partes patentadas del protocolo PTP / IP modificado de Sony y ha logrado que funcione con una combinación de un script Python personalizado y GPhoto2 .

La forma en que Sony transfiere imágenes es a través de PTP / IP (Protocolo de transferencia de imágenes a través del Protocolo de Internet). En el momento en que habilita la opción 'Enviar a la computadora' desde la cámara, comienza a transmitir paquetes UPNP UDP a través de la red a la dirección de multidifusión (239.255.255.250:1900). Esto también se conoce como Protocolo simple de descubrimiento de servicios (SSDP). Al mismo tiempo, la cámara inicia un servidor PTP / IP en el puerto 15740. Los paquetes UPNP contienen todos los detalles de la conexión. La aplicación Playmemories (o sony-pm-alt.py) ve estos paquetes y luego da la vuelta y golpea los servidores PTP / IP y transfiere las imágenes.

Sony requiere algunos paquetes no estándar para mostrar 'Enviando ...' en la cámara. Esto también se aplica a la función de apagado automático cuando se hace. Sin esto, tiene aproximadamente 2 minutos para transferir la imagen antes de que la cámara se detenga y no tiene confirmación de que funcionó. Además, la cámara permanecerá encendida para que no pueda alejarse o la batería continuará agotándose. Esperaba que hubiera un paquete mágico para activar estas opciones, pero este no parece ser el caso. Al hacer una serie de tcpdumps pude determinar qué paquetes lo hacen funcionar. Comencé con más de 100 paquetes necesarios y finalmente lo reduje a 23 paquetes (actualización: 4 paquetes para comenzar y 3 paquetes para finalizar). También esperaba poder enviar estos paquetes directamente desde Python usando una sesión de TCP diferente a gphoto, pero no tuve suerte. Entonces, Terminé realmente pirateando el código libgphoto para que esto funcione. El desarrollador de libgphoto tuvo la amabilidad de trabajar conmigo e incorporar cambios para que las cosas funcionen sin la piratería.

No lo he probado yo mismo, pero parece que @ falk0069 ha hecho el trabajo de yeoman proporcionando un punto de partida para conectarse a cámaras con wifi de Sony.

bjmc
fuente
0

Lo siguiente es válido para la Sony A7, supongo que es similar para otras cámaras Sony, pero no conozco la DSC-HX60.

La cámara tiene 2 modos de conexión Wifi: (a) Modo AP ("Conectar a teléfono inteligente"), donde la cámara actúa como un AP al que puede conectarse. Solo da acceso a JPG, no a raws API es propietaria pero pública ( https://developer.sony.com/develop/cameras/ ) (b) Modo Infraestructura ("Conectar a computadora"), donde la cámara se conecta a un AP y empuja cualquier archivo a una computadora en el red local. Utiliza un poco de sabor MTP (basado en PTP / IP).

Supongo que te refieres a (b). Puede probar gphoto2, que debería poder conectarse usando PTP (sin embargo, en los 5 minutos que lo intenté no pude hacerlo funcionar). Si define Linux ampliamente para incluir Android, puede usar raw2dng para copiar archivos sin formato a su teléfono / tableta; usa su propia pila PTP / IP (descargo de responsabilidad: soy el autor).

Sin embargo, para (b), pase lo que pase, primero deberá "emparejar" la cámara con su computadora mediante USB. Es un protocolo patentado que solo se implementa en los programas Win / Mac de Sony. Todo lo que hace es decirle a la cámara que guarde la dirección MAC de la computadora. En futuras conexiones, el host envía su dirección MAC como parte de la solicitud de conexión inicial (no es necesario que provenga de la interfaz de red real).

raw2dng puede tomar la dirección MAC "emparejada" como entrada, gphoto2 también puede serlo (no estoy seguro, si quieres probar, es el UID de 16 bytes: 8 * 0x00 + 2 * 0xFF + MAC). Por lo tanto, podría emparejar la cámara con otra computadora Win / Mac a la que pueda tener acceso y luego usar la dirección MAC de esa computadora para conectarse desde su caja Linux ... (sin probar)

Fimagena
fuente