[FFmpeg-user] Problem in v360?

Michael Koch astroelectronic at t-online.de
Sat Oct 24 20:09:16 EEST 2020


Am 24.10.2020 um 11:03 schrieb Michael Koch:
> Am 23.10.2020 um 18:46 schrieb Michael Koch:
>> Am 23.10.2020 um 17:19 schrieb Michael Koch:
>>> Hello,
>>>
>>> It seems there is a problem in the v360 filter. This command line 
>>> doesn't rotate the correct point to the image center. The default 
>>> rotation order should be yaw pitch roll, which means after the 
>>> rotation the point with azimut 180° and height +45° should be in the 
>>> center. It is nearby, but not in the center. Tested with latest 
>>> Windows build, 2 days old.
>>>
>>> ffmpeg -i equirectangular_test.png -vf v360=e:e:yaw=-90:pitch=45 -y 
>>> out.png
>>
>> If the rotation is only yaw or only pitch or only roll, then it's 
>> working fine. But all rotations around two or more axes fail.
>
> I'm not sure, but the problem might be in the function 
> multiply_quaternion() in vf_v360.c
> Please compare the signs with this Wikipedia article:
> https://en.wikipedia.org/wiki/Quaternion#Hamilton_product

After a deeper look into the quaternion multiplication, it seems to be 
correct. The terms are only written in a different order in the 
Wikipedia article.

But it's a fact that the v360 rotations are broken, as can be shown by 
this simple test:
You can use any equirectangular input image.
First make a combined rotation yaw=90 and pitch=45 in the default 
rotation order (ypr),
then rotate back pitch = -45,
then rotate back yaw = -90.
The output image should be the same as the input image. But it isn't.

ffmpeg -i input.png -vf 
v360=e:e:yaw=90:pitch=45,v360=e:e:pitch=-45,v360=e:e:yaw=-90 -y out.png

Michael



More information about the ffmpeg-user mailing list