video 360 stitching

Hi,

I would like to implement my own video stitching software for 360 videos, converting the dual fisheye to equirectangular is something I already solved.

The issue that I’m facing is about orientation. Seems like the ricoh theta stitcher is able to get yaw putch and roll of every frame in the video and therefore perform a rotation accordingly so that the final equirectangular frame looks straight.

If this is exactly the case, which I’m 98% sure, does anyone knows how to get that rotation information for every single frame ? is it encoded somehow in the metadata ? Of course I do not refer to the :
Rotation : 0
Ricoh Pitch : -35.81
Ricoh Roll : -10.08

That we can get with exiftools, but as mentioned to this individual frame information.

Thanks in advance and kind regards

For the THETA X, the data is in CAMM format for the 8K and 5.7K (some fps) formats. There are several tools out there to extract the CAMM format. I use AtomicParsley for testing.

For the Z1, V, SC2, the data is not publicly accessible. The RICOH desktop software seems to read it in for the video stitching and top/bottom correction. However, we do not have access to the format.

Are you looking at high-resolution, low fps video? For example, 8K 2fps or 8K 10fps?

Hi Craig,

Thanks for the detailled answer. That’s interesting that from theta X, ricoh has open the data in this CAMM format.

I own a theta SC, V and Z1, so I can not experiment with that data apparently, but it’s a shame that we can not have such access, and more being ricoh that they proved that by openning the system to the community they can grow larger…

Is it possible to make 8K 2fps or 8K 10fps with Z1 ?

Thanks again and regards

It’s not possible. However, looking at the publicly available API spec branch, it seems looks like there may be more formats for the Z1 video in firmware 3.01.1.

You could theoretically try the 3648x3648 resolution at 2fps when the firmware is updated. It may have the IMU data in CAMM format. I do not have any additional information other than what is on GitHub. I am just guessing as to the format.

You may be able to find more tools for the CAMM format by searching for Google Street View Publish API and associated libraries for video to still image conversion for use on Google Maps.

That’s a nice info !!

Could you please share the link where you found it ?

I was checking quite deeply in ricoh githb and could not find it

But I’m not sure what would be the reason for having such aspect ratio (1:1) for the video

By the way these are my stitching results with z1, not perfect but still fine for my usage

stitched

Thanks again !

1 Like

I sent you a DM regarding the source of the chart.

I do not know either. It may be using a single lens for a 180 view. I have not seen the output yet as I do not have access to the 3.01.1 firmware. However, it looks interesting, so I plan to check it out.

Wow, amazing job with the stitch.

BTW, is there a reason you’re not stitching the video internally inside the camera? Is the screenshot from the SC2?

Yes, it seems it will be a single lens view with this aspect ratio, seems interesting.

Stitching the video internally is not correcting the rotations from the camera, so if the user holds it in a diferent way than the vertically expected, the generated equirectangular view is not aligned.

Do you know if via api we have access to the gyro, magnetometer data ? That way I could save that data to correct alignment.

Thanks

There is no access from the WebAPI. There is access using a plug-in.

THETA X can do top/bottom correction for video inside camera
theta-api-specs/theta-web-api-v2.1/options/_top_bottom_correction.md at main · ricohapi/theta-api-specs · GitHub

theta-api-specs/theta-web-api-v2.1/options/_top_bottom_correction_rotation.md at main · ricohapi/theta-api-specs · GitHub

The firmware is now out:

Notification of firmware update for “RICOH THETA Z1“ camera. - トピックス(米国)

There are appears to be two videos, one for each lens.

commit

Thanks for the update !
Already updating it !!

The main branch of the API spec appears to be updated now (as of yesterday)

I’m going to review the changes and test them today.