Canon ➡️ Davinci ➡️ one eye ➡️ VR180 ➡️ YouTubeVR

First, why crop to one eye? Something with the Canon EOS R5C dual fisheye lens, maybe it was the weather, maybe the transport, but one eye is blurred compared to the other. Shocker to have realized this after three days of filming … but the asset must be delivered, and YouTube VR is an acceptable asset delivery for this project so … why not just flatten the video to one eye, keep the VR180 and we still have a deliverable project on YouTube VR.

Started off with Davinci Resolve Studio, export the hevc master side by side (not mv-hevc)

Going to use ffmpeg and exiftool to make this happen.

File is about 3:30 final and size is 5.5GB and dimensions of the side by side are 4096×8192, so 4096 square for each eye. Render time was maybe 12 hours on M2 MacBook Pro 24GB RAM.

% ffprobe -v error -select_streams v:0 -show_entries stream=codec_name,pix_fmt,width,height -of default=nw=1  ~/Davinci/VR_208_V1.mov 
codec_name=hevc
width=8192
height=4096
pix_fmt=yuv420p10le

I could have probably just exported the left eye from Davinci now that I’m looking at it … but moving right along to using ffmpeg.

ffmpeg -i ~/Davinci/VR_208_V1.mov \
  -map 0:v:0 -map "0:a?" \
  -vf "crop=iw/2:ih:0:0" \
  -c:v libx264 -crf 18 -preset slow -pix_fmt yuv420p \
  -c:a aac -b:a 320k \
  -movflags +faststart \
  ~/Desktop/VR_208_YOUTUBE_VR_DELIVERY.mov

Took about 36 minutes to process.

Now to do the exiftool for tagging it for YouTube so it plays it back in VR180

 % exiftool -overwrite_original \
  -XMP-GSpherical:Spherical=true \
  -XMP-GSpherical:Stitched=true \
  -XMP-GSpherical:ProjectionType=equirectangular \
  -XMP-GSpherical:StereoMode=mono \
  -XMP-GSpherical:FullPanoWidthPixels=8192 \
  -XMP-GSpherical:FullPanoHeightPixels=4096 \
  -XMP-GSpherical:CroppedAreaImageWidthPixels=4096 \
  -XMP-GSpherical:CroppedAreaImageHeightPixels=4096 \
  -XMP-GSpherical:CroppedAreaLeftPixels=2048 \
  -XMP-GSpherical:CroppedAreaTopPixels=0 \
  ~/Desktop/VR_208_YOUTUBE_VR_DELIVERY.mov 

and a confirm step

 % exiftool -G1 -a -s "-XMP-GSpherical:*" ~/Desktop/VR_208_YOUTUBE_VR_DELIVERY.mov 
[XMP-GSpherical] CroppedAreaImageHeightPixels   : 4096
[XMP-GSpherical] CroppedAreaImageWidthPixels    : 4096
[XMP-GSpherical] CroppedAreaLeftPixels          : 2048
[XMP-GSpherical] CroppedAreaTopPixels           : 0
[XMP-GSpherical] FullPanoHeightPixels           : 4096
[XMP-GSpherical] FullPanoWidthPixels            : 8192
[XMP-GSpherical] ProjectionType                 : equirectangular
[XMP-GSpherical] Spherical                      : True
[XMP-GSpherical] StereoMode                     : mono
[XMP-GSpherical] Stitched                       : True

Looks good? Mono 4096. I think FullPano is about YouTube VR is 360 full pano, and so thats why it says 8192? And 2048 skip because the VR starts behind you so skip 2048?

Result: It worked! exiftool and ffmpeg hooray!