Wednesday, November 25, 2009

vReveal review - the best video stabilizer

Anyone who has recorded home videos knows how hard it is to keep the camera steady. Taking video outside on windy days makes it especially difficult. Luckily, there are a few good video stabilization programs to stabilize the video. Most of these top video stabilizers are commercial, though there is one free video stabilizer. The video stabilizer tutorials out there are long and complicated, so I was just looking for something that does it more me.

The video stabilizer I recommend is vReveal. According to their website, it's been used in forensics to sharpen video. The video stabilization in vReveal is very good, although it doesn't give you many options. For an amateur photographer and videographer like me, it's fine because I don't want to do a lot of messing around.

What I liked most about vReveal was its simplicity. If you've ever used Adobe Premiere (or even its Elements sibling), you know how long the learning curve is. With vReveal, it just takes three steps.
  1. Import the video
  2. Click on the stabilize button
  3. Save
It really is as simple as that. You can also choose some of the other options that will sharpen, brighten and cleanup the video (highly recommended). Depending on the speed of your computer and length of the video, it may take 5 minutes to an hour to make the changes.

A nice feature to add would be bulk autofixing. I took about 12 videos during my trip to Yellowstone and I would love to just drag them onto vReveal and click One-click-fix and click save and then in a few hours, it'll be done. Right now, I have to do them one by one now and it is a bit tedious. Already fixed. See instructions here. It really needs to be documented somewhere (Getting started page or FAQ) because the feature is not self-evident.

Notes:
  • Install the free version Quicktime. This will allow you to import .mov videos, which is the video format of many digital cameras
  • Install DivX Pro encoder to give you more options to export the video

video

Conclusion

If you're looking for a simple video stabilizer program that just works, give vReveal a try. You'll be pleased with the results. I was.

http://www.vreveal.com/

Pros
  • Simple and easy to use
  • Noticeably improves video
Cons
  • Long time to apply the changes
Feature request
  • Batch autofixing - already implemented

Other top video stabilizers

  • VirtualDub with DeShaker plugin (free, but difficult to use)
  • Mercalli Stabilizer (commercial, many settings, complicated, for professional users)


Sunday, November 15, 2009

Finding freely licensed video content, such as creative commons videos

For whatever your purpose, you may need to find free and open video files to be used in your project. Here's a list partially compiled by me and partially by Wikimedia Commons.



Saturday, November 7, 2009

Convert with ffmpeg2theora context menu item


Here's a simple registry file that when imported will add a menu item to your right click menu. This makes it easy to simply right click on a video file and click "Convert with ffmpeg2theora". The file will be converted using the default ffmpeg2theora parameters and the resulting file will be in the same directory as the source.

The requirement is that you have ffmpeg2theora.exe (named exactly that) in your c:\ directory.

1. Download ffmpeg2theora
2. Rename it from ffmpeg2theora-0.25.exeto simply ffmpeg2theora.exe
3. Copy the file (ffmpeg2theora.exe) to your c:\ directory.
4. Download the zip below containing the registry file and double click on the registry file to add it to the right click menu.
5. Test it out on a sample video file.

Download here (Convert with ffmpeg2theora.zip)


The file simply contains
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\ffmpeg2theora]

[HKEY_CLASSES_ROOT\*\shell\ffmpeg2theora\command]
@="C:\\ffmpeg2theora.exe %1"



Also attached is a reg file that will remove the context menu.


Friday, November 6, 2009

ffmpeg2theora 0.24 windows binary download

The latest version of ffmpeg2theora is 0.25, released in September 2009. If you're looking for an older version of ffmpeg2theora, here are a couple.


Note, 0.25 has significant quality improvements over these older versions.







Wednesday, November 4, 2009

ffmpeg2theora arguments and parameters

Here's a listing of the ffmpeg2theora arguments, for reference.

Official website is at
http://v2v.cc/~j/ffmpeg2theora/

