如何从Linux通过Wifi连接到Sony相机


9

索尼相机具有Wifi连接性,但其软件仅适用于Mac和Windows。(www.sony.net/pm/)

如何从Linux连接到它?(特别是Fedora 22 <-> DSC-HX60)

启用Wifi推送后,相机会告诉我首先需要通过USB添加设备信息。这似乎只能通过上述PlayMemories软件来实现。

有没有人想出如何在Linux中做同样的事情?

具有讽刺意味的是,相机本身似乎在BusyBox上运行:/ http://oss.sony.net/Products/Linux/DI/DSC-HX60V.html

ps我宁愿不使用Wine或VM来运行Windows软件。

Answers:


3

您可能想签出这个Playmemories Alternative项目。一位杰出的开发商对索尼改良的PTP / IP协议的专有部分进行了反向工程,并设法将其与自定义Python脚本和GPhoto2结合使用

Sony传输图片的方式是通过PTP / IP(基于Internet协议的图片传输协议)进行的。从摄像机启用“发送到计算机”选项后,它将开始通过网络将UPNP UDP数据包广播到多播地址(239.255.255.250:1900)。这也称为简单服务发现协议(SSDP)。同时,摄像机在端口15740上启动PTP / IP服务器。UPNP数据包包含所有连接详细信息。Playmemories应用程序(或sony-pm-alt.py)会看到这些数据包,然后绕过一个PTP / IP服务器并传输图片。

索尼需要一些非标准的数据包才能在相机上显示“正在发送...”。完成后,这也适用于自动关闭功能。如果没有此设置,则在相机停止之前您将有大约2分钟的时间传输图片,并且无法确认图片是否有效。同样,相机将保持开启状态,因此您不能走开,否则电池将继续耗尽。我希望会有一个魔术包来打开这些选项,但是事实并非如此。通过执行一系列的tcpdumps,我能够确定哪些数据包使之起作用。我一开始需要超过100个数据包,最后将其范围缩小到23个数据包(更新:开始为4个数据包,结束为3个数据包)。我也希望我可以使用与gphoto不同的tcp会话直接从python发送这些数据包,但是没有运气。所以,我最终真正破解了libgphoto代码以完成这项工作。这样,libgphoto的开发人员就足够和我一起工作了,并合并了一些更改以使工作正常进行而不会受到黑客的攻击。

我还没有亲自测试过,但是@ falk0069似乎完成了yeoman的工作,为连接到支持Sony wifi的相机提供了一个起点。


0

以下内容适用于Sony A7,我猜想它与其他Sony相机类似,但不知道DSC-HX60。

摄像机具有2种Wifi连接模式:(a)AP模式(“连接到智能手机”),在此模式下,摄像机充当可连接的AP。仅提供对JPG的访问,不提供原始文件。API是专有的,但是公共的(https://developer.sony.com/develop/cameras/)(b)基础结构模式(“连接到计算机”),在该模式下,相机连接到AP并将任何文件推送到服务器上的计算机本地网络。使用某些MTP味道(基于PTP / IP)。

我想你的意思是(b)。您可以尝试gphoto2,它应该可以使用PTP进行连接(但是,在5分钟内,我尝试无法使其正常工作)。如果您将Linux广泛定义为包括Android,则可以使用raw2dng将原始文件复制到手机/平板电脑-它使用自己的PTP / IP堆栈(免责声明:我是作者)。

但是,对于(b),无论如何,您都必须先使用USB将相机“配对”到计算机。它是专有协议,仅在Sony的Win / Mac程序中实现。它所做的就是告诉相机保存计算机的MAC地址。在将来的连接中,主机将其MAC地址作为初始连接请求的一部分发送(不需要来自实际的网络接口)。

raw2dng可以将“成对的” MAC地址作为输入,也可以使用gphoto2(不确定-如果要尝试,它是16字节的UID:8 * 0x00 + 2 * 0xFF + MAC)。因此,潜在地,您可以将相机与您可能有权访问的另一台Win / Mac计算机配对,然后使用该计算机的MAC地址从Linux机器中进行连接...(未经测试)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.