Comment se connecter à un appareil photo Sony via Wifi depuis Linux

9

Les caméras Sony sont livrées avec une connectivité Wifi, mais leur logiciel est uniquement distribué pour Mac et Windows. (www.sony.net/pm/)

Comment puis-je me connecter depuis Linux? (Plus précisément, Fedora 22 <--> DSC-HX60)

Lorsque j'active la poussée Wifi, la caméra me dit que je dois d'abord ajouter les informations sur l'appareil via USB. Cela ne semble possible qu'avec le logiciel PlayMemories mentionné ci-dessus.

Quelqu'un a-t-il compris comment faire de même sous Linux?

Ironiquement, il semble que la caméra elle-même fonctionne sur BusyBox: / http://oss.sony.net/Products/Linux/DI/DSC-HX60V.html

ps Je préfère ne pas utiliser Wine ou une machine virtuelle pour exécuter un logiciel Windows.

cyrrill
la source

Réponses:

3

Vous voudrez peut-être consulter ce projet Playmemories Alternative . Un développeur exceptionnel a procédé à une ingénierie inverse des parties propriétaires du protocole PTP / IP modifié de Sony et a réussi à le faire fonctionner avec une combinaison d'un script Python personnalisé et de GPhoto2 .

Sony transfère les photos via PTP / IP (Picture Transfer Protocol over Internet Protocol). Au moment où vous activez l'option «Envoyer vers l'ordinateur» à partir de la caméra, elle commence à diffuser des paquets UPNP UDP sur le réseau vers l'adresse de multidiffusion (239.255.255.250:1900). Il s'agit également du protocole SSDP (Simple Service Discovery Protocol). En même temps, la caméra démarre un serveur PTP / IP sur le port 15740. Les paquets UPNP contiennent tous les détails de connexion. L'application Playmemories (ou sony-pm-alt.py) voit ces paquets, puis contourne les serveurs PTP / IP et transfère les images.

Sony a besoin de certains paquets non standard pour afficher «Envoi ...» sur l'appareil photo. Cela vaut également pour la fonction d'arrêt automatique une fois terminé. Sans cela, vous avez environ 2 minutes pour transférer l'image avant que l'appareil photo ne s'arrête et vous n'avez aucune confirmation que cela a fonctionné. De plus, l'appareil photo restera allumé pour que vous ne puissiez pas vous éloigner, sinon votre batterie continuera de se vider. J'espérais qu'il y aurait un paquet magique pour activer ces options, mais cela ne semble pas être le cas. En faisant une série de tcpdumps, j'ai pu déterminer quels paquets le font fonctionner. J'ai commencé avec plus de 100 paquets nécessaires et je l'ai finalement réduit à 23 paquets (mise à jour: 4 paquets pour commencer et 3 paquets pour terminer). J'espérais également pouvoir envoyer ces paquets directement à partir de python en utilisant une session tcp différente de gphoto, mais pas de chance. Donc, J'ai fini par vraiment pirater le code libgphoto pour que cela fonctionne. Le développeur de libgphoto a ensuite eu la gentillesse de travailler avec moi et d'intégrer des changements pour faire fonctionner les choses sans le piratage.

Je ne l'ai pas testé moi-même, mais il semble que @ falk0069 ait fait le travail de yeoman en fournissant un point de départ pour la connexion aux caméras compatibles Wi-Fi de Sony.

bjmc
la source
0

Ce qui suit vaut pour le Sony A7, je suppose que c'est similaire pour les autres appareils photo Sony, mais je ne connais pas le DSC-HX60.

La caméra dispose de 2 modes de connexion Wifi: (a) le mode AP ("Se connecter au smartphone"), où la caméra agit comme un AP auquel vous pouvez vous connecter. Donne uniquement accès aux JPG, pas aux raw. L'API est propriétaire mais publique ( https://developer.sony.com/develop/cameras/ ) (b) Mode infrastructure ("Se connecter à l'ordinateur"), où la caméra se connecte à un AP et envoie tous les fichiers à un ordinateur sur le réseau local. Utilise un peu de saveur MTP (basé sur PTP / IP).

Je suppose que vous voulez dire (b). Vous pouvez essayer gphoto2, qui devrait pouvoir se connecter en utilisant PTP (cependant, dans les 5 minutes que j'ai essayées, je n'ai pas pu le faire fonctionner). Si vous définissez Linux de manière large pour inclure Android, vous pouvez utiliser raw2dng pour copier des fichiers bruts sur votre téléphone / tablette - il utilise sa propre pile PTP / IP (avertissement: je suis l'auteur).

Cependant, pour (b), quoi qu'il en soit, vous devrez d'abord «coupler» l'appareil photo à votre ordinateur via USB. Il s'agit d'un protocole propriétaire qui n'est implémenté que dans les programmes Win / Mac de Sony. Tout ce qu'il fait, c'est de dire à l'appareil photo de sauvegarder l'adresse MAC de l'ordinateur. Dans les connexions futures, l'hôte envoie son adresse MAC dans le cadre de la demande de connexion initiale (n'a pas besoin de provenir de l'interface réseau réelle).

raw2dng peut prendre l'adresse MAC "appariée" en entrée, peut-être aussi gphoto2 (pas sûr - si vous voulez essayer, c'est l'UID de 16 octets: 8 * 0x00 + 2 * 0xFF + MAC). Donc, vous pourriez potentiellement coupler la caméra à un autre ordinateur Win / Mac auquel vous pourriez avoir accès, puis utiliser l'adresse MAC de cet ordinateur pour vous connecter à partir de votre boîte Linux ... (non testé)

Fimagena
la source