Generate maps for ffmpeg to convert of spherical video from the dual-full frame fish-eye images to equirectangular video.
Adapted from the example given for ffmpeg's RemapFilter
, with support added for video captured with Ricoh Theta S devices.
- Install ffmpeg, (make sure it's a recent version)
- Checkout the source of this repository
- Build: `$ gcc projection.c -lm -o project
$ ./project -x xmap.pgm -y ymap.pgm -h 960 -w 960 -c 1920 -r 960 -m theta --verbose
This creates two ASCII encoded PGM files which act as a lookup table for ffmpeg to remap the video.
$ ffmpeg -i R0014696.MP4 -i xmap.pgm -i ymap.pgm -q 0 -lavfi "format=pix_fmts=rgb24,remap" remapped.mp4
The Lens mapping isn't perfect, I'm working on getting a more accurate mapping.
Stabilizing output videos via Hugin with Matthew Petroff's method reveals a wobble that would not be present if the mapping was perfect; Convieniently, I think i can use Hugin's Lens Calibration tools on the source frames to find a better mapping.
If you want to upload your video to youtube as a 360 video, make sure you encoded it as a .mp4, and use this tool from google. On linux, you can install python-tk
and use the gui, or use it via command line.
The instructions there say to run python spatialmedia
but there isn't anything called that, so replace spatialmedia
with __main__.py
and it works.
python __main__.py -i remapped.mp4 remapped_injected.mp4
Your file is now ready for YouTube/etc.