After spending a long time on many different things I have decided that it is time again to learn new tech and start a new project
360Tube came about after I purchased a 360 hemi spherical camera and found that it was quiet cumbersome to handle uploads to YouTube’s new immersive 360 experience.
The first step for me was to find a possible solution to convert the video from the circular shape to the required equi-rectangular format using Linux.
After some quality time searching I came up empty and decided to roll my own ffmpeg filter to convert the input appropriately.
After I had completed the filter I found myself playing a lot with the parameters yaw, roll, and pitch for every individual video.
What was missing was an easy and intuitive way to set the proper values using a GUI and most importanty I wanted this to work on my smartphone.
So the idea of 360Tube was born.
Since I have never written a mobile app before and since I am also new to Java it took a bit longer to get the initial set of GUIs working, mainly because they required custom controls to be integrated into the app.
Thought there is a lot I still don’t know I am now able to create almost all required interfaces. The integration of a custom media player which uses hardware acceleration to morph the input video will come in a later release
I am currently porting the spatialmedia Python scripts provided by Google to C++. These scripts will inject appropriate meta data into the mp4 container to enable YouTube to recognize the video as a 360 immersive video.
Once completed what’s left are only two things
1) finish up the GUI to achieve a MVP. This includes the real-time display of the roll and pitch settings.
2) integrate FFMPEG into the overall app as the rendering engine.
Of course there are tons of improvements that can follow, like the integration and handling of multiple lens, rendering of the preview in hardware using OpenGL, and an addition of a backend rendering farm and/or a cloud based service.
Also I want to enable the export to Facebook’s 360 box-format.
I guess once I cross the initial MVP stage I can gather some data on the order of building out the next set of features.