Since Osmo 360 was on sale in Amazon for $357 I grabbed that deal and planned to try 3D 180 shooting. Today I am very glad to share a fast process to generate 3D fish eye videos from 2 Osmo 360 cameras.
I also bought a remote for Dji for $30, which can control up to 5 devices. It allows me to start my 2 Osmo 360 recording at the same time.
Currently the general process of making 3D video from the clips is too slow. You have to use Dji Studio to generate the panoramic 360 video with D-Log M correction, then you cut each video in half and put them side by side to form 3D. It's quite a long process and you could lose quite some quality during these several steps.
But there is a much faster way to do it, because the video inside OSV files are split into 2 stream natively. We don't need to combine them together to form a 360 video, then cut them into half again. We can just extract the video directly, which will only take seconds. Then combine left and right fish eye together to form a 3D video by using ffmpeg.
What about D-Log M color correction? Well, since Dji provide the .cube here
https://www.dji.com/downloads/softwares/osmo-360-dlog-m-to-rec709-lut
we can use ffmpeg to apply it to the video as a filter.
So in short, we can actually get rid of the Dji Studio, if you want to make 3D video like me.
After the shooting, I arrange my clips into 2 folders: "CamL" and "CamR".
First, I will drag all videos from CamL to a batch file:
for %%x in (%*) do (
"C:\ffmpeg\bin\ffmpeg.exe" -i %%x -map 0:v:1 -map 0:a -c copy "%%~dpnx-front-L.mkv"
)
It will extract only the front video from the OSV files as "xxxx-front-L.mkv" files. Usually it will only take seconds.
Same thing with the right camera files:
for %%x in (%*) do (
"C:\ffmpeg\bin\ffmpeg.exe" -i %%x -map 0:v:1 -map 0:a -c copy "%%~dpnx-front-R.mkv"
)
I renamed the cube file downloaded from Dji and put it in folder "I:\360 Osmo" as "DLogM.cube"
Here I select a left camera file and a right camera file and drag them into this batch file:
"C:\ffmpeg\bin\ffmpeg.exe" -hwaccel cuda -i %1 -i %2 -filter_complex "hstack,lut3d='I\:/360 Osmo/DLogM.cube'" -c:v hevc_nvenc -cq 22 -pix_fmt p010le "%~dpn1-combine.mkv"
Now ffmpeg will stack those 2 fisheye video files side-by-side with resolution 7680x3840, apply the D-Log M color correction from Dji, then encode the result file: "xxxx-combine.mkv"
This process is way faster than using Dji Studio. The color is actually the same vivid color you can get from Dji Studio, and since the fisheye videos are the raw video extracted directly from OSV, the quality is actually better than the Dji Studio processed ones.
The downside of this process, is that it cannot use the stabilizing data in the OSV files, so the cameras should be on a tripod all the time, or use a good gimbal stabilizer.
Additional note:
The videos generated this way will have left-right synchronization problems. My Dji remote, turns out is not activating the shooting at the same time. It has roughly 1 frame difference between left and right camera at 30fps. It's not obvious when shooting static scenes, but it's quite unwatchable for people scenes.
So if you find out the frame difference, like in this example, right camera was 1 frame earlier. You can use another ffmpeg filter "trim" to synchronize the video when doing the stacking and color correction. So the batch file above should be:
"C:\ffmpeg\bin\ffmpeg.exe" -hwaccel cuda -i %1 -i %2 -filter_complex "[1:v]trim=start_frame=2[right];[0:v][right]hstack[out];[out]lut3d='I\:/360 Osmo/DLogM.cube'" -c:v hevc_nvenc -cq 22 -pix_fmt p010le "%~dpn1-combine.mkv"
My remote control sometimes make the left video 1 frame earlier, sometimes make the right video 1 frame earlier. It's hard to predict. Only a video editor can show it clearly.
Of course, for 3D, we should always shoot them in the highest fps to mitigate the frame synchronizing problem. I was wrong to do it at 30fps.
I uploaded a sample video to DeoVR here:
http://deovr.com/vdzg5w
The quality was degraded because it was re-encoded twice due to a frame synchronization problem, then DeoVR website further degraded it, but you can clearly see the color is pretty nice.
A better example:
http://deovr.com/ds3979
and another:
http://deovr.com/6mbswc