Shooting 360-degree video with four GoPro HD Hero cameras

Posted by ryanjackson on Feb 8, 2011 in 360 Panoramas, DIY, photos, training, video

First off, watch my 360-degree Video of the World Record Dodgeball Game at the U of A

So last year I shot this video of the University of Alberta setting a world record for most people playing dodgeball and the video got over 650,000 hits.

I’ve seen a few 360-degree videos out there but not as many as you would think considering how freaking cool they are.
Since 360-degree videos is pretty uncharted territory in the photojournalism world I absolutely had to take the challenge.

To shoot my 360-degree dodgeball video I used four GoPro Hero HD cameras on 1280×960 mode mounted vertically. This gives enough overlap to get a full 360-degree view as well the cameras are nice and small and light. Since the cameras shoot at 30 frames per second (actually 29.97) you can think of it as 30 still pictures per second which can be stitched together into panoramas.

The short version of this story is that I shot with four GoPros, extracted still images from video, stitched the stills together into panoramas then recombined them back into video.

For the much more detailed and nerdy answer read on….

I got tips for arranging the cameras properly at
I simply used a plastic leg from a table that was the same width as the naked GoPro cameras.
I used Gaffers tape and a lot of elastics to hold the cameras in place.
In the future I may build a proper aluminum box for everything.

Setting up a fifth GoPro camera in the catwalk to be used for an overhead view for livestream of the game.

I use a Telus Aircard pluged into a Cradlepoint CTR-379 wireless router for internet for livestreams.

Here was my shooting process.

Hit record on my Olympus LS-10 PCM recorder. Say “scene one” out loud.
Hit Record on Camera 1. Say “camera one” out loud.
Hit Record on Camera 2. Say “camera two” out loud.
Hit Record on Camera 3. Say “camera three”out loud.
Hit Record on Camera 4. Say “camera four” out loud.
Now that everything is recording I clap my hands really fast or yelp really loud so that I have a sharp audio cue that I can sync all the cameras with.

Some people say “You’re crazy for putting your cameras in a dodgeball game like that!”

I say. It’s not about the camera. It’s about the end result. A camera is a tool like a hammer. If your hammer breaks, you get it fixed.

Never let your camera get in the way of a good photo.

As soon as the game ended I ingested all my footage into my MacBook Pro.  It’s always important to get video up as fast as possible if you want to get a lot of views.

I just selected the first 60-seconds of the game and plunked it into Final Cut Pro. I created a large canvas and lined up the different cameras so that they overlapped a bit.

There would be very noticeable seams between the videos but I knew people wouldn’t mind the seams if they got to see the video asap. It took an hour to render the 60-seconds of video in Final Cut Pro and another hour to export it as FLV.  The game ended around 1:30pm and I had a quick and dirty 60-second version of the panorama up on before the 6:00pm news on TV!   In comparison I think I had last year’s video up at the same time.

First year NAIT photography Student Nathan Smith was doing a ridalong with me that day and he was a HUGE help!  He also shot all these awesome photos of me. Thanks!

Okay now for the high quality version with properly stitched images.
For post-processing I created a new timeline in Final Cut Pro 7 with codec Apple Intermediate Codec and size 3840×1280.
Since the cameras are mounted vertically they are recording 960×1280 video. So 4×960=3840.

I find my audio sync point on each camera and set it to be the in-point for the video. I drag each video from each camera into my timeline and line them up so that all the audio sync points line up.

Once my video and audio is all synced then I select each clip and go to “File–>Export –>Export Using Quicktime Conversion–> Image Sequence”
Final Cut Pro 7 extracts JPEG still images for every frame of video. Each frame is about 1.2MBs and you are shooting about 120 frames per second.

That works out to 8.6GB of stills for each minute of video you shoot. Or 520GB per hour.

Since there are four cameras each “frame” of video is actually four pictures which need to be stitched together into a single panorama.

I organize all the images using Photo Mechanic and batch name them 0001a, 0001b, 0001c, 00001d, 0002a, 0002b, 0002c, 0002d, etc.

Then I used PTgui Pro to stitch all my panoramas together into equarectangular panoramas.

PTgui Pro has a great batch process where you can setup a template for your first panorama and then it will auto stitch the rest of the panoramas in file order. This meant that (0001a, 0001b, 0001c, 00001d)–>Panorama1.jpg , (0002a, 0002b, 0002c, 0002d)–>Panorama2.jpg, etc.

