Personal View site logo
Control your GH3 from a Web Browser - Now with video !
  • 156 Replies sorted by
  • This is very great @lenuisible! Just because you are not seeing more reactions, don't assume we are not interested. It takes a while to digest something as new as what you have done. Hang in there, this is going to be very useful to many... Al

  • thanks @taawp and @Arquer053.

    I have to confess that I am a little bit disappointed by the lack of interest for this thing, there could be some really nice applications.

    I've tried to understand how to play the video stream, without success. The stream is sent when you press "stream" if you are in the recmode (you can use Wireshark to see the udp stream flowing), but I didn't manage to catch it.

    I have to understand how to send SOAP messages to the GH3 uPnP Mediaserver Control point. There is all the info someone could need (inside this zip file : http://upnp.org/resources/upnpresources.zip), but man, I'm really slow when coding is involved

  • THIS IS AWESOME

    This should be worked on, I'd pay for it!

  • Very cool. Just started playing with it on the v1.1 and everything works as advertised.

  • Technical post - Developers needed!!! - for end users see the 1st post

    This is a summary of the information I know which could be useful for people wanting to help, or develop his own application

    Network Capture

    I see 3 possible ways to capture the network traffic, and analyse it to understand how the Lumix Link application communicates with thr GH3. I've made a few capture using the 3d method, but if people can access to one of these methods, it will be easier to understand (and reproduce) all the missing features:

    GH3 IP address discovery

    If you're not directly connected to the wifi ssid provided by the GH3, As @Vitaliy_Kiselev pointed out, you need to know the ip address of the GH3 to use the web remote, and find/replace all the "192.168.0.1" in the "requests.html" file with the IP address of the GH3. There is a way to make that automatic : make the application able to mimic the SSDP protocol behavior, which imply UDP and multicast... Or you can do a port scan (on port 50001) on all the machine in the same subnet as your machine, but you have to retrieve your subnet.
    Anyone interested in coding this is very welcome (I'm afraid Javascript will not be a good tool to determine your own subnet...)
    Edit v04 : I've managed to discover the GH3 IP address using Java, but I need to make a few changes in the web page to provide the ability to the end user to read it on the Java window title, and write it down on a text field of the web page.

    Remote control features

    For all the camera control features, it's very easy to mimic the LL application : you just have to send GET http requests to the GH3 ip address. You can do that using your browser, for example if you try to go to http://@IP_GH3/cam.cgi?mode=camcmd&value=capture the GH3 will take a picture. You can open the file "requests.html", and you will find most of the possible commands.

    An interesting improvement to the actual interface could be to only display the settings compatible with the mode you're in, and lens you use (PASM...mode, focus mode, left control dial mode, minimum/maximum aperture, ...).
    this can be achieved easily by parsing the XML responses to the following HTTP GETs :

    • http://@IP_GH3/cam.cgi?mode=getinfo&type=curmenu : the answer to that is a xml file listing a lot of info about the actual state of the GH3. For example, if you're not in Program Mode, you will have :
      item id="menu_item_id_program_shift" enable="no" somewhere. You just have to parse this xml file and do a few checks, and you will know exactly in which modes you're in.
    • http://@IP_GH3/cam.cgi?mode=getinfo&type=allmenu : a lot of interesting info here about a lot of commands, and all the GH3 menus in the different languages !
    • http://@IP_GH3/cam.cgi?mode=getinfo&type=lens : lens detected. The answer is a string, ie for the 14-42PZ it's "ok,2304/256,925/256,3072/256,16384/256,0,on,42,14,on,128/1024". I think this site could help us finding the info of all the electronic m4/3 lenses there is:)

    A few applications could be possible using the different commands and writing a little javascript (electronic follow focus, advanced bracketing/time-lapse, ...) and I'm sure it could also serve some very specific, rare use cases.
    Application ideas and developers are welcome

    Liveview

    If you go to http://@IP_GH3/cam.cgi?mode=startstream&value=49152, the GH3 will send an udp stream to your ip address on port 49152. The problem is it's not RTP, so after losing hours trying to find an known header pattern at the beginning of the udp data, I finally had the late idea to look at the last bytes : it is "ff d9". A rapid google search taught me that it was the EoF marker for jpg images. The stream is a MJPEG video over UDP. If you look at this hex dump file, you will find :

    • a 144 bytes "header" (with a few changing bytes, and a lot of repeating patterns in the different occurences of these headers / separators)
    • ff d8 ...... ff d9 : a jpg file
    • a 144 bytes "header"
    • ff d8 ...... ff d9 : another jpg file
    • and so on
      Edit v04 : The "header" size actually change depending on several factors (autofocus, dial mode), but this is taken care of by the live view Java program.

    You will find attached to that email the hex dump of a short video streamed by the GH3 (mjpegOverUdp.hexdump.txt.zip, the data payload of the UDP stream), and the pcap capture file of the session from which it has been extracted (mjpegOverUdp.zip).
    Ideally, it will be better to understand what the changing bytes in the header/separator represent.

    Picture preview/download

    I didn't play much with this, but the GH3 and lumix link use the UPNP set of network protocols to communicate. More testing is needed to see what SOAP messages are exchanged when doing the few interesting actions on the LL app "Playmode". As an example, I attach to this email the SOAP message sent to the GH3 to have the list of pictures (ImageBrowse_requestLL.soap.txt), and the SOAP response of the GH3 (ImageBrowse_responseGH3.soap.txt).

    if you want to code a program that will allow to browse and download pictures, you're welcome

    webGH3.jpg
    391 x 800 - 117K
    ImageBrowse_requestLL.soap.txt
    846B
    ImageBrowse_responseGH3.soap.txt
    8K
    mjpegOverUdp.zip
    2M
    mjpegOverUdp.hexdump.txt.zip
    5M
    UDPServer_JavaCode.zip
    1K
  • download the "LumixLink_captureStill.jpg" attached file LumixLink_captureStill.pcap

    I strongly suggest to just zip it instead making is JPG :-).