Как подключиться к камере Sony через Wifi из Linux

9

Камеры Sony поставляются с поддержкой Wi-Fi, но их программное обеспечение распространяется только для Mac и Windows. (Www.sony.net/pm/)

Как я могу подключиться к нему из Linux? (В частности, Fedora 22 <-> DSC-HX60)

Когда я включаю Wi-Fi push, камера говорит мне, что мне нужно сначала добавить информацию об устройстве через USB. Это представляется возможным только с программным обеспечением PlayMemories, упомянутым выше.

Кто-нибудь разобрался, как сделать то же самое в Linux?

По иронии судьбы, кажется, что сама камера работает на BusyBox: / http://oss.sony.net/Products/Linux/DI/DSC-HX60V.html

PS Я бы предпочел не использовать Wine или ВМ для запуска программного обеспечения Windows.

cyrrill
источник

Ответы:

3

Возможно, вы захотите проверить этот альтернативный проект Playmemories . Один выдающийся разработчик осуществил обратный инжиниринг проприетарных частей модифицированного протокола PTP / IP от Sony и сумел заставить его работать с комбинацией пользовательского скрипта Python и GPhoto2 .

Sony передает изображения через PTP / IP (протокол передачи изображений через Интернет-протокол). В тот момент, когда вы включаете опцию «Отправить на компьютер» с камеры, она начинает транслировать UDP-пакеты UPNP по сети на многоадресный адрес (239.255.255.250:1900). Это также известно как простой протокол обнаружения услуг (SSDP). Одновременно камера запускает сервер PTP / IP на порту 15740. Пакеты UPNP содержат все сведения о соединении. Приложение Playmemories (или sony-pm-alt.py) видит эти пакеты, а затем поворачивает сервер PTP / IP и передает изображения.

Sony требуется несколько нестандартных пакетов для отображения «Отправка ...» на камере. Это также относится к функции автоматического выключения, когда закончите. Без этого у вас есть около 2 минут для передачи изображения, прежде чем камера остановится, и у вас нет подтверждения, что она работает. Кроме того, камера останется включенной, поэтому вы не сможете уйти, иначе аккумулятор продолжит разряжаться. Я надеялся, что будет один волшебный пакет, чтобы включить эти опции, но, похоже, это не так. Делая серию tcpdumps, я смог определить, какие пакеты заставляют его работать. Я начал с более чем 100 необходимых пакетов и, наконец, сузил его до 23 пакетов (обновление: 4 пакета до начала и 3 до конца). Я также надеялся, что смогу отправить эти пакеты напрямую из python, используя сеанс tcp, отличный от gphoto, но не повезло. Так, В итоге я действительно взломал код libgphoto, чтобы сделать эту работу. Разработчик libgphoto был тогда любезен работать со мной и вносить изменения, чтобы все работало без взлома.

Я не проверял это сам, но похоже, что @ falk0069 выполнил работу yeoman , предоставив отправную точку для подключения к камерам Sony с поддержкой Wi-Fi.

bjmc
источник
0

Следующее справедливо для Sony A7, я предполагаю, что это похоже на другие камеры Sony, но я не знаю DSC-HX60.

Камера имеет 2 режима Wi-Fi-соединения: (a) Режим AP («Подключение к смартфону»), где камера выступает в качестве точки доступа, к которой вы можете подключиться. Только дает доступ к JPG, а не сырье. API является закрытым, но общедоступным ( https://developer.sony.com/develop/cameras/ ). (B) Режим инфраструктуры («Подключение к компьютеру»), когда камера подключается к точке доступа и передает любые файлы на компьютер на компьютере. локальная сеть. Использует немного MTP-аромата (на основе PTP / IP).

Я полагаю, вы имеете в виду (б). Вы можете попробовать gphoto2, который должен быть в состоянии подключиться, используя PTP (однако, в течение 5 минут, которые я пробовал, я не мог заставить его работать). Если вы широко определяете Linux, чтобы включить Android, то вы можете использовать raw2dng для копирования файлов raw на свой телефон / планшет - он использует свой собственный стек PTP / IP (отказ от ответственности: я автор).

Тем не менее, для (b), несмотря ни на что, вам придется сначала «подключить» камеру к компьютеру через USB. Это собственный протокол, который реализован только в программах Sony Win / Mac. Все, что он делает, это говорит камере сохранить MAC-адрес компьютера. В будущих соединениях хост отправляет свой MAC-адрес как часть начального запроса на соединение (не обязательно из реального сетевого интерфейса).

raw2dng может принять «спаренный» MAC-адрес в качестве входа, а gphoto2 также может быть (не уверен - если вы хотите попробовать, это 16-байтовый UID: 8 * 0x00 + 2 * 0xFF + MAC). Таким образом, потенциально вы можете подключить камеру к другому компьютеру Win / Mac, к которому у вас может быть доступ, и затем использовать MAC-адрес этого компьютера для подключения из вашей системы Linux ... (не проверено)

Fimagena
источник