Some experimental snapshot builds can be found at:
http://firefogg.org/nightly/ courtesy of the Firefogg project.

Example commands are at the end of this post.


ffmpeg2theora 0.25+svn16605 - Xiph.Org libtheora 1.1 20090822 (Thusnelda)

Usage: ffmpeg2theora [options] input

General output options:
-o, --output alternative output filename
--no-skeleton disables ogg skeleton metadata output
-s, --starttime start encoding at this time (in sec.)
-e, --endtime end encoding at this time (in sec.)
-p, --preset encode file with preset.
Right now there is preview, pro and videobin. Run
'ffmpeg2theora -p info' for more informations

Video output options:
-v, --videoquality [0 to 10] encoding quality for video (default: 6)
use higher values for better quality
-V, --videobitrate encoding bitrate for video (kb/s)
--soft-target Use a large reservoir and treat the rate
as a soft target; rate control is less
strict but resulting quality is usually
higher/smoother overall. Soft target also
allows an optional -v setting to specify
a minimum allowed quality.

--two-pass Compress input using two-pass rate control
This option requires that the input to the
to the encoder is seekable and performs
both passes automatically.

--first-pass Perform first-pass of a two-pass rate
controlled encoding, saving pass data to
for a later second pass

--second-pass Perform second-pass of a two-pass rate
controlled encoding, reading first-pass
data from . The first pass
data must come from a first encoding pass
using identical input video to work
properly.

--optimize optimize video output filesize (slower)
(same as speedlevel 0)
--speedlevel encoding is faster with higher values
the cost is quality and bandwidth
- 0: Slowest (best)
- 1: Enable early skip (default)
- 2: Disable motion compensation
-x, --width scale to given width (in pixels)
-y, --height scale to given height (in pixels)
--max_size scale output frame to be within box of
given size, height optional (%d[x%d], i.e. 640x480)
--aspect define frame aspect ratio: i.e. 4:3 or 16:9
-F, --framerate output framerate e.g 25:2 or 16
--croptop, --cropbottom, --cropleft, --cropright
crop input by given pixels before resizing
-K, --keyint [1 to 2147483647] keyframe interval (default: 64)
-d --buf-delay Buffer delay (in frames). Longer delays
allow smoother rate adaptation and provide
better overall quality, but require more
client side buffering and add latency. The
default value is the keyframe interval for
one-pass encoding (or somewhat larger if
--soft-target is used) and infinite for
two-pass encoding. (only works in bitrate mode)
--no-upscaling only scale video or resample audio if input is
bigger than provided parameters

Video transfer options:
--pp Video Postprocessing, denoise, deblock, deinterlacer
use --pp help for a list of available filters.
-C, --contrast [0.1 to 10.0] contrast correction (default: 1.0)
Note: lower values make the video darker.
-B, --brightness [-1.0 to 1.0] brightness correction (default: 0.0)
Note: lower values make the video darker.
-G, --gamma [0.1 to 10.0] gamma correction (default: 1.0)
Note: lower values make the video darker.
-Z, --saturation [0.1 to 10.0] saturation correction (default: 1.0)
Note: lower values make the video grey.

Audio output options:
-a, --audioquality [-2 to 10] encoding quality for audio (default: 1)
use higher values for better quality
-A, --audiobitrate [32 to 500] encoding bitrate for audio (kb/s)
-c, --channels set number of output channels
-H, --samplerate set output samplerate (in Hz)
--noaudio disable audio from input
--novideo disable video from input

Input options:
--deinterlace force deinterlace, otherwise only material
marked as interlaced will be deinterlaced
-f, --format specify input format
--inputfps fps override input fps
--audiostream id by default the first audio stream is selected,
use this to select another audio stream
--videostream id by default the first video stream is selected,
use this to select another video stream
--sync use A/V sync from input container. Since this does
not work with all input format you have to manually
enable it if you have issues with A/V sync
Subtitles options:
--subtitles file use subtitles from the given file (SubRip (.srt) format)
--subtitles-encoding encoding set encoding of the subtitles file
supported are utf-8, utf8, iso-8859-1, latin1
--subtitles-language language set subtitles language (de, en_GB, etc)
--subtitles-category category set subtitles category (default "subtitles")
--subtitles-ignore-non-utf8 ignores any non UTF-8 sequence in UTF-8 text
--nosubtitles disables subtitles from input

