Editing 360 Photos & Injecting Metadata

How do we know what is a 360 Photo? - Metadata

Facebook recognizes and processes 360 photos by looking for camera-specific metadata found in photos taken using 360-ready cameras. This information is embedded in photo's Exif (Exchangeable image file format) metadata tags, and if you're sharing 360 photos straight from camera, Facebook should automatically process and present them as interactive 360 photos.

However, when metadata has been stripped from pictures or never existed in the first place, Facebook might not be able to tell that your photo is a 360 photo. Sometimes, metadata is stripped during image editing, but other workflows can also strip metadata from pictures. Here are some common reasons metadata might be missing:

  • Emailed, embedded photos (vs emailing as file attachments)
  • Exported photos from certain image editors
  • Uploaded/re-downloaded photos on hosting or sharing services
  • Panoramas created manually (e.g., art, in-game captures, scanned historic photos)

In these cases, the correct metadata must be injected into your photos before they can be shared as 360 photos.

There are two sets of metadata tags Facebook looks for to determine whether a photo is in 360:

  1. Photo Sphere XMP Metadata
    Most 360 cameras and panorama-generation tools include Photo Sphere metadata in saved photos.
    1. We interpret the following parameters, in addition to our own parameters documented here: https://developers.facebook.com/docs/graph-api/reference/photo/ - see spherical_metadata (tap arrow to expand JSON params and see the documentation on the sub-parameters like ProjectionType). Note that this is not exactly the same as the full spec linked above.
  2. For Panoramas: Camera Make and Model - we use this only to interpret panoramas captured from mobile phones as 360 photos, and support many but not all popular devices. 

Injecting Metadata

To inject metadata, you'll need to edit the XMP tags in the Exif data. Here are options for doing so:

  • Using a Web-based Exif Editor - An excellent and free web-based tool for viewing and editing Exif is the eXif.er, which is used in the examples above. The eXif.er allows you to upload; view, edit, and save metadata; and download your modified image.
  • Using a Standalone Exif Editor - There are many standalone Exif editors for Windows and OS X. Windows users can use ExifToolGUI, which is free and fully-featured. Mac users can search for "exif editor" in the Mac App Store, where there are a few options for purchase.
  • Using exiftool (Technical) - The most powerful and flexible Exif editor, especially for batch processing of images, is the command-line tool, exiftool.

What do you need to inject for proper detection as 360?

Full, spherical 360 photos:

These use “equirectangular” projection. 360 Photos must fulfill the following requirements for Facebook to process them properly:

  • The photo must have a 2:1 aspect ratio
  • The Exif XMP tag, "ProjectionType=equirectangular"
  • They are below the maximum resolution and file size (listed below)

Most photographer-targeted Exif editors do allow the editing of the Exif XMP tag "ProjectionType," but if you're technical, you can use the popular command-line tool, exiftool.

  • exiftool -ProjectionType="equirectangular" photo.jpg
    # 'photo.jpg' is the photo you want to tag

When you're done editing metadata, access Facebook in a desktop web browser to do your upload.

Panoramas (Advanced):

When uploading directly from a mobile device, Facebook first looks for spherical metadata. If that is absent, we consider the “make” and “model” of the device that took the photo to understand how to correctly interpret the panorama (that is, we need to know how far a given amount of pixels wraps around our viewport cylinder).  If, for some reason you have edited or otherwise lost metadata, you have the following options:

  • Edit the Exif make and model tags
  • exiftool -Make="camera_make" -Model="camera_model" photo.jpg
    # replace 'camera_make' and 'camera_model' with the appropriate values
    # 'photo.jpg' is the photo you want to tag
  • Can copy/paste your panorama on top of a panorama that has the correct metadata and “Save As” a new file
  • Use one of the photoshop templates below that roughly matches the panorama size

Photoshop Templates: Creating your own 360 graphics without metadata injection

If you want to create an image that has the correct metadata to be interpreted as 360, we offer the following templates to help you get started.

Photoshop templates:
https://www.dropbox.com/sh/70mwlh8k0y4rg0g/AACVNV7hvRZtjEKj4DoJMhCba?dl=0

