[FFmpeg-user] v360 / perspective

Michael Koch astroelectronic at t-online.de
Sat Dec 5 12:01:41 EET 2020


Am 04.12.2020 um 18:14 schrieb Paul B Mahol:
> On Wed, Dec 2, 2020 at 11:11 PM Michael Koch <astroelectronic at t-online.de>
> wrote:
>
>> Am 01.12.2020 um 19:56 schrieb Michael Koch:
>>> Hello,
>>>
>>> there seem to be some problems in the v360 filter with "perspective"
>>> output.
>>> Tested with the latest Windows built, 2 days old. You can reproduce
>>> this with any equirectangular input image.
>>>
>>> ffmpeg -i equirectangular_test.png -lavfi v360=e:perspective -y out1.png
>>>
>>> The output of the above command has two problems:
>>> -- The center of the input image is not mapped to the center of the
>>> output image. For most other projections the image center is preserved.
>>> -- The output is mirror reversed (which means you cannot read text).
>>>
>>> Both problems can be corrected with this workaround:
>>>
>>> ffmpeg -i equirectangular_test.png -lavfi
>>> v360=e:perspective:pitch=90:v_flip=1 -y out2.png
>>>
>>> Now I want to add a yaw rotation after the pitch rotation:
>>>
>>> ffmpeg -i equirectangular_test.png -lavfi
>>> v360=e:perspective:rorder=pyr:pitch=90:yaw=20:v_flip=1 -y out3.png
>>>
>>> But in the output you can see that a roll rotation was done.
>> Today I did for the very first time figure out how to compile ffmpeg.
>> The above problem can be solved by changing two lines in vf_v360.c
>> Sorry, I haven't yet figured out how to use git.One thing after the
>> other...
>>
>> Old version:
>> line 3136:   vec[1] = sin_theta;
>> line 3137: vec[2] = cos_theta * cos_phi;
>>
>> New version:
>> line 3136: vec[1] = cos_theta * cos_phi;
>> line 3137: vec[2] = sin_theta;
>>
>> I'm not sure if lines 3139 to 3141 must also be changed.
>>
>>
> Good job!
> Please write a patch with correct authorship and send it to the devel list.
> Fixing this for you was much more work than writing & sending patch will be.

Can you please explain what's the exact meaning of "v_fov" with 
perspective output?
I think it might be the distance from the camera to the surface of the 
sphere, normalized to the sphere's radius. But only approximately.
What's the default value and where in the source code is it set?

Michael



More information about the ffmpeg-user mailing list