Boris Stabilization/Smoothing (for a Sony Vegas project)

Using Boris RED on Windows, mostly as standalone (Red Engine).  Today, wanted to apply it as a stabilizer.  Have done this a long time in the past, for AVI files etc., but this is the first time I have seriously tried to apply it to to XDCAM-EX footage, of 720p50 (intended for a PAL DVD 576i50 deliverable).   Summary:

  • Warnings:
    • Boris can’t be used in Sony Vegas for other than static effects, hence not for stabilization (a dynamic effect).
      • At least, not without a workaround of debatable overall advantage (explained under “More”).
    • Boris doesn’t recognize Sony XDCAM ClipBrowser’s “MXF for NLEs” format, but does recognize Cineform AVI (no need to be QT).
    • When altering any settings, Boris defaults to keyframing them.  Right-click the funny symbol and change it to Constant.
    • Have to double-check the compression settings, including the codec’s own dialog (their defaults are not always good and they can change “automatically”).
    • Boris can export 720p50 as QT-CFHD but, as far as I can tell, Sony Vegas cannot (it can only export such CFHD as AVI, though thankfully Boris can read that).
    • Boris doesn’t use multiple CPUs it seems.  Unlike DeShaker – of great advantage for such lengthy (CPU-heavy) processes.
  • Instructions (in Boris):
    • Delete existing tracks, drag-in the source file, de-select its tracks (audio & video), Menu: [Filters > Time > BCC Optical Stabilizer], select the Stabilizer track.
    • In Controls change Mode from default [Setup region] to wanted [Smooth], twirl-open the Stabilizer track, drag video track onto its Input Layer.  Also increase Smoothing Range from default (30 frames) to 1 or 2 seconds-worth (in my case 100 since footage was 50 fps).
    • Click Preview’s [ >>| ] “Go To End” button.  This causes motion analysis to begin.  Takes ages…  Likewise, don’t bother playing it…
    • [Menu: File > Export > Movie File].
      • Initially generate a quick draft to check the stabilization is as required:
        • Temporarily set 25fps, choose [Fast]
        • Select a limited region (I/O) for export.
      • Regardless, in compression dialog, if Cineform is used then select Quality = Medium (not Best or High which are overkill).
  • Links:


  1. Initially the project was in Sony Vegas, where I tried applying the easiest option, namely ProDad Mercalli.  However the latter didn’t like my 720p50 format.
  2. Considered using VirtualDub-DeShaker but that (when I last used it) invoked levels-change issues, so decided on Boris instead.
    1. Both VirtualDub and DeShaker have just been updated.  VirtualDub 1.9.9 and DeShaker 2.5.  Currently, DeShaker recommends VirtualDub 2.5 but needs the 32-bit version of that application.  I’ll give them a try sometime.  But not now.
    2. Instructions for (a previous version of?) DeShaker are at
  3. Boris Annoyance: Boris requires you to manually enter duration.  Found out what that was in advance via Sony Vegas.  But once loaded into Boris, select the track and see its info on the left.  However you can’t select/copy it, you have to type it in…
  4. To minimise problems (I thought), decided to use Boris Red Engine i.e. standalone not plugin. BUT…
    1. Boris doesn’t recognize Sony’s “MXF For NLEs” format (as exported by XDCAM-EX ClipBrowser).
  5. So try making a separate Sony Vegas project just for this footage-processing, using Boris as a plugin.  BUT…
    1. That didn’t work – the Boris appeared only to be able to see the initial frame of my clip in Vegas.   I imagine that might be because Sony Vegas still doesn’t pass sufficient stuff to plugins (like Boris) to properly/conveniently do dynamic (time-related) things like motion analysis.  Someone thinking very much like me had similar difficulties in 2007
    2. There is a workaround which I think merely avoids the need to render the result from Boris but then one would get the (long) render-time hit whenever rendering from Vegas so I’m not sure that’s an advantage…  The idea is you render out the bit you want from Vegas (to a Boris-readable format) then apply Boris as an FX to the original Vegas event but then in Boris disable or delete the corresponding V1 track, instead freshly importing the exported copy, just as if it were being done standalone.  Equally one can apply such an FX to an a Vegas Empty-Event.   Possible but I’m not sure it’s helpful.
  6. So it was back to standalone-land then.  The plan: First use a separate Sony Vegas project to transcode the (unprocessed) original footage to something Boris likes, then import that to a standalone (Red Engine) Boris project.  Sony Vegas render experiments:
    1. First tried AVI-CFHD.  Yes it has a 720p50 option and Boris can handle it OK.
    2. Also tried  QT-CFHD, as my previous experience of Boris is that it prefers QT. However QT-export did not have a 720p50 option, the nearest match (not useful) was 59.94.  So the film guys are catered for but not us video monkeys…   Not an option!
  7. In Boris-standalone (Boris Red Engine):
  8. First, I deleted Boris’s default “Ball & Wall” video tracks.
  9. Imported the AVI-CFHD, this happened OK though not instantly (was it simply being scanned for correctness & info?).  The result was two tracks: one for Audio, one for Video.
  10. De-selected the imported tracks and did [Menu: Filters > Time > BCC Optical Stabilizer].  A “Ball” appeared in Preview, and that image had a white border (not a screen-region marker) with blue circles at top-left and bottom-right corners.  Presumably handles to adjust the optical tracking area (rectangle).  I’ll leave them alone for this job.
  11. Selected the [BCC Optical Stabilizer] track to reveal its controls (in the Controls pane, top-left of workarea).  Noted that its Mode defaulted to [Setup Region], hence indeed the handles etc.
  12. Changed the Mode to Smooth, which allows progressive motion (e.g. a pan), just smoothing that progression (like SmoothCam in FCP).  In contrast, the Stabilize mode locks all motion to a reference frame, trying to eliminate all motion.
  13. In Preview, the white border disappeared and the blue corner-circles were replaced by a single blue circle at the centre.
  14. Opened (twirled) the BCC Optical Stabilizer track to reveal its Input Layer.
  15. Dragged the video track of the imported media to the Input Layer.    The filter has a Media layer (containing V1 = “Ball”) but it cannot be dragged-to.
  16. Clicked the [Go To End] button.  Cursor (CTI) was initially at start; putting it to the end made Boris do an Analysis (of motion) pass over the whole clip.  The analysis took real-time (about 20 seconds) to complete (on a Mac Pro of 2009 vintage).
  17. Tried playing it but unwatchably slow (a minute or two for the 20-second clip).  So decide to render out first.
  18. [Menu: File > Export > Movie File].  To expedite (this slow process), select a sub-section (I/O) and choose Render Settings: [Fast] .]
  19. Export dialog default settings were (QT, Best, None, Full, High, …Compression CFHD 1280×720 @ 50p).  Note that unlike in Sony Vegas, a 50p option was available in the dialog from Boris.  However [Best] is total overkill, only really intended for movie-production.  When I tried “Best”, I got files about 1.5 times bigger than the original, whereas at “Medium” I got files about the same size as original.
    1. Cineform state (at that <<<“Best” on the FCP slider corresponds to the Windows setting that we call “Filmscan 2″.  We don’t recommend you use Best/Filmscan2 for most work as the files are larger (internally we often call it “Overkill”), and except for demanding keying or effects work you will be well served with High (Windows: “Filmscan”) or Medium (Windows: “High”).  Obviously your own tests for optimum quality settings for your projects are recommended. >>>
    2. So first go into the (Cineform dialog) and set it to [Medium] (from its default of [Best]).
  20. Export rendering was incredibly slow – maybe 5 or 10 minutes (didn’t time it).  But it’s a case of “no pain, no gain” I guess, maybe CPU was gainfully doing lots of sub-pixel object-tracking/prediction etc…
  21. The [Fast] render suffered in the motion macroblocks department.  Bits of the image jittered around visibly…  However a subsequent [Best] render (at Boris not Codec level) did not suffer such problems.
  22. By experiment, found that the [BCC Optical Stabilizer] controls setting for [Smoothing Range] needed increasing from its default 30 (1 second at NTSC frame-rates] to at least 50 (1 second at my double-PAL rate) or preferably 100 (2 seconds at my rate).
  23. Exported the result to QT-Cineform, Best Render but Medium Codec quality.
  24. Back in the Sony Vegas project, replaced the original with the stabilized footage.  No serious levels-changes, though possibly some subtle ones, checked them against video scopes in any case.  No serious levels-change was one of my main reasons for using Boris instead of FCP’s SmoothCam (where, for whatever reason, including myself or my OS X version, I had previously experienced such issues).

Leave a Reply

You must be logged in to post a comment.