I am posting this here because I had received a personal message from magglemitch in March about this issue, but I didn't notice it until today.
I wrote a script that used the gyroscope to figure out the orientation of the device, and adjust the video background texture offsets. This doesn't work very well, but is slightly better than the default.
static private bool useGyro = false;
static public float bgScale = 1.02f;
static public float bgOffset = -0.02f;
// speculative fix for scaling issue on certain iPhone models
UnityEngine.iOS.DeviceGeneration iOSDevice = UnityEngine.iOS.Device.generation;
useGyro = true;
Input.gyro.enabled = true;
Input.gyro.updateInterval = 1.0f / 60.0f;
if (useGyro && Input.gyro.enabled && (backgroundPlaneBehaviour != null))
Vector3 up = -Input.gyro.gravity;
Vector2 right = new Vector2(up.y, up.x).normalized;
Vector2 scale = Vector2.one + (bgScale - 1.0f) * right;
Vector2 offset = bgOffset * right;
MeshRenderer meshRenderer = backgroundPlaneBehaviour.GetComponent<MeshRenderer>();
meshRenderer.sharedMaterial.mainTextureScale = scale;
meshRenderer.sharedMaterial.mainTextureOffset = offset;
We only enabled this on late model iOS devices. Our presumption (?) is that it is broken on the 'stereo' cameras. I think that the first stereo camera was introduced in the iPhone 7+ model. But that is just speculation.
Note that the math above might need to be adjusted depending on how you set your screen orientation settings.