Both of us currently have Samsung Galaxy S6 phones. Samsung makes a nice phone, but that’s not what this post is about. One of the reasons we upgraded from our S4 phones (which we sent to Rainforest Connection) is that with Android Lollipop, Google made raw files available for the first time, in .dng format. Now, if you’re not sure what a raw file is or what .dng format is, this post may not be for you. If you wish to carry on please feel free to do so, but you may wish to review this first: Essentials of Digital Photography.
Now, having access to all of this extra data is great, but before we go further it does come at some cost. First, the raw files for the S6 are ~30MB, opposed to 10MB for the .jpg files. Second, you need a raw converter in order to work with them. I do virtually all of my image processing with Lightroom, but occasionally I’ll want to send an image directly from my phone. If the app you’re using to make images shoots .dng+.jpg, going to the phone’s Gallery app will only show you the .jpg files. However, if there is a .dng file available and you tap on the .jpg image and share to Snapseed, it will open the .dng file instead.
Okay, then. Off we go. For some reason (inexplicable to me) Samsung did not enable .dng capture in their native camera app with Android 5.x. DNG capture is now available in the Pro Mode in my Samsung camera app running Android 6.0.1. My default camera app for use with my phone is Camera FV-5. It’s the most advanced camera app I’ve found in terms of functions and capability, but it does have some challenges. More on that below.
I made my first .dng images in Camera FV-5, imported them into Lightroom, and immediately noticed a problem. The capture time metadata for the .jpg version of the files was fine, but the capture time for the .dng files was off. Way off. Like 4 hours, 18 minutes and 32 seconds off.
NB: When using Lightroom, one has the option to treat .jpg files as separate from raw files or to display only the raw files. There’s a checkbox for this under Settings.
Here’s an example:
The .dng and the .jpg files were taken a second or so apart, and yet the capture time differences are 6 hours, 30 minutes and 38 seconds. With further investigation I discovered that images taken in a sequence generally showed consistent time errors but images taken later that day or on a different day showed entirely different errors.
My first thought was that for some reason Lightroom was incorrectly reading the metadata in the .dng file. However, I checked the same images directly using the EXIFTool in XnViewMP:
Clearly the problem was not with Lr, so (with silent apologies to Adobe) I continued on. My next step was to write the people behind Camera FV-5, along with samples of what I had found. They never replied, but that didn’t mean they weren’t working on it. I also wrote to Samsung Technical Support; their reply was that since they hadn’t enabled raw capture in their camera app, it wasn’t their problem. The last stop was Android. Now, so far as I know nobody’s allowed to actually talk to anyone at Google, but I did find a user forum here and discovered that other people were having similar challenges with different makes/models of phones, and using different camera apps. For some people there were problems with capture date and for others there were challenges with capture time.
I also tried several different camera apps. Manual Camera said it couldn’t generate raw files with my phone so I passed on that one. Lightroom Mobile desktop integration is only available with those who have Lr CC, but even without that one can still use Lr Mobile as a standalone app and their camera will create .dng files (given appropriate hardware/software, of course). I also tried Shoot Camera. All three apps had challenges with capture time in the .dng files, and that, combined with the problems encountered by people with completely different hardware pointed to the challenge being in the Android OS.
So, the next two questions are: who cares, and what can one do about it? The answer is, it depends. If you’re using Lr for your DAM, then there are powerful metadata tools in Lr that allow you to edit the capture date/ time. These are most often used where one travels to a different time zone for example and forgets to update the clock on the camera, or where one is shooting an event like a wedding with more than one camera and wants to synchronize the image sequence across all cameras. Most people who shoot raw files don’t bother with .jpg images; my initial interest in importing both the .dng and the .jpg images into Lr to start with was to do a comparison of the image quality of the two formats. Because I shoot with more than one camera app on my phone and because the different apps use different file naming structures, in the past I’ve renamed the images on import using a date-sequence format (e.g. 20160508-1, 20160510-2, etc.) However, because of the difference in metadata time between the .dng and the .jpg files, if I sorted them by capture time on import the two files would end up out of sequence in the renaming and there was no simple way to line them up again. Further, without having the .jpg files there was no way to discern the correct capture time in the matching .dng files.
There are a couple of ways around it, but it can be clunky and it’s dependent on which camera app(s) you use. If you restrict yourself to one camera app, then it becomes much simpler as the naming convention is the same. For example, the Lr Mobile camera does not shoot .dng + .jpg (.dng or .jpg only), but the capture time is included within the file name itself. My file LRM_20160422_154622.dng has a capture time in the metadata of 2016-04-22, 22:46:22, exactly 7 hours later. One can use the information from the filename to adjust the capture time accordingly although (unless the time offsets are exactly the same across a group of files) this must be done separately for each file. There’s no way that I can see to change the naming convention in the Lr app. The Samsung camera app also names the files based on Capture Time: 20151218_195710.dng or 201651218_195710.jpg for example. The Camera FV-5 app defaults to a DSC_#### naming convention, but this can be changed in the Settings to a Date/Time sequence as well. If the naming convention is the same, then it’s easy to sort the files by filename and maintain the sequence even if the Capture Time is different. What I did in the past when I first noticed this problem was to import the images (.dng + .jpg) from the Camera FV-5 app without file renaming, and then stack the respective .jpg and .dng files together in Lr with the .jpg files on the top of each stack. I then imported the Samsung Camera app images (.jpg only), and sorted the files all by Capture time. Because the Camera FV-5 files were stacked, the stacks take precedence over any other ordering structure. Having all of the images lined up chronologically, I expanded all of the stacks, selected all of the images and renamed them using the naming convention mentioned above.
There are a couple of other things worth mentioning here. When I imported the .dng files from Camera FV-5/ Android 5.1.1 into Lr they would import okay, but Lr had challenges interacting with them (for panoramas, HDR blends, etc.) I had to convert the .dng files to .dng files within Lightroom. That sounds silly, but there you go. Files captured using Camera Fv-5/ Android 6.0.1 seem to be fine. I’ve appreciated the Camera FV-5 app’s ability to shoot bracketed sequences, but with my current setup I’ve found that it will shoot a sequence of 3 .jpg files and 2 .dng files rather than 3. To shoot a bracket of 3 .dng+.jpg files means pushing 120MB of data through the phone’s processors in short order, so it may just be asking more than the phone can handle.
Also, I’ve noticed a couple of bugs with both Camera Fv-5 3.15.1 and Samsung Camera in Android 6.01 in that they will both…’spontaneously’ stop capturing .dng files without telling the user. With the Camera FV-5 app I’ve had to uninstall/reinstall the app (and restore my settings) several times to restore .dng capture – turning .dng capture on/off in the Settings didn’t change anything. With the Samsung Camera app, the .dng capture button has turned off several times on its own. I have yet to determine the cause in either case. (NB: in the Samsung Camera app one must access the Settings from within Pro mode in order to enable .dng capture.)
There is some good news to end this. When I first considered writing this post I was using Android 5.1.1 with my phone. I’m now using Android 6.0.1 and the capture time metadata error for the Camera FV-5 app and the Samsung Camera app has been corrected – for my phone at least. As of today (May 20, 2016) separate .dng and .jpg images made with Lightroom Android 2.02 are still showing a consistent 7 hour offset in capture time. I trust they’ll fix that in a later version.
Okay, now go out and make some photographs!
UPDATE – September 19, 2016: This was posted on the Google forum mentioned above:
“We’ve identified a bug with the timestamping code for DNG files, and put a fix in place (and additional testing that will hopefully avoid having this happen again). Finding the issue was complicated by the fact that it only happens after the device has been in use for some time, and does not impact all devices. The fix will be included in the next public Android release.”
Definitely good news.
Because of their small sensor size and large DOF, phone cameras are very good at close-up photography. This is a 100% view of two flowers – great camas on the left, and meadow death camas on the right. Also on the great camas one can see what looks to be a small bug and a beetle larva.