Modern iPhones (6s or later) take "Live Photos" by default: these are video recorded 1.5 seconds either side (3 seconds total) of when you take a still photo (see also a guide to Live Photos).
I suppose if you were mainly taking photos of people acting silly for the camera then this might be a fun feature to try out a few times, before putting aside. But if you mainly photograph other things, or take photos as a record of slides, etc, it is an actively useless waste of storage space, that can make the intended photo harder to see (eg due to flickering lighting).
Imagine, not entirely hypothetically, that you finally got an iPhone new enough to have this feature, long after the feature was introduced, and had forgotten about the feature entirely. Then took a bunch of photos of very still things (slides, screens, paper, etc) to record them, ignoring the "bulls eye" icon and "live" -- perhaps assuming they were related to focus or "showing live view with effects" or something. Only to realise a couple of hundred photos later that all your recent photos were bloated with this additional baggage you did not want, and visual flicker.
Obviously the first thing you would do is turn the feature off when taking a photo (tap the bulls eye icon, so it is not yellow and "Live" does not appear in yellow). Then you realise that by default every time you go back into the Camera application is is turned back on again. So you accidentally end up taking more "Live Photos" when distracted and just picking up your phone to record something. Which leads to a mix of "Still" and "Live Photos" that are even harder to clean up.
Eventually, after some searching, you realise it is possible to change the default as well:
First go to iPhone Settings -> Camera -> Preserve Settings, and enable "Preserve Settings";
Then go to the Camera application and click the bulls eye icon to turn off Live Photo (making sure "Live" is no longer displayed in yellow).
After that, the iPhone Camera application will actually remember your last setting, rather than passively agressively turning the feature on every time. So the unwanted bloat, and difficulty viewing the still photo you were trying to take, is at least no longer getting worse.
Then secondly you would want to "clean up" these "Live Photos" just making them still photos. After some hunting I found out since iOS 9.3 it is possible to strip the video out of Live Photos on the iPhone, and reclaim the storage, but it is a multi-step process:
In the iOS Photos application, select one or more Live Photos (and only live photos). Batches of 10 seem to work; large batches, or batches including non-Live photos appear not to give the right options.
Choose Share (bottom left) -> Duplicate -> Duplicate as Still Photos, to create a new file with just the still photo.
Check that the photos duplicated to still photos correctly.
When you are happy, go back and delete the original Live Photos to mark them for deletion in 30 days.
Then go to "Recently Deleted" and delete the original Live Photos again to delete them now.
You can check your progress on cleaning this up by going to the
automatic "Live Photos" smart album in the Photos application and
seeing what is left. If you remove all the "Live Photos" then the
"Live Photos" smart album will vanish. When you are complete, copy
the new still photos over to your computer (and force a backup of
your iPhone) to discard the bloated "Live Photos" versions from
your computer as well. It may be necessary to restart the iPhone
and/or disconnect/connect from Image Capture.app
to stop seeing
the deleted "Live Photos" versions in the image list (which makes
it confusing to know if you are copying the right version or not).
The biggest risk here is deleting a "Live Photo" without duplicating it, due to the need to select photos multiple times. I would recommend making a backup to your computer first, and cross checking against that before permanenty deleting the "Live Photos" from "Recently Deleted", at least for any photos for which you would miss them if they were gone.
Note that if you accidentally include a non-Live Photo in the selection to duplicate, you will not get the final prompt to "Duplicate as Still Photos", and it will just duplicate everything as is, making the problem worse. If that happens, delete the duplicates, and then try again being more careful in identifying the Live photos (which in the "Select" mode have no visual distinction so you just have to remember; thanks Apple).
For a couple of hundred accidental live photos, processed in batches of 10 or so, this is merely frustrating busy work, but actually possible to do. The main catch is the duplicated photos will appear at the end of the "Camera Roll" (as the files are created more recently). This makes it easier to tell which is the original "Live Photo" and which is the "Duplicate as Still Photo", but harder to move back and forth between them (or find photos by the order in which they were taken) if a lot of time has passed between when the "Live Photos" were accidentally taken and the clean up effort. Particularly if you have accidental intermixed "Live Photos" and taken-as-intended Still Photos (as the taken-as-intended Still Photos will be left behind in the timeline, and the fixed "Live Photos" will be added to the end of the Camera Roll).
Fortunately this is a one-off cleanup issue once the iPhone camera default settings are fixed. But user hostile defaults, plus delaying finding out what magic new features mean, leads to wasting half a day cleaning up the resulting mess. Thanks Apple.
For the record, other ways that do not seem to work / work reliably for everyone:
Editing the photo on the Phone, and unselecting the bulls eye ("live") will stop the photo displaying as "Live", but appears not to update the photo storage -- as you can "edit" again, and turn the "Live" flag back on again. Plus this creates a second file (
IMG_Ennnn.JPG
) for the edited version, adding to the storage problems. Several guides do still suggest this approach though, and I suspect it might hide them from the "Live Photos" folder in the iPhone photos albumn.Deleting the
IMG_nnnn.MOV
companion file viaImage Capture.app
does not seem to work -- it vanishes from the list, but it is unclear if it is actually removed (eg, it does not appear in the "Recently Deleted" folder for further cleanup), unlike what some people report using the Photos application on MacOS. I did not pursue this further as it was not clear if it worked, and I do not use the MacOS Photos application.The Lean iOS app supposedly allows bulk changes to photos to make them "not Live". But the reviews suggest while it claims to save storage space for them it did not (I am unclear exactly what it does; if it uses the "duplicate as still photo" approach, the storage may not be reclaimed until the original Live Photos are deleted...; if it just toggles the "Live Photo" tag, then no storage will be reclaimed as best I can tell). Since it was no longer a free App ($1.99) I did not try this, having found a manual solution which was merely fiddly and time consuming.
Constantly changing bytes in JPEGs
While investigating this I came across another somewhat related
frustrating: when copied with Image Capture.app
, the JPEGs of
photos captured by default with a modern iPhone Camera application
will change every time they are copied, but only in a small range
of bytes (about bytes 1663-1683 from memory). This means that the
photos are no longer byte for byte identical, which breaks sha1sum
/ sha256sum
style checking for identical copies (and hard linking
those together to save space).
After some digging it appears this is caused by the default settings in the modern iPhone Camera being to storage images in HEIF format -- a High Efficiency Image Format, used with HEVC a High Efficiency Video Coding (H.265) (see also HEIF iPhone Photos in iOS 11). HEIF is a container format, capable of storing multiple image frames and H.264 video. I assume this video format is also being used as part of "Live Photos", at least by default.
The result of this is when you copy "JPEG" images with Image
Capture.app
they appear to be synthesised on
demand, with
the result that the JPEG files vary slightly. In particular it
appears everything is created identically except a UUID value,
which appers to be recreated per copy (or at least each time you
connect Image Capture.app
to the phone):
ewen@ashram:~$ exiftool Desktop/IMG_5260.JPG >/tmp/desktop
ewen@ashram:~$ exiftool Pictures/IMG_5260.JPG >/tmp/pictures
ewen@ashram:~/Desktop/apse$ diff -u /tmp/desktop /tmp/pictures | grep "^[-+]"
--- /tmp/desktop 2018-11-24 20:50:52.000000000 +1300
+++ /tmp/pictures 2018-11-25 10:14:27.000000000 +1300
-Directory : Desktop
+Directory : Pictures
-File Access Date/Time : 2018:11:24 20:50:33+13:00
-File Inode Change Date/Time : 2018:11:24 20:50:28+13:00
+File Access Date/Time : 2018:11:24 20:35:26+13:00
+File Inode Change Date/Time : 2018:11:15 13:11:39+13:00
-Content Identifier : 0F3C5F38-B578-4CDF-84F6-50C89A5B5C10
+Content Identifier : 51A6B6AD-8484-465D-913C-112A4CC97931
ewen@ashram:~/Desktop/apse$
This does not happen when the photos are saved in JPEG directly, as was done with the iPhone Camera application prior to iOS 11. (It is an unfortunate oversight really, as it appears to me that the "Content Identifier" UUID for the JPEG could have been stashed in the HEIF file somewhere, or derived from stable values, which would have resulted in reproducible bit for bit identical exported files; I would consider that a bug, but Apple possibly do not.)
In iOS 11 you can change the format in which the iPhone Camera application stores photos via iPhone Settings -> Camera -> Formats where:
"High Efficiency" means store in HEIF/HEVC format
"Most Compatible" means store in JPEG foramt
For now, I have set mine back to "Most Compatible" as I value bit for bit identical files to reduce the storage requirements on my computer.
Eventually, when HEIF files can be copied and manipulated directly -- avoiding the constant data changes of synthesising JPEGs inexactly -- the HEIF format is probably a better choice (amongst other things it can store a greater bit depth -- 10 bit currently, but up to 16 bit in the formats -- than JPEG, and will typically provide better compression on higher resolution photos). See also Apple WWDC 2017 presentation on High Efficiency Image File Format, 500px blog post in HEIF, and Nokia Technology site on HEIF. It appears Apple are, as is often the case, at the forefront of deploying the HEIF format.
I think if you change this setting and then use "Duplicate as Still Image" (above, to resolve the "Live Photo" mess), the resulting files are being resaved as JPEG at that point. But I have not been able to completely verify that. (Certainly the "Duplicate as Still Photo" versions are not bit for bit identical with the JPEG from the "Live Photo" by any means, after having changed this setting, but it is unclear if that is due to the "Duplicate as Still Photo" feature or changing the default storage format.)