This plugin for Adobe Lightroom allows you to keep track of your video files in Lightroom.
This plugin works in Lightroom 5 (and older versions as far back as Lightroom 2, though some features depend on the version of Lightroom).
The same download works for both Windows and Mac. See the box to the upper right for the download link (in orange) and installation instructions.
Lightroom 3 has native support for most DSLR video formats. In Lr3, see the Plugin-Extras menu for a migration tool, to migrate the videos you had loaded with this plugin to native Lr3 video support.
The plugin is all full of twisty complexities on the inside, but from a user's point of view, it's pretty simple:
- Move your video files to where you want them on your disk.
- Invoke the plugin's import via File > Plugin-Extras > Import Video Files...
- Now see in Lightroom a framegrab “placeholder” image, replete with a pretty video icon badge.
Here's a screenshot showing a couple of videos that Anthony took during a visit to a park in March...
I wish that I had something prettier to show in the screenshot (as in these old posts: here, here, here, here, here, and here), but I don't have one of those new spiffy SLRs that do video, and even if I did, not having had this plugin until now, I don't know that I would have kept the videos alongside the images from the same event. It was just lucky that I happened to have included the videos Anthony made when I copied the images from the point-n-shoot he was using. I didn't even know they were there until I did a deep folder scan with this plugin's “import video files” feature.
Anyway, the screenshot shows one of the framegrab placeholder images circled in red, along with some of its video metadata circled in green. Notice that the placeholder image has a filename that's the same as the video, but with “.jpg” appended. The plugin creates this placeholder image from a video framegrab, adds the icon in the corner, and places it on your disk in the same folder as the video.
Only some of the video metadata is shown in the screenshot above; in Lightroom, plugin custom metadata is normally available only in a special – but-ugly – “All Plugin Metadata” view, but the screenshot above shows my personal metadata view (note the blue circle) created with my Metadata-Viewer Preset Builder plugin. In it, I included only the metadata items that I want to see on a regular basis.
A later screenshot shows the full list of video metadata, at least as of the initial public version of this plugin. Please see the version history below for updates.
Import and Video Formats
The Import Video Files brings up a simple dialog from which you can browse and select video files and/or folders to scan. (Note: this screenshot is from the first version of the plugin. From version .3, there are many more options...)
As of version .3 of this plugin, the following file extensions are recognized: AVI, FLV, M4V, MOV, MP4, MPEG, MPG, MTS, M2TS, RMVB, and WMV, and it's files with these extensions that are picked up when a folder is scanned.
Whether the plugin can actually understand a particular video depends on its specific codecs, but it has worked with all the camera-produced videos I've tested it with. (I don't intend that the plugin becomes some kind of iTunes-in-Lightroom, so I wouldn't expect it to work with blockbuster movies bought online or ripped from DVD.)
In any case, if I've left an important format or codec out, please let me know.
The plugin goes to some lengths to try to do the best it can. If it can't produce a framegrab for some reason (e.g. a missing codec), but knows the particulars about the video such as the frame size, the video length, etc., the plugin creates a black frame of the appropriate size, then writes the file format across in big red letters. It's not ideal, but it's better than ignoring the video.
(Note that under my donationware model, folder scanning and multiple import are disabled after the six-week trial period, until the plugin is registered. You can always import videos, but a slight amount of inconvenience is introduced after a suitable trial period to encourage registration.)
Starting with version .3 of the plugin, the import dialog allows some extra options:
You can indicate from how many seconds into the video the framegrab should be taken.
You can have that number of seconds watermarked onto the placeholder image, so you can see at a glance where in the image it's from. (The font is very ugly, sorry.)
You can turn automatic video scaling on and off. It's a non-issue for many videos, but some cameras don't actually capture raw video at the advertised size... a “1920 x 1080” camera, for example, might actually capture raw video at 1440 x 1080 and mark it to be scaled to 1920 x 1080 during playback. Normally you want to leave the plugin in auto-scale mode, so that the framegrab from such videos will look right. (In such cases, the “Frame Size” custom metadata item will read something along the lines of “1920 x 1080 scaled from 1440 x 1080”.). However, there are times that the video data in this regard is totally screwed up – I've seen some iPhone videos inexplicably come out as “2560 x 480 scaled from 640 x 480” – so if you run into this kind of wonkiness, turn scaling off for those videos.
If video files you specify have already been imported, you can indicate whether they should be passed over or re-imported.
If video placeholder images were selected in Lightroom when you invoked the video import, you're given the option to refresh (re-import) those images.
The plugin offers two ways to view videos once they've been imported, though neither method is really satisfying. (An embedded video player would be cool, but well beyond what the Lightroom plugin infrastructure allows.).
The two methods are marked with red and green arrows in this screenshot (which you can click to view larger)...
The “Play Video” Plugin-Extras menu item (marked with the red arrow) launches the video in a very simple player – MPlayer – included with the plugin. If it actually works to play, you can use MPlayer's built-in keyboard controls (space to pause/play, left & right arrow keys to jump forward and back, up & down arrow keys to adjust volume, etc.), but there is no display of the video time, no clickable controls, etc. It's very basic. However, if you register a preferred player via the dialog in the Plugin Manager, the “Play Video” menu item will use it.
The Launch Video item in the full metadata list (marked with the green arrow) tries to take advantage of the only non-menu interaction the Lightroom plugin infrastructure allows.
- On Mac OS X, clicking on it is pretty much the same as clicking on the video filename in Finder: it should launch the video in the application appropriate to its file extension.
- On Windows, clicking on it launches your system default web browser, which may or may not then do something reasonable with the video file. My version of Firefox plays the video, which is good, but Safari tries to make a copy, and IE asked what it should do. YMMV.
The green arrow in the screenshot above shows the various metadata that might be associated with a video's placeholder image upon import. (In addition, after the screenshot was made, “Frame Size” was added in version .2, and “Frame Timestamp” was added in version .3.)
Several of these custom metadata items can be used in the rules for creating Smart Collections, or, as illustrated in the next screenshot, in the Library Grid Filter:
Limitations and Inconveniences
The experience is not as smooth as it would be if all this were built in to Lightroom, but it's the best I've been able to come up with in the context of Lightroom's severe plugin-infrastructure limitations.
- The only import offered is “in place, without moving”. At this point, you must manually move the videos to where on disk you want them, then invoke the import. Personally, I recommend keeping them in the same folder as images from the same event. That matches my workflow, but of course, it's up to you.
- No “Previous Import” or automatic display of imported items. Upon import by the plugin, the framegrab-placeholder images just show up in your Lightroom catalog. However, if you happen to have the Library Grid view open to the folder they're arriving in, perhaps with a sort set to “Added Order”, you'll see them as they arrive.
- No editing. The framegrab-placeholder image is just that – a placeholder –
and subjecting it to editing and such in Lightroom has no effect on the video or the video's file.
The plugin never writes/deletes/updates/changes/modifies the video file. One the placeholder
is within Lightroom, you can put it into collections, keyword it, add captions, geoencode it with my
Geoencoding plugin, etc.,
but none of these changes are reflected back into the video file itself. (In this respect it is like
non-DNG raw files, which are (almost) never written by Lightroom.)
Moving or deleting the placeholder from within Lightroom does not move or delete the video. If you move the placeholder image and/or the video file, you must remove the placeholder from your Lightroom catalog and re-import the video. (In light of these Lightroom restrictions, I'd like to somehow “lock” the image from these actions, but alas, that too is not allowed by the Lightroom plugin infrastructure.)
- Subsequent changes to the video are not reflected in Lightroom. The flip side to the item above is that if you use some third-party editing tool to change the video, or if you move the video file, the changes are not reflected in the placeholder image (nor its metadata) until you re-import it into Lightroom. (Version .2 of the plugin added a “refresh” option to the import dialog.)
- No export. You can edit and export the placeholder image as much as you like, but none of it affects the video file in any way. If you just want access to the video file, you can right-click on the placeholder image and select “View in Finder/Explorer”, and (if you haven't moved things since import), you should find it right next to the placeholder image.
I'll mention here a bit about the icon, which some people in early testing did not care for. Most comments were along the lines of “ it doesn't look like a Lightroom icon; why not mimic the “badge” icons that Lightroom already has? ”
My smart-aleck response is that it doesn't look like a Lightroom video icon because Lightroom doesn't have video icons!
Seriously, though, my thinking here is that the existing Lightroom badges – small, somewhat inconspicuous icons that indicate whether an image has keywords, has been cropped, and/or has had develop adjustments made to it – are used for characteristics that are much less intrinsic to the item than whether it's an image or a video.
The video/image characteristic dictates everything about how you might interact with that asset in Lightroom – what you can do and what you might want to do. It's a fundamental property that should be highlighted in an appropriately easy-to-see-at-a-glance manner.
This plugin is distributed as “donationware”. I have chosen to make it available for free — everyone can use it forever, without cost of any kind — but unless registered, its functionality is somewhat reduced after six weeks.
Registration is done via PayPal, and if you choose to register, it costs the minimum 1-cent PayPal fee; any amount you'd like to add beyond PayPal's sliding fees as a gift to me is completely optional, and completely appreciated.
Note: a Lightroom major upgrade, such as from Lr4 to Lr5, de-registers the plugin in the upgraded version, so if you want to maintain registration, a new ($0.01 if you like) registration code is needed in the upgraded version. It makes for a hassle every couple of years, I know. Sorry. See this note for details.
For details on plugin registration and on how I came into this hobby of Lightroom plugin development, see my Plugin Registration page.
( Update Log via RSS )
Fixed an issue with Creative-Cloud revalidation.
Lr5.5 and later Creative-Cloud installs can now revalidate themselves if needed.
|20140710.54||Sigh, had a bug in the Creative-Cloud support.|
Now supports Lr5.5+ Creative-Cloud Installs.
|20140704.52||Sigh, introduced an error for some folks with the rebuild the other day.|
Added an "Expunge Plugin Data" section to the plugin manager, to allow plugin data to be cleared from the catalog.
Upgraded to the embedded copy of ExifTool to version 9.60.
Fixed a bug in the "smoother revalidation" stuff recently added.
Upgraded to the embedded copy of ExifTool to version 9.53.
Make the revalidation process smoother, especially for folks using Lr5.4 and later.
Upgraded to the embedded copy of ExifTool to version 9.46.
Update for OS X Mavricks
|20130613.44||Better support for plugin revalidation.|
|20130611.43||Yet another Lr5 update|
|20130524.42||Apparently, a recent change broke things on Lr2, which some folks apparently still use.|
|20130501.41||Update for Lr5|
|20130412.40||Build system update.|
|20130328.39||Fix for the registration system.|
|20130209.38||More build-system maintenance|
|20130206.37||Tweak for my registration system|
Upgraded to the embedded copy of ExifTool to version 9.15.
Update to handle the Mac App Store version of Lightroom.
Enhanced the send-log dialog to hopefully make reports more meaningful to me, yielding, I hope, the ability to respond more sensibly to more reports.
|20120309.34||Had broken registrations in Lr2; Update to the debug logging to better track down timing issues that might arise.|
Considering the support that Lr4 has for video, I don't intend to really support this plugin for Lr4 and beyond, but in order to at least let it run, I've had to adapt for Lightroom APIs being discontinued in Lr4.
Update for Lr4 beta: explain in the plugin manager that the plugin can't be registered in the beta.
Updated Image::ExifTool to version 8.75.
Had issues with the registration button sometimes not showing.
When doing a plugin upgrade, offer the ability to flush all the old copies of the plugin.
Updated Image::ExifTool to version 8.68.
Added a system-clock check and reports to the user if the system clock is more than a minute out of date. An incorrect system clock can cause problems with various kinds of communication and authentication with some of my plugins, so I've just gone ahead and added this to every plugin.
|20110818.29||Adjusted the custom-metadata labels in Lr3 to make them fit the avilable witdh better.|
|20110608.28||Upgraded to the embedded copy of ExifTool to version 8.58|
|20100829.27||Made the revalidation process much simpler, doing away with the silly need for a revalidation file.|
|20100820.26||Discovered a bug in my plugin build system that caused horribly difficult-to-track-down errors in one plugin, so am pushing out rebuilt versions of all plugins just in case.|
|20100705.25||Returned the "Play Video" plugin-extras item on Lr3. I want to encourage people to move away from this plugin because I really don't want to support it, but I guess there's no meaning to take away the play option, so I'm putting the menu item back (and make it so that it also works with Lr-native video files... I just can't leave well enough alone.)|
|20100625.24||Yikes, shaking out some more build issues.|
|20100624.23||Discovered a nasty build bug; pushing a new version in case it affects this plugin.|
|20100621.22||Some better debug logging to try to track down some issues...|
This version can be registered in Lightroom 3. It can run in Lightroom 2 or Lightroom 3; it does not work in the Lr3 betas.
It uses my new registration system when run on Lightroom 3, which avoids some of the silly issues of the old one. Please take care to note the details on the registration page: use of this version (or later) of the plugin in Lightroom 3 requires a new registration code, even if you had registered some older version of the plugin.
I don't suppose that this plugin has much appeal in Lr3 due to its native support for video, and I do not intend to maintain it much, but I'm making sure to keep it available so as not to abandon whose have invested it into their workflow.
|20100516.20||Some internal tweaks for LR3 beta.|
|20100316.18||Yikes, a typo broke some operations for some Windows users. Fixed.|
Completely changed how the one-click upgrade applies the newly-downloaded zip file, in the hopes that it'll work for more people. Rather than unzipping over the old copy, it now unzips to a temporary folder, then moves the old folder out of the way and the new folder into place. Prior versions' folders are now maintained (with the version number in the folder) in case you want to revert a version; you may want to clear them out from time to time. Of course, it won't take affect until you try to upgrade after having upgraded to or beyond this version.
Wholesale changes that attempt to honor the user's locale settings for numeric display (e.g. Europeans writing 3,14156 for pi). I've probably missed some spots, so let me know if you find some.
|20091223.16||More stuff for LR3b, though I still can't get it to play videos due to beta-related bugs.|
|20091205.15||Minor internal debugging tweaks.|
|20091022.14||Added a first draft of some rudimentary support for Lightroom 3 Beta. See this important note about plugin support in Lightroom 3 Beta and Lightroom 3, including future plans for features and my registration system. Note, though, that this video-asset plugin is a very high-maintenance thing for me, and with all the new LR3B issues with my many other plugins, I will likely not be able to give this plugin much attention in the near term.|
Yikes, previous build was broken.
It seems that a frame can't be fetched from within some videos.... they end up with a gray image. In this version I add a note to suggest fetching from the front of the video (0 seconds in) in such cases, to see whether that helps.
Minor change to better support (I hope) network shares on Windows.
Upgraded the plugin's version of exiftool to incorporate its new MTS/M2TS/M2T handling. It's minimal, but offers better video-date extraction. If video support is important to you, please consider offering Phil encouragement with a donation.
Fixed a bug with how the folder scanning worked (so that perhaps now it will).
Added "M2T" extension as a synonym for "MTS" / "M2TS".
Added some debugging to help track down "can't read file at path" errors. I think that the plugin might not work for network-mounted folders on Windows, but I'm not quite sure.
For Windows, added a keyboard accelerator for the “Play Video” Plugin-Extras menu item, which will become usable after you follow the instructions on the Accelerate Access to Lightroom Plugin Extras post at ThePhotoGeek.com. There's also info there for Mac users on how to set up your own arbitrary keyboard shortcuts.
Drat, just discovered (and fixed) a but in how the plugin writes thumbnails that caused some issues, including, possibly, problems with Lightroom recognizing the dates we've worked so hard to grok from the videos. Well, this is a new plugin, so I guess these kinds of fast-moving updates are to be expected....
Yet more progress toward deriving dates from more types of videos.
Enhanced the one-click upgrade stuff quite a bit, now detecting ahead of time when it will fail because the plugin is installed where Lightroom can't write (if Lightroom can't write to it, it can't update itself). I also added a progress bar, and now download in smaller chunks to avoid 'out of memory' errors on the larger plugins. Do remember that this new functionality becomes available after you upgrade to or past this version, when you then upgrade with it.
Yikes! Due to an error in my build system, a lot of the work I did in trying to figure out a video's date was for naught, as I forgot to mark it as part of the plugin. Doh! Fixed this time.
Also along video-date lines, thanks to the efforts of Phil Harvey updating his ExifTool library, the plugin is even better than before about pulling dates from video files, and now Nikon cameras (and a few others) have the camera make/model marked. (Canon doesn't seem to include camera data in the movie files!?).
Also thanks to Phil, the plugin can now detect camera orientation and rotate the thumbnail appropriately. Think iPhone.
I still have no idea why some users see squiggly lines instead of framegrab timestamps.
|20090626.4||One small update related to the "tries harder to derive the date of the video" bit from the previous, big update: as a last ditch effort, the plugin tries to use the create date of the video file itself. If you've been careful about how you copy it from the camera, the date should be correct.|
Lots of little updates this time....
The plugin now tries a bit harder to derive the date of the video, going so far as to reading the raw bytes of the video file looking for something that smells like a date. This helps with Nikon D90 videos, for example. (MTS videos still have no dates... can't figure out any metadata for these files.). IMPORTANT: In order to take advantage of this for videos you've already loaded that are missing dates, you'll have to Metadata > Read Metadata from File on them the first time after refreshing (re-importing... see below) said videos, because Lightroom will not pick up this specific change automatically.
Other types of changes when re-importing video (such as those described below) are generally reflected when Lightroom next visits the image as an individual item. You won't have to invoke the read-metadata thing again, but you may have to navigate in Library mode away from the placeholder image and then back to see the results get refreshed.
Added the ability to turn video scaling on and off. It's a non-issue for many videos, but some cameras don't actually capture raw video at the advertised size... a “1920 x 1080” camera, for example, might actually capture raw video at 1440 x 1080 and mark it to be scaled to 1920 x 1080 during playback. Normally you want to leave the plugin in auto-scale mode, so that the framegrab from such videos will look right. (In such cases, the “Frame Size” custom metadata item will read something along the lines of “1920 x 1080 scaled from 1440 x 1080”.). However, there are times that the video data in this regard is totally screwed up – I've seen some iPhone videos inexplicably come out as “2560 x 480 scaled from 640 x 480” – so if you run into this kind of wonkiness, turn scaling off for those videos.
Added the ability to set how many seconds into the video the framegrab should be taken from. The default is 10 seconds. If that time location ends up being past the end of the video, a framegrab from the middle is used.
Also added an option to write the framegrab time into the corner of the frame (e.g. “frame @ 0:15”).. The font can be horrendously ugly, sorry.
Also added the framegrab timestamp as a new bit of custom metadata, “Frame Timestamp”. There's now quite a bit of custom metadata, and unless you like it all, in the exact order I happen to have it, and like looking via the somewhat ungainly “All Plug-in Metadata” viewer preset, you'll want to create your own personalized metadata-viewer preset. An easy way to do so is with my Metadata-Viewer Preset Editor plugin.
Now, if you have a video or videos selected when you invoke the Import Video Files dialog, you're offered the option to refresh (re-import) those videos.
Added something to disallow two video imports from being active at the same time. (The file-handling stuff is complex and I haven't thought about what might happen if two are run in parallel.)
Added the M2TS file extension as a synonym for the MTS file extension.
Random bug fixes and enhancements.
Added the "Frame Size" custom metadata item. For most video it's the same as the standard "Size", e.g. "640 x 480", but for some video that are stored at a different size than displayed, it might have a value such as “1920 x 1080 scaled from 1440 x 1080”.
Added an option to the import-video dialog to refresh videos that are already found to be in Lightroom, as opposed to ignoring them. This allows the metadata and framegrab to reflect changes in the video (or in the case of a plugin update like this that adds or changes a custom metadata field) for that to be reflected without having to delete and re-import.
Added some support for MTS files. I really don't know what I'm doing with mplayer and codecs and such, but seem to have gotten it to work with two invocations of mplayer. The first uses -demuxer lavf and seems to report proper info about the video (size, fps, etc.), but for some reason this does not produce a framegrab. But, I've found that if I invoke it again without the -demuxer argument, but I now tell it the FPS and turn off the audio (which is ignored anyway), then it seems to work. It's a total kludge.... if anyone knowing mplayer could guide me here, I'd appreciate it.