web-dev-qa-db-ja.com

LinuxからWifi経由でソニーのカメラに接続する方法

ソニーのカメラには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 Windowsソフトウェアを実行するために、WineまたはVM=を使用しません。

9
cyrrill

この Playmemories Alternative プロジェクトをチェックしてみてください。優れた開発者の1人が、Sonyの変更されたPTP/IPプロトコルの専有部分をリバースエンジニアリングし、カスタムPythonスクリプト& GPhoto2 の組み合わせで機能させることができました。 。

Sonyが画像を転送する方法は、PTP/IP(Picture Transfer Protocol over Internet Protocol)を介して行われます。カメラから「コンピュータに送信」オプションを有効にすると、ネットワークを介してUPNP UDPパケットをマルチキャストアドレス(239.255.255.250:1900)にブロードキャストし始めます。これは、Simple Service Discovery Protocol(SSDP)とも呼ばれます。同時に、カメラはポート15740でPTP/IPサーバーを起動します。UPNPパケットには、すべての接続詳細が含まれています。 Playmemoriesアプリ(またはsony-pm-alt.py)はこれらのパケットを確認してから、PTP/IPサーバーにヒットして画像を転送します。

ソニーは、カメラに「送信中...」を表示するためにいくつかの非標準のパケットを必要とします。これは、完了時に自動シャットダウン機能にも当てはまります。これがないと、カメラが停止する前に画像を転送するのに約2分かかり、それが機能したことを確認できません。また、カメラはオンのままになるため、離れることができません。そうしないと、バッテリーが消耗し続けます。これらのオプションをオンにする魔法のパケットが1つあるといいのですが、そうではないようです。一連のtcpdumpを実行して、どのパケットが機能するかを確認できました。最初は100パケット以上が必要でしたが、最終的に23パケットに絞り込みました(更新:開始する4パケットと終了する3パケット)。これらのパケットをpythonから直接gphotoとは異なるtcpセッションを使用して送信できることを期待していましたが、うまくいきませんでした。そのため、この作業を行うためにlibgphotoコードを実際にハッキングしました。 libgphotoの開発者は、私と協力してハッキングなしで機能するように変更を組み込んでくれました。

私自身はテストしていませんが、 @ falk0069 のように見えるので、ソニーのwifi対応カメラに接続するための出発点としてヨーマンの作業を行っています。

3
bjmc

以下は、Sony A7にも当てはまります。他のSonyカメラでも同様だと思いますが、DSC-HX60はわかりません。

カメラには次の2つのWifi接続モードがあります:(a)APモード(「スマートフォンに接続」)。カメラは接続可能なAPとして機能します。 Rawではなく、JPGへのアクセスのみを許可します。 APIはプロプライエタリですがパブリック( https://developer.sony.com/develop/cameras/ )(b)インフラストラクチャモード(「コンピューターに接続」)、カメラがAPに接続してプッシュするローカルネットワーク上のコンピュータへのファイル。一部のMTPフレーバーを使用します(PTP/IPに基づく)。

(b)の意味だと思います。あなたはgphoto2を試すことができますが、これはPTPを使用して接続できるべきです(ただし、5分間試したところ、機能しませんでした)。 Androidを含めるようにLinuxを広く定義している場合、 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ボックスから接続する可能性があります...(テストなし)

0
Fimagena