Bagaimana menghubungkan ke kamera Sony via Wifi dari Linux

9

Kamera Sony datang dengan konektivitas Wifi, tetapi perangkat lunak mereka hanya didistribusikan untuk Mac dan Windows. (www.sony.net/pm/)

Bagaimana saya bisa terhubung dari Linux? (Khususnya, Fedora 22 <--> DSC-HX60)

Ketika saya mengaktifkan push Wifi, kamera memberi tahu saya bahwa saya harus menambahkan informasi perangkat terlebih dahulu melalui USB. Ini sepertinya hanya dimungkinkan dengan perangkat lunak PlayMemories yang disebutkan di atas.

Adakah yang tahu cara melakukan hal yang sama di Linux?

Ironisnya, sepertinya kamera itu sendiri berjalan di BusyBox: / http://oss.sony.net/Products/Linux/DI/DSC-HX60V.html

ps Saya lebih suka tidak menggunakan Wine, atau VM untuk menjalankan perangkat lunak Windows.

cyrrill
sumber

Jawaban:

3

Anda mungkin ingin melihat proyek Alternatif Playmemories ini. Salah satu pengembang yang luar biasa telah merekayasa balik bagian eksklusif dari protokol PTP / IP Sony yang dimodifikasi, dan berhasil membuatnya bekerja dengan kombinasi skrip Python khusus & GPhoto2 .

Cara Sony mentransfer gambar adalah melalui PTP / IP (Picture Transfer Protocol over Internet Protocol). Saat Anda mengaktifkan opsi 'Kirim ke Komputer' dari Kamera, ia mulai menyiarkan paket UPNP UDP di seluruh jaringan ke alamat multicast (239.255.255.250:1900). Ini juga dikenal sebagai Simple Service Discovery Protocol (SSDP). Pada saat yang sama kamera memulai server PTP / IP pada port 15740. Paket-paket UPNP berisi semua detail koneksi. Aplikasi Playmemories (atau sony-pm-alt.py) melihat paket-paket ini dan kemudian membalikkan sebuah hit ke server PTP / IP dan mentransfer gambar.

Sony memerlukan beberapa paket non-standar untuk menampilkan 'Mengirim ...' pada kamera. Ini juga berlaku untuk fitur mati otomatis ketika selesai. Tanpa ini, Anda memiliki sekitar 2 menit untuk mentransfer gambar sebelum kamera berhenti dan Anda tidak memiliki konfirmasi bahwa itu berfungsi. Selain itu, kamera akan tetap menyala sehingga Anda tidak bisa berjalan atau baterai Anda akan terus terkuras. Saya berharap akan ada satu paket ajaib untuk mengaktifkan opsi ini, tetapi sepertinya tidak demikian. Melakukan serangkaian tcpdumps saya dapat menentukan paket apa yang membuatnya berfungsi. Saya mulai dengan lebih dari 100 paket yang dibutuhkan dan akhirnya mempersempitnya menjadi 23 paket (pembaruan: 4 paket untuk memulai dan 3 paket untuk mengakhiri). Saya juga berharap saya bisa mengirim paket-paket ini langsung dari python menggunakan sesi tcp berbeda dari gphoto, tetapi tidak berhasil. Begitu, Saya akhirnya benar-benar meretas kode libgphoto untuk membuat ini berfungsi. Pengembang libgphoto kemudian berbaik hati untuk bekerja dengan saya dan memasukkan perubahan untuk membuat semuanya berfungsi tanpa peretasan.

Saya belum mengujinya sendiri, tetapi sepertinya @ falk0069 telah melakukan pekerjaan yeoman yang menyediakan titik awal untuk menghubungkan ke kamera yang dilengkapi wifi Sony.

bjmc
sumber
0

Berikut ini berlaku untuk Sony A7, saya kira itu mirip untuk kamera Sony lainnya tetapi tidak tahu DSC-HX60.

Kamera memiliki 2 mode koneksi Wifi: (a) Mode AP ("Connect to smartphone"), di mana kamera bertindak sebagai AP yang dapat Anda sambungkan. Hanya memberi akses ke JPG, bukan mentah. API adalah milik tetapi publik ( https://developer.sony.com/develop/cameras/ ) (b) Mode infrastruktur ("Sambungkan ke komputer"), di mana kamera terhubung ke AP dan mendorong semua file ke komputer di jaringan lokal. Menggunakan beberapa rasa MTP (berdasarkan PTP / IP).

Saya berasumsi maksud Anda (b). Anda dapat mencoba gphoto2, yang seharusnya dapat terhubung menggunakan PTP (namun, dalam 5 menit saya mencoba saya tidak bisa membuatnya bekerja). Jika Anda mendefinisikan Linux secara luas untuk memasukkan Android, maka Anda dapat menggunakan raw2dng untuk menyalin file mentah ke ponsel / tablet Anda - ia menggunakan stack PTP / IP sendiri (penafian: saya penulis).

Namun, untuk (b), apa pun yang terjadi, Anda harus terlebih dahulu "memasangkan" kamera ke komputer Anda menggunakan USB. Ini adalah protokol eksklusif yang hanya diimplementasikan dalam program Win / Mac Sony. Yang dilakukannya hanyalah memberi tahu kamera untuk menyimpan alamat MAC komputer. Pada koneksi yang akan datang, host mengirim alamat MAC-nya sebagai bagian dari permintaan koneksi awal (tidak perlu datang dari antarmuka jaringan yang sebenarnya).

raw2dng dapat menggunakan MAC-address "berpasangan" sebagai input, gphoto2 mungkin juga (tidak yakin - jika Anda ingin mencoba, itu adalah 16 byte UID: 8 * 0x00 + 2 * 0xFF + MAC). Jadi berpotensi Anda dapat memasangkan kamera ke komputer Win / Mac lain yang mungkin Anda miliki aksesnya dan kemudian menggunakan alamat MAC komputer itu untuk terhubung dari kotak Linux Anda ... (belum diuji)

Fimagena
sumber