I stitched them together in the highest resolution so that each panorama would be 3561×1308 pixels big. About 5MB per panorama. You are now at 18GB per minute of video or about a Terabyte per hour.

This process took the longest. I had three MacBook Pro laptops and my home server all going at the same time. The laptops took around 12 seconds per panorama to stitch.

If you do the math that works out six hours to stitch one minute worth of panoramas together!

I basically had four laptops crunching for 24 hours straight to make all the panoramas.

Once the tens of thousands of panoramas were stitched together I used Quicktime Pro   File–>Open Image Sequence (at 29.97) to open all the still panorama images as a video. I then exported the video as .mov’s in Apple Intermediate Codec  3561×1308 at 280Mb/sec

I then created a new sequence in Final Cut Pro 7 with the same settings and dragged back in the .mov files and synced them with the .wav audio from my Olympus LS-10.

I chose about 17 minutes of footage in total to convert to panoramas and I then cut that down to the best 5 mins and exported as full-quality Apple Intermediate Codec.

I then used Adobe Flash Video Encoder to convert and downsize my video to FLV 2722×1000, On2 VP6, 2000kb video, 96kb audio which I find to be a good balance of quality to file size.  It took about 8hrs for my 2.6GHz MacBook Pro to compress 5 minutes of video into 2722×1000 On2 VP6 Flash video.

Here is my puppy Mr. Woofertons napping while I wait for my video to compress.

Once the video is done compressing into FLV I then used KrPano as the flash panorama player to display the panoramic video as a 360-degree video.

It’s THAT easy!  :)

I actually did this same process for my Murder of Crows time lapse last year  but this was way more intense.

Next time I do this though I will wire the GoPro’s together so that I can trigger them all at the same time. My Olympus LS-10 has a remote trigger port too so I should be able to trigger all four cameras and my audio recorder at the same time which saves time syncing the videos in Final Cut Pro.

There may also be a way to get KrPano to play .mp4 instead of .flv so I could use an Elgato turbo.264 HD to speed up exporting the final video.

You could also write a few simple Applescripts to speed up the file renaming and automate Quicktime Pro. This could eliminate the need for Photo Mechanic and manually moving files around.

What did all this cost?

Four GoPro HD’s would be 4 x $300 = $1,200
Final Cut Pro is $1,000
Quicktime Pro is $30
Photo Mechanic is $150
PTgui Pro is $210
Adobe Flash is $700
KrPano is $150

Cheaper than a $6,000 Ladybug camera and a better field of view and higher resolution than a Pano Pro mirror. Though a PanoPro would be much much easier to use.
As crazy complicated as this may sound I wouldn’t be surprised if whatever Smartphone we all use in a couple years will do this with a 99-cent app.

What I love about 360-video is that almost everyone who sees it is blown away. I love how it opens your mind to new and exiting ways to tell stories.


Behind the Scenes of My First Music Video – Purity of Heart by Pearson

Posted by ryanjackson on Feb 7, 2011 in photos, portrait, Ryan's Life, video

A heart-broken Robot tries to escape the clutches of his moonshine-making Hillbilly imprisoner.

“Slow, subtle and direct – a mesmerizing Canadian sound”, “stark, calming, and mildly trance inducing lullaby-makers”, “Pearson has carved out a niche as a slow-core band — playing intimate, slow and sparse folk music.”

Director & Editor: James Scott –
Director of Photography: Ryan Jackson –
AE Artist: Youlie Harikiopoulou
Colourist: Darren Mostyn –

This was my first music video and the most fun I have ever had shooting. I actually shot this back in August 2009 and it took over a year to get it edited, coloured and EFx’d.
I was the Director of Photography so I took James’ awesome script and made storyboards and then shot everything. It was really fun to work with a director as I could focus on getting the shots and he could focus on directing and organizing everything. We made a good team.

The entire thing was shot in a day and a half! I drove in to Manitou Beach on Saturday morning. We started filming at noon and did all the scenes with the hillbilly as he could only be there on Saturday. Then we got everything else on Sunday and shot right until sundown. It was a miracle we had the same weather two days in a row and got everything done.

