Como conectar-se a uma câmera Sony via Wifi do Linux

9

As câmeras da Sony vêm com conectividade Wifi, mas seu software é distribuído apenas para Mac e Windows. (www.sony.net/pm/)

Como posso me conectar a ele no Linux? (Especificamente, Fedora 22 <--> DSC-HX60)

Quando ativo o push Wifi, a câmera diz que preciso adicionar primeiro as informações do dispositivo via USB. Isso parece ser possível apenas com o software PlayMemories mencionado acima.

Alguém descobriu como fazer o mesmo no Linux?

Ironicamente, parece que a própria câmera é executada no BusyBox: / http://oss.sony.net/Products/Linux/DI/DSC-HX60V.html

ps Prefiro não usar o Wine ou uma VM para executar o software Windows.

cyrrill
fonte

Respostas:

3

Você pode conferir este projeto do Playmemories Alternative . Um desenvolvedor notável fez a engenharia reversa das partes proprietárias do protocolo PTP / IP modificado da Sony e conseguiu fazê-lo funcionar com uma combinação de um script Python personalizado e GPhoto2 .

A maneira como a Sony transfere fotos é via PTP / IP (Picture Transfer Protocol sobre Internet Protocol). No momento em que você ativa a opção 'Enviar para o computador' da câmera, ela começa a transmitir pacotes UPNP UDP pela rede para o endereço multicast (239.255.255.250:1900). Isso também é conhecido como SSDP (Simple Service Discovery Protocol). Ao mesmo tempo, a câmera inicia um servidor PTP / IP na porta 15740. Os pacotes UPNP contêm todos os detalhes da conexão. O aplicativo Playmemories (ou sony-pm-alt.py) vê esses pacotes e, em seguida, aciona os servidores PTP / IP e transfere as fotos.

A Sony exige alguns pacotes não padrão para exibir o 'Enviando ...' na câmera. Isso também vale para o recurso de desligamento automático quando concluído. Sem isso, você tem cerca de 2 minutos para transferir a foto antes que a câmera pare e você não tem confirmação de que funcionou. Além disso, a câmera permanecerá ligada para que você não possa se afastar ou a bateria continuará descarregando. Eu esperava que houvesse um pacote mágico para ativar essas opções, mas esse não parece ser o caso. Ao executar uma série de tcpdumps, fui capaz de determinar quais pacotes fazem com que funcione. Comecei com mais de 100 pacotes necessários e finalmente o reduzi para 23 pacotes (atualização: 4 pacotes para iniciar e 3 pacotes para finalizar). Eu também esperava poder enviar esses pacotes diretamente do python usando uma sessão tcp diferente da gphoto, mas sem sorte. Assim, Acabei realmente invadindo o código libgphoto para fazer isso funcionar. O desenvolvedor da libgphoto teve a gentileza de trabalhar comigo e incorporar mudanças para fazer as coisas funcionarem sem a invasão.

Eu mesmo não testei, mas parece que @ falk0069 fez o trabalho de yeoman, fornecendo um ponto de partida para conectar-se a câmeras habilitadas para wifi da Sony.

bjmc
fonte
0

O seguinte vale para a Sony A7, acho que é semelhante para outras câmeras Sony, mas não conheço a DSC-HX60.

A câmera possui 2 modos de conexão Wifi: (a) Modo AP ("Conectar ao smartphone"), onde a câmera atua como um AP ao qual você pode se conectar. Apenas dá acesso a JPGs, não a matérias-primas. A API é proprietária, mas pública ( https://developer.sony.com/develop/cameras/ ) (b) Modo de infraestrutura ("Conectar ao computador"), em que a câmera se conecta a um AP e envia todos os arquivos para um computador no computador. rede local. Usa algum sabor MTP (baseado em PTP / IP).

Eu suponho que você quer dizer (b). Você pode experimentar o gphoto2, que deve ser capaz de se conectar usando PTP (no entanto, nos 5 minutos que tentei, não consegui fazê-lo funcionar). Se você definir o Linux amplamente para incluir o Android, poderá usar o raw2dng para copiar arquivos não processados ​​para o seu telefone / tablet - ele usa sua própria pilha de PTP / IP (exoneração de responsabilidade: sou o autor).

No entanto, para (b), não importa o que aconteça, você deverá primeiro "emparelhar" a câmera ao seu computador usando USB. É um protocolo proprietário que só é implementado nos programas Win / Mac da Sony. Tudo o que faz é dizer à câmera para salvar o endereço MAC do computador. Em conexões futuras, o host envia seu endereço MAC como parte da solicitação de conexão inicial (não precisa vir da interface de rede real).

O raw2dng pode usar o endereço MAC "emparelhado" como entrada, talvez o gphoto2 também (não tenho certeza - se você quiser tentar, é o UID de 16 bytes: 8 * 0x00 + 2 * 0xFF + MAC). Então, potencialmente, você pode emparelhar a câmera com outro computador Win / Mac ao qual possa ter acesso e usar o endereço MAC desse computador para conectar-se a partir da sua caixa Linux ... (não testado)

Fimagena
fonte