I've uploaded snapshot 492 to the files area
https://www.assembla.com/spaces/chdkptp/documentsThere are two major additions. Both were discussed earlier in the thread, but to get everything in one place I'll document them here.
1) rsint (remote shoot, interactive)
This is a module in extras that allows you to remote shoot in continuous mode, while controlling the timing of the shots yourself. This requires CHDK 1.3, because it uses the shoot hook functionality. It currently can only be used in console CLI mode, not in the GUI.
To load the module use
!require'extras/rsint'.init()
This adds the rsint cli command. It takes the same options as regular rs for exposure settings and file formats.
When you use the rsint command, you get a rsint>
The prompt accepts 3 commands
s - shoots and waits for another command
l - shoots and exits rsint
path <new file path> - sets the output path. This is treated the same way as the output path option to rs. If you don't specify a path, it resets to default (i.e IMG_NNNN.JPG)
2) lvdumpimg
This command allows dumping live view frames to
netpbm format images. This saves the viewport data as
ppm and the bitmap (ui overlay) as
pam.
The output files are in their native resolution, meaning that the aspect ration is not correct. Programs like imagemagick can be used to rescale them. The pam format is used for the UI overlay to support the alpha channel, but it is not as widely supported as ppm. You can use imagemagick or the netpbm tools to convert it to other formats.
The -vp and -bm options are used to specify whether the bitmap (ui overlay) or viewport (viewfinder image) are saved. Each can be used to specify the output path.
To allow capturing multiple frames without name conflicts, the output paths accept substitution variables in the from ${name[,arguments]}. The available variables are
${date} - the date / time the frame was transferred, formatted with os.date. If no format string is given, %Y%m%d_%H%M%S is used.
${frame} - the frame counter for this command (from 1 to the -count value). Note this resets every command invocation, so cannot be used to just continuously increment the number. The value is formatted with string.format. If no format is specified, %06d is used.
${time} - the time the frame was transferred, as a floating point unix-like timestamp with sub-second precision. The value is formatted with string.format. If no format is specified, %d is used, meaning you get a straight unix style timestamp without any sub second values.
There is currently no way to escape these patterns, so if you want a literal ${blahblah} in the name, you will have to hack the code.
The default filenames are
viewport vp_${time,%014.3f}.ppm
bitmap bm_${time,%014.3f}.pam
which gives you a unix timestamp with milliseconds. This gives you unique filenames that sort numerically.
tl;dr examples
con> lvdumpimg -count=2 -vp
vp_1394431593.054.ppm
vp_1394431593.177.ppm
con> lvdumpimg -vp=foo.ppm -bm=bar.pam
foo.ppm
bar.pam
con> lvdumpimg -vp=foo_${date,%H%M%S}_${frame,%02d}.ppm -count=3
foo_230851_01.ppm
foo_230851_02.ppm
foo_230852_03.ppm
In the future, I plan to add support for using substitution variables to other commands, like remoteshoot, downloads etc. I also plan to add an option to pipe the pbm data directly to another command.