I shot everything with the Canon 5D Mark-II. It was actually my first time using one. My friend Kenny lent me his for the weekend. I read the manual and researched as much as I could before the shoot.
I knew that if I wanted the video to have a “film look” that I would need to:
1. Shoot at 24fps
2. Keep the shutter speed at 1/50th (2x the frame rate. On film cameras you shoot at 1/48th)
3. Shoot wide-open to get a narrow depth of field.
4. Use Neutral Density filters so that I could do #2. and #3. in bright sunlight.

I used my heavy Libec LS-38 tripod and head as much as possible and used a shoulder-mounted stabilizer whenever I needed to move.

For lenses I used a 50mm f1.4, 24mm f1.4, 16mm f2.8, 16-35mm f2.8, 24-105mm f4 IS, 70-200mm f2.8 IS and a 300mm f2.8 IS.
I bought two Cokin Neutral Density filters for a combined light reduction of 8-stops. This let me shoot 1/50, f1.8, ISO100 in bright sunlight.

Here are some fun behind the scenes photos. Enjoy!

The sun setting behind me as a drive from Edmonton to Saskatoon, SK on the Friday night before the weekend shoot.

5:40 a.m. on my drive from Saskatoon to Manitou Beach on Saturday, the first day of the shoot.

You know you are in Saskatchewan when...


James the director had the final script for me Saturday morning. I quickly drew up story boards and made shot lists. We were going to start shooting at noon.

Early morning. Finishing the robot costumes. The paint was still drying!

Will is putting the finishing touches on his costume.



Duct taping antlers on the front of the Hillbilly's truck.

We rented a pontoon boat for the first water scene. The boat was perfect for shooting because it didn't wobble on the water.

I used a Hoodman LCD Loupe and rubber bands so that I could see my LCD screen in the sunlight and focus easier.

I used two Cokin ND filters together to get a total of 8 stops of light reduction. This allowed me to keep my shutter at 1/50th with a wide open f2.8 aperture. One of the secrets to the "film look".

Will had to get into the dingy and then get dressed after.

Our hillbilly was awesome. We only had him for the first day though so we had to be sure to get every shot in.

Will could hardly see while he drove the dingy. Of course our hillbilly had a fan boat!

Looks much cooler with digital explosions.

A family member was our chef for the weekend and prepared lots of yummy vegitarian dishes.

Here is Vera Debevc, the owner of the old abandoned shrimp factory that we used for the hillbilly hideout and robot prison.

Vera Debevc and our hero.

After lunch we filmed the scene where the hillbilly kidnaps the robot in a quarry.

It took forever to get dressed and undressed.

Robot Love

More Robot Love

Oh No! The hillbilly!

You're gonna squeal like a pig

Oh No!

The light was perfect that night.

God I love lens flare!

Perfect drunk

Me wearing hipwaiters.

This is the light we had in the old shrimp factory. A single hole in roof. The Canon 5D Mark-II held up amazing in low light.


Oh no you don't!

A shot we never used in the film of the robot getting away.

Vera with the robot again outside of the old shrimp factory. She was so cute!

Final shot of the first day of shooting. We were now done all the shots with the hillbilly.

Day two. We need some more romantic shots of robot and ladybot together. There is James the director on the left.

This is my desktop background. I love this picture. So weird!

Robot sex scene!

Here you see how I filmed the robot sex scene. I mounted a 5D Mark-II with a 16mm fisheye lens above the bed on a monopod.

We used a monitor to frame everything.

Getting some shots of the band. We were going to have the band pop in and out of the video but it didn't make the cut.

Beautiful day.

Getting dressed again for the final shots.

Filming the robot reunited with his long lost love.

We were soooo lucky to have the exact same sunset both nights. The weather was perfect!

Even more robot love.

Sun is setting fast. Running out of time.

Rushing to the junk yard for the final scene.

Only a few minutes left before the sun is down. Need to get those final shots.

The tragic surprise ending.

The final shot.

Group photo of almost everyone involved in making the film.

Heading back to the cabins after a very long perfect day!


iPhone Video Journalism Training with Ryan Jackson / Edmonton Journal

Posted by ryanjackson on Feb 2, 2011 in training, video

Ryan Jackson with the Edmonton Journal gives tips for capturing and editing quality video with an iPhone 4G or iPhone 3Gs for the purpose of video journalism.

Below is a screencast of me giving the presentation. 43 minutes total. I cover A LOT of stuff. Apps, technique, theory, shooting situations, editing and transmitting.

And here is my Google Doc presentation with all the links in it.


Copyright © 2024 Ryan Jackson Photography All rights reserved. Theme by Laptop Geek.