These can be used to create 360 photos and panoramas without injecting metadata, as it is built into the template. Cylindrical panorama templates are described by horizontal field of view (FOV) and vertical FOV, and there is also a full spherical (equirectangular) template available.

Choose the template that most matches your intended field of view, conform your picture into the template's image dimensions, and use Photoshop's “Save As...” to save a JPG. See a video example of using one of the panorama templates.

Editing 360 Photos

You can open and edit 360 photos in common editors.

Pro tip: Adobe Photoshop's "Save As" feature preserves camera metadata, where as "Export As" and "Save for Web" do not.

A way to bypass all of this metadata discussion is to simply use "Save As" in Photoshop.

Image Resolution, Size, and Format Recommendations:

If creating your own 360 Photo, using special hardware or cameras, or uploading from 3rd party software, the following resolution, format, and size guidelines apply.

Projection types: We accept equirectangular, cubestrip projection, or cylindrical (for panoramas only) example of our cubestrip format: https://www.dropbox.com/s/qyidmid631t7d0y/cubestrip%281%29.jpg?dl=0

File resolution and size limitations:

Photos should be less than 30,000 pixels in any dimension, and less than 135,000,000 pixels in total size. File sizes could be as big as 45 MB (JPEG) or 60 MB (PNG). We recommend using JPEG for 360 photos and keeping the file size less than 20-30 MB.

Note: These limits are the maximum values and apply to web uploads and direct Graph API uploads.

Mobile uploads have additional limitations applied during upload. If you want to be closer to the maximum value we recommend you upload from web.

Due to bandwidth considerations the maximum resolution for mobile might be closer to 6k-8k for long edge; therefore, you could select a larger image on mobile, but it might be resized to this maximum size during upload to Facebook.

Injecting metadata for panoramas (Advanced)

If you'd prefer to use exiftool to inject cylindrical panorama metadata, you can use the following commands:

  • # 120º h_fov, 86º v_fov
  • exiftool -FullPanoWidthPixels=18000 -FullPanoHeightPixels=9000 -CroppedAreaLeftPixels=6000 -CroppedAreaTopPixels=2350 -CroppedAreaImageWidthPixels=6000 -CroppedAreaImageHeightPixels=4300 -ProjectionType=cylindrical file.jpg
  • # 150º h_fov, 86º v_fov
  • exiftool -FullPanoWidthPixels=14400 -FullPanoHeightPixels=7200 -CroppedAreaLeftPixels=4200 -CroppedAreaTopPixels=1880 -CroppedAreaImageWidthPixels=6000 -CroppedAreaImageHeightPixels=3440 -ProjectionType=cylindrical file.jpg
  • # 180º h_fov, 86º v_fov
  • exiftool -FullPanoWidthPixels=12000 -FullPanoHeightPixels=6000 -CroppedAreaLeftPixels=3000 -CroppedAreaTopPixels=1567 -CroppedAreaImageWidthPixels=6000 -CroppedAreaImageHeightPixels=2867 -ProjectionType=cylindrical file.jpg
  • # 240º h_fov, 86º v_fov
  • exiftool -FullPanoWidthPixels=9000 -FullPanoHeightPixels=4500 -CroppedAreaLeftPixels=1500 -CroppedAreaTopPixels=1175 -CroppedAreaImageWidthPixels=6000 -CroppedAreaImageHeightPixels=2150 -ProjectionType=cylindrical file.jpg
  • # 300º h_fov, 86º v_fov
  • exiftool -FullPanoWidthPixels=7200 -FullPanoHeightPixels=3600 -CroppedAreaLeftPixels=600 -CroppedAreaTopPixels=940 -CroppedAreaImageWidthPixels=6000 -CroppedAreaImageHeightPixels=1720 -ProjectionType=cylindrical file.jpg
  • # 360º h_fov, 86º v_fov
  • exiftool -FullPanoWidthPixels=6000 -FullPanoHeightPixels=3000 -CroppedAreaLeftPixels=0 -CroppedAreaTopPixels=783 -CroppedAreaImageWidthPixels=6000 -CroppedAreaImageHeightPixels=1433 -ProjectionType=cylindrical file.jpg
  • # 360º h_fov, 65º v_fov
  • exiftool -FullPanoWidthPixels=6000 -FullPanoHeightPixels=3000 -CroppedAreaLeftPixels=0 -CroppedAreaTopPixels=958 -CroppedAreaImageWidthPixels=6000 -CroppedAreaImageHeightPixels=1083 -ProjectionType=cylindrical file.jpg