Metadata options:
--artist Name of artist (director)
--title Title
--date Date
--location Location
--organization Name of organization (studio)
--copyright Copyright
--license License
--contact Contact link
--nometadata disables metadata from input
--no-oshash do not include oshash of source file(SOURCE_OSHASH)

Other options:
-P, --pid fname write the process' id to a file
-h, --help this message
--info output json info about input file, use -o to save json to file

v2v presets:
preview Video: 320x240 if fps ~ 30, 384x288 otherwise
Quality 5
Audio: Max 2 channels - Quality 1

pro Video: 720x480 if fps ~ 30, 720x576 otherwise
Quality 7
Audio: Max 2 channels - Quality 3

videobin Video: 512x288 for 16:9 material, 448x336 for 4:3 material
Bitrate 600kbs
Audio: Max 2 channels - Quality 3

padma Video: 640x360 for 16:9 material, 640x480 for 4:3 material
Quality 5
Audio: Max 2 channels - Quality 3

padma-stream Video: 128x72 for 16:9 material, 128x96 for 4:3 material
Audio: mono quality -1





Examples:
ffmpeg2theora videoclip.avi (will write output to videoclip.ogv)

ffmpeg2theora videoclip.avi --subtitles subtitles.srt (same, with subtitles)

cat something.dv | ffmpeg2theora -f dv -o output.ogv -

Encode a series of images:
ffmpeg2theora frame%06d.png -o output.ogv

Encode a video and remove the audio:
ffmpeg2theora --noaudio file.avi -o output.ogv

Live streaming from V4L Device:
ffmpeg2theora /dev/video0 -f video4linux --inputfps 15 -x 160 -y 128 -o - \
| oggfwd icast2server 8000 password /theora.ogv

Live encoding from a DV camcorder (needs a fast machine):
dvgrab - | ffmpeg2theora -f dv -x 352 -y 288 -o output.ogv -

Live encoding and streaming to icecast server:
dvgrab --format raw - \
| ffmpeg2theora -f dv -x 160 -y 128 -o /dev/stdout - \
| oggfwd icast2server 8000 password /theora.ogv




Friday, September 18, 2009

nbtstat host not found - nbtstat problem

I encountered an issue when using nbtstat (netbios over tcp/ip) on a local network. On some computers, it seemed to work and others, it didn't. Unfortunately, google didn't help much so that's why I've decided to create this blog entry. I am using Windows XP. I was able to ping the machine and even remote desktop into it, but nbtstat didn't work.

This was the error message I was getting for nbtstat -a

Node IpAddress: [10.0.1.26] Scope Id: []
Host not found.


The address or remote name used in the nbtstat failed to return the host name or IP address.

Solution
I found the solution by doing a little tinkering.

1. Enable 'File and printer sharing' in the Firewall exceptions. This will open Port 139.
.


I still have the same problem with a Mac OS X machine I have. I'm not as experienced with Macs, so if anyone has any suggestions, let me know in the comments below.

If you found this entry helpful, please leave a comment below. Thanks





Wednesday, September 16, 2009

Context Menu item - Run with Mono

Here's a very simple registry file you can import that will add 'Run in Mono' to your Windows Explorer context menu. Just right click on an executable and select the item. It will open the application using the mono.exe virtual machine.

You must modify the change the filepath in the run-with-mono.reg to point to your mono location.
(Open the .reg file in notepad to make the changes.)

DOWNLOAD HERE (run-with-mono.reg)



Here's the finished result. I have not tested this extensively, so please report any problems here.