JPEG Saver 5.8
So here it is, after years of looking at the word “video” on the to-do list and deciding it sounded too much like hard work: version 5.8.
Video Killed the Radio Star
Yes, version 5.8 does add support for loading and playing videos. The main tab in the config dialog has a checkbox to enable loading video files and a button to take you to a dialog to configure what happens next.
If you just enable the main video option and disable the others, JPEG Saver will load the first frame of the video and use it like any other image type. If all your videos fade in from black that could be a bit boring, so I might have to improve that in the future.
When you go into the video options dialog and enable the “Play video” option JPEG Saver will play the videos as well as loading the first frame. This is only supported on the primary display and it leaves all the decoding and playing for Windows to handle, with its own window running on top of JPEG Saver. This is not ideal, because it means JPEG Saver can't draw any items (clock, file info etc.) over the top. I'm hoping to fix that in a future version, but it will mean adding my own video rendering code into the screen display.
On the other hand, leaving the display up to Windows means playing video is supported even when JPEG Saver has Direct3D disabled. So that's nice.
The other options in the video config dialog let you turn audio on or off, adjust the volume, set whether the video repeats and whether JPEG Saver should wait for the video to end before loading the next file. All of these seemed like important options to add from the start, though there are probably a load of other options I can add in here when people suggest them.
Still on that topic, there is a lot I could and should add to the video support, not least the ability to pause, resume, fast forward, rewind, and a real-time volume control. I didn't do any of these because right at the top of my to-do list now is adding support for choosing your own key mappings - I want to get that working before I add any more interactive functions into JPEG Saver. (I very nearly added support for pressing F11 to go full-screen, but bailed out at the last moment.)
The file extensions supported are webp, mp4, avi, wmv, mkv, mov, mts, m2ts, 3gp, asf, f4v, flv, hevc, m2v, m4v, mjpeg, mpeg, mpg, mxf, ogv, swf, ts, vob, webm, and wtv - though playing the video inside the file relies on Windows being able to handle it and convert to a JPEG Saver-friendly output format. Some videos I expected to work didn't, so I'm going to look at improving that in the next version.
So to conclude this section: there is video support; it's not terrible; it should get better. Let me know if there is anything that I haven't already mentioned that you think I should add. I've probably missed some completely obvious things, but sometimes when you are focussing on the small things you miss the bigger picture.
This version also adds a new transition called “Ribbon Twist”. This is a bit unusual too, since it is the first time I've mapped the images onto a mesh that isn't flat. If that means nothing to you, feel free to forget about it. I'm sure to have forgotten it the next time I want to do something similar.
Apart from that, I've also changed how child dialogs are opened up - now they should appear on top of the parent dialog instead of in the middle of the screen. There is probably a good reason I haven't done this before, but I can't think of it right now.
There is one bug fixed too - changing the order of the folders in the list could cause the sequential mode to draw things out of order if the database was already populated. The fix made things a bit simpler, which is always a bonus.
The new version is available from the downloads page.