Re: Live view on Canon EOS M50

Marcus Meissner <[email protected]> Sun, 17 May 2020 17:49:35 +0200
Newsgroups gmane.comp.multimedia.gphoto.user
Organization SUSE Software Solutions Ger many GmbH, Maxfeldstr. 5, 90409 Nuernberg, Germany , GF: Felix Imendörffer, HRB 36809, AG Nürnber g
Message-ID <[email protected]>
On Sun, May 17, 2020 at 05:40:56PM +0200, Marcus Meissner wrote:
> Hi Antonio,
> 
> On Sat, May 16, 2020 at 05:27:10PM +0200, Antonio Cuni wrote:
> > Hello,
> > I am having some troubles to control my Canon EOS M50 with gphoto2 (on
> > Linux):
> > $ gphoto2 --version
> > gphoto2 2.5.20
> > [...]
> > gphoto2         2.5.20         gcc, popt(m), exif, cdk, aa, jpeg, readline
> > libgphoto2      2.5.22         all camlibs, gcc, ltdl, EXIF
> > libgphoto2_port 0.12.0         iolibs: disk ptpip serial usb1 usbdiskdirect
> > usbscsi, gcc, ltdl, USB, serial without locking
> > 
> > What I would like to do is the following:
> > 1. enable live view and get a stream of jpg frames to process
> > 2. keep the camera's LCD screen on during the live view, and being able to
> > control the various settings from the camera (ISO, speed, focus, etc)
> > 
> > I tried to connect my camera to a windows PC and control it using Canon EOS
> > Utility: the "live view mode" of that program does exactly what I want,
> > i.e. it displays a real time stream of images on the windows computer, but
> > I can still control all the settings from the camera. So, this should prove
> > that the camera is capable of doing this, I suppose.
> > However, I did not manage to achieve the same with gphoto2. I tried to
> > connect the camera both via USB and Wi-Fi, and I get the same results in
> > both cases.
> > 
> > The first thing to note that as soon as gphoto2 connects to my camera, for
> > example with gphoto2 --config, the LCD turns off and the camera buttons are
> > not responding: I suppose this is the normal behavior and it's intended.
> > When gphoto2 exists, the LCD is still black, but the buttons work; in
> > particular, if I press the shutter the camera takes a picture, and if I
> > press "Menu" I can enter the menu. Once I do exit the menu, the LCD works
> > again and I can use the camera as normal.
> > 
> > The first things which I tried was "gphoto2 --capture-movie --stdout": this
> > works, and I can get a real time stream of frames. However, as soon as I
> > start gphoto2, the camera LCD turns off and I can no longer control my
> > camera using any button.
> > 
> > Then, I inspected gphoto2 --config, and I found a setting which looks
> > promising: /main/settings/output:
> > /main/settings/output
> > Label: Camera Output
> > Readonly: 0
> > Type: RADIO
> > Current: Unknown value 0008
> > Choice: 0 Off
> > Choice: 1 TFT
> > Choice: 2 PC
> > Choice: 3 TFT + PC
> > Choice: 4 Setting 4
> > Choice: 5 Setting 5
> > Choice: 6 Setting 6
> > Choice: 7 Setting 7
> > Choice: 8 Unknown value 0008
> > Choice: 9 Unknown value 0009
> > Choice: 10 Unknown value 000a
> > Choice: 11 Unknown value 000b
> > END
> > 
> > The setting "TFT + PC" looks exactly what I need, and indeed it seems to do
> > something. The following command turns the LCD back on:
> >     $ gphoto2 --set-config output="TFT + PC"
> > 
> > However, it seems I can't use it together with --capture-movie. I tried the
> > following, but I get the same result as a bare "--capture-movie", i.e. the
> > LCD turns off. Moreover, as soon as gphoto2 exits, /main/settings/output is
> > set back to "Unknown value 0008":
> >     $ gphoto2 --set-config output="TFT + PC" --capture-movie
> >     CTRL-C
> >     $ gphoto2 --get-config=output
> >     Label: Camera Output
> > 
> >     [...]
> >     Current: Unknown value 0008
> > 
> > I tried all of the possible "Camera Output" settings: same result with all
> > of them, apart 000a and 000b which cause an "Error 70" in the camera, for
> > which I have to remove the battery in order to have it working again.
> > 
> > The same happens also inside gphoto2 --shell:
> > 
> > gphoto2: {/tmp} /> capture-preview  # this turns the LCD OFF
> > gphoto2: {/tmp} /> set-config-index output=3 # LCD back ON
> > gphoto2: {/tmp} /> capture-preview # LCD OFF
> > [etc...]
> > 
> > I attach the output of gphoto2 --list-all-config, in case it's useful.
> > 
> > Does anybody have any idea?
> > Thanks in advance,
> > Antonio
> 
> So, the "output" variable is key here.
> 
> One thing to know is that --capture-preview when it is first run, and also --set-config viewfinder=1
> changes it.
> 
> We have decoded more values for "output" in the meantime (in libgphoto2 2.5.23 or later):
> 
>         { N_("Off"),            0, 0 }, /*On 5DM3, LCD/TFT is off, mirror down and optical view finder enabled */
>         { N_("TFT"),            1, 0 },
>         { N_("PC"),             2, 0 },
>         { N_("TFT + PC"),       3, 0 },
>         { N_("MOBILE"),         4, 0 },
>         { N_("TFT + MOBILE"),   5, 0 },
>         { N_("PC + MOBILE"),    6, 0 },
>         { N_("TFT + PC + MOBILE"), 7, 0 },
>         { N_("MOBILE2"),        8, 0 },
>         { N_("TFT + MOBILE2"),  9, 0 },
>         { N_("PC + MOBILE2"),   10, 0 },
>         { N_("TFT + PC + MOBILE2"), 11, 0 },
> 
> So what you can try is:
> 
> 	gphoto2 --capture-preview --set-config output="TFT + MOBILE2" --capture-movie=10s
> 
> or without update:
> 
> 	gphoto2 --capture-preview --set-config output="Unknown value 0009" --capture-movie=10s
> 
> or other output= options.
> 
> On on my EOS M10 and SX720HS I currently have only:
> 	Current: PC
> 	Choice: 0 Off
> 	Choice: 1 MOBILE2
> 	Choice: 2 PC
> so I cannot test :/

On reading the source, capture-preview/capture-movie was currently always setting
it back to 2 (PC), if it was not 2 (PC).

I adjusted the code in current GIT to handle it better hopefully, but it means
you currently need to build libgphoto2 from GIT to try it out.

Ciao, Marcus