Smart Phone Panoramas:

We recognize panoramas from popular smart phones including the following:

  • Apple iPhone 4S and above
  • Apple iPad Pro and Mini 4 and above
  • Most recent Samsung phones
  • Many recent LG phones

Troubleshooting:

I made my own 360 photo and followed your instructions. Why does my 360 photo look so strange?

Facebook honors some metadata tags that do things like specify field of view.

You can see a full list of what we look for here: https://developers.facebook.com/docs/graph-api/reference/photo/ - see spherical_metadata (tap arrow to expand JSON params and see the documentation on the sub-parameters like ProjectionType)

Make sure that the FOV is consistent with what you want. Use one of the metadata editors discussed above to check these values.

Advanced Topics

Editing Equirectangular Projections

Using a standard image editor to edit equirectangular projections can be extremely challenging. You're editing pixels in a non-linear space that contains a lot of distortion. Here are a couple hints for successful editing.

Useful software and plugins

Two extremely useful Adobe Photoshop additions for editing 360 photos are Flexify 2 for Panoramas (Photoshop plugin) and Domemaster Photoshop Actions Pack.

Editing the top, bottom, or sides of an equirectangular projection (like removing a tripod)

Editing equirectangular projections near any image border is difficult. The top and bottom of an equirectangular image is very distorted, and the image actually wraps across the right and left border.

Let's use one of the most common editing desires as an example: tripod removal. At the very bottom of this 360 photo taken at Facebook's Hacker Square is a tripod:

Hacker Square - Warped

If this were a normal image, it would be easy to remove the tripod. But here's what the picture looks like when opened using a traditional image editor:

Hacker Square - Enedited

The tripod is warped across the entire bottom of the image!

One solution is to rotate the 360 photo so that the tripod is no longer at the bottom. Using a tool like Flexify 2 makes this easy. Rotating latitudinally by -90 degrees puts the tripod in the vertical middle of the image. In the middle of the image, it's easy to remove the tripod using traditional tools like the Healing Brush.

Photoshop UI

Once you're happy with your edits, load Flexify 2 again and do a +90 latitudinal rotation to get the image back to normal orientation. Export as a jpg, inject the appropriate metadata, and you're ready to share to Facebook.

If you want to edit across the right / left seam, you can rotate your image longitudinally to get access to that seam, again, in the middle of your newly-transformed image. Here's a 180-degree longitudinal rotation of the same image:

Hacker Square - Clean

You'll notice that the picture's orientation has been rotated exactly half way; the building with the Facebook display is now “behind” us. This, incidentally, is also a way to force the initial viewing orientation. By default, Facebook sets the default view to be the middle of the equirectangular projection. If you want the first view of a 360 photo to be something specific, transform your picture until your desired view is right in the middle.

Photoshop's built-in offset tool (“Filter→Other→Offset”) can also be used to rotate images longitudinally (sliding left and right, wrapping around). In theory, offsetting a picture using “Wrap Around” is a lossless action, so you can do this as often as you'd like when editing your picture.

Photoshop Offset Tool

Changing projections for editing

Other projection types like cubemaps might be more suitable for conventional image editing. There are various tools out there that can convert from equirectangular to cubemap, but very few can convert from cubemaps back to equirectangular. One such tool is vrProjector, which can be used to convert back and forth between the two.

360 Cubemap
A cubemap converted by vrProjector could be used for editing 360 photos

Final notes on editing in 360

In general, you can use tools designed for panorama manipulation to transform equirectangular projections into other projections that might be more edit-friendly. When you do this, be aware that such transformation have the potential to be destructive to data, and you could be degrading the final quality of your 360 photo. Use care when doing such transforms!

Stay Connected

Join our Facebook 360 Community Group to be a part of the daily 360 Video and VR conversation.

Join Our Facebook Group