Personal View site logo
Make sure to join PV on Telegram or Facebook! Perfect to keep up with community on your smartphone.
Control your GH3 from a Web Browser - Now with video !
  • end users post, for technical info see post 3 below

    v0.4 is out. a Java player has been added for live view ! most commands are there

    To test this :

    • download the attached zip file (last version is v0.4) , and decompress it wherever you want
    • for the live view to work, you need :
    • start the Wifi on your GH3, "new connection/remote shooting" (it works also if you connect through a Wifi AP, you just need to find the IP address of the GH3)
      • if you're using a direct connection you can launch the "Control.html" file after you connected your PC/MAC to the GH3 network
      • if you're using a Wifi access point, you have to find/replace all the "192.168.0.1" in the "requests.html" file with the IP address of the GH3 before launching the "Control.html" file
    • if you want to use the live view on a Windows PC launch control.bat instead of control.html (see above for Java installation). If you're using a MAC, you have to find a way to launch UDPServer with Java, I don't know if it works
    • play with the different settings and commands

    • To take a picture, use the shooting button (you can do continuous shooting with press&hold if the dial is in that mode)

    • To start a recording press "record"

    • manual focusing uses press&hold buttons with 2 speeds, you can play with the interval between 2 successive focusing actions with the input fields on top of the 4 focus buttons.

    • The zoom uses press&hold buttons, with 2 speeds (for PZ lenses of course)

    Some commands will not work depending on the selected mode on the dial (ie focal in S mode)

    The screen goes black quite often, just take a picture or half press the shutter button to turn it on again. But now that live view works (on Windows at least), you shouldn't have to look at the GH3 LCD anymore.

    If the GH3 freeze, you may have to take the battery out (may happend if you use a feature non supported by the selected mode on the dials)

    To properly interrupt the connection, just "terminate" it on the GH3 menu

    You can stop the video recording using "playmode" (which is the command to display the photo on Lumix Link).I didn't look at the files generated when you do that, if someone could look at the integrity of the video file after this abrupt stop, it would be useful. You have to press "recmode" to control the gh3 again.

    Clarification :

    This is a PoC. I'm not a developer, and won't spend much time on future version. someone with some basic web dev skills will be able to do a much better job in no time; He just has to look at the code, and eventually ask me.

    image

    LumixLink_captureStill.jpg
    3M
    ControlGH3_V03.jpg
    992 x 800 - 175K
    testLumixLinkv03.zip
    78K
    testLumixLinkv04.zip
    81K
    control.jpg
    1280 x 800 - 244K
  • 157 Replies sorted by
  • download the "LumixLink_captureStill.jpg" attached file LumixLink_captureStill.pcap

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

  • 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
  • Very cool. Just started playing with it on the v1.1 and everything works as advertised.

  • THIS IS AWESOME

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

  • 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 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

  • 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.

    @lenuisible Don't be so impatient (or disappointed). I am very interested in this, but I do not have any immediate use for it though as my main interest right now is mostly to develop the craft of producing proper, basic time-lapse videos with my gear, and I won't be using wi-fi out in the woods much (I tried that, and as you read in the other thread I emptied my iPhone battery in no time using it as a remote).

    However, when I do get around to pick up your research, I might [vapor-alert]put my software development woo-doo to the task of using it[/vapor-alert]. You can for instance create some time-lapse control software that does fake bulb-ramping during sunsets/sunrises with what you have unlocked. You can probably also control time-lapses with more elastic time where speed-shifts are properly splined instead of what you typically see in time-lapse videos with abrupt speed-doublings and halves (which annoys me to no end). A non-live-view remote application is also of interest if there are big battery-saving advantages in doing it that way. All of these I am very interested in "solving" for the GH3, but it is more of a one-year-plan than a one-week-plan if you know what I mean...

  • I have interest in this as im a blackberry user and the lumix app appears to only be for apple or android.

  • It is very interesting and very important research.

    First, some undocumented commands must exist.

    Second, it is natural way to help with some reversing later.

  • I just tried it and it works great! This is so cool! I did hang the GH3 initially, screen froze and had to take out the battery. Not sure what it was that I did. Once I turned it back on and tried again, it worked perfectly... Al Edit: Some handshaking to end the browser control must be needed, either that or I don't know how to terminate the control without a frozen WiFi connection that requires battery removal to recover.

  • @all v0.2 is out !

    @aljimenez it should be more stable, to properly end the connection, use the terminate command on the GH3.

  • @lenuisible Great work..! I'll try it tomorrow morning. windsurf.

  • @lenuisible WOW MAN!!! it really works and you made it ridiculously easy to set up, THANKS, really!!!

    as you said no preview and screen blacking out quite often, but from focus to shutter, iris, wb (temp too), ISO, etc, etc, ALL WORKING :D the only thing I saw is you cannot come back to "raw" quality alone; if you change the "picture quality" you're stuck with jpeg or raw+jpeg. just me nitpicking.

    thanks once again lenuisible, these are great first steps to another dimension, ja ja ja
    m.

  • Great work!!! I havent had time to play with this but I am very very intrested! If it is possible to add all functionality what Lumix Link has this is very BIG for my workflow. I am a mainly mac user and sending pictures from GH3 to mac is not working. With Lumix Link its possible to sent camera->phone. Maybe with this from camera->mac and also use camera remotely... :) I am also willing to pay for this kind of app... I see also possibilities that we have been able only to dream about... Thanks for your work!

  • This is AMAZING. Keep up the good work. I don't have a GH3, but I can see this getting very popular, Congratulations on your great Idea and already working Software! :)

  • At least this require removal of fixed IP from all forms action.

    And addition of JavaScript that discover camera address and set it.

  • Bravo, @lenuisible keep working on this please, I'm following the topic now (didn't see it at first)

    BTW I recommend you to root your android, it has very many advantages.... about as much as hacked GHx vs stock ;-)

  • Wow. Awesome find. Downloaded and will have a look at it. What exactly would people need / like to see and in what form? Would like to hear from you guys. Maybe I can help.

  • @lenuisible @Vitaliy_Kiselev Would it be a good idea to post this topic in the oficial GH3 topic? I think that would increase its popularity.

  • It had been posted, if I reemember properly.

  • It had been posted on the GH3 wireless topic.

    I'm gone right an update tonight if I have the time, I made some progress identifying the format used for the video stream.

    @electonic thanks for proposing your help, what's your domain of expertise ? We're gone need a dev that can write some code to receive and dissect an UDP stream. I don't think we can do that only with Javascript...

  • V0.3 is out

    End users post (the 1st), and technical post (the 3rd) have been rewritten.

    If you read the technical post, you will know as much as I do about this topic.

  • Great stuff. I will definitely try this out.

  • Just tested the latest version. Its a great start and I would love to see it become a full fledged app with full control.

    With that said, is there currently any other way to controlling GH3 via Windows tablet?

  • When I get my GH3 I will see what I can do to help - the main benefit I see for this is to add a control panel for a camera that is rigged and might be difficult to access the touch screen - or for a camera assistant.

    Just need to mount an old tablet or smart phone and you get a full control panel.

    Also good if the camera is up on a jib arm, or on a steady cam, etc.