HEY!
This post is outdated, if you want the latest builds [with working vorbis encoder], try this site.
Since the vorbis encoder supplied in my builds is quite broken, it’s highly recommended to re-encode with one of the builds off the above site.
Google released WebM/VP8 as open source earlier, but I haven’t had a chance to really encode anything yet, mostly due to the lack of a proper unified encoder.
But, following this guide, you can build ffmpeg with webm for windows rather easily. But for those without a linux distro to play with, you can simply download them here:
Download:
[OUT DATED! See top of post]
Removed links. Please stop using these versions. They have a broken vorbis encoder. Use the latest above.
Use:
ffmpeg -i [video file to encode] -b [bitrate]k -aq 60 -threads 4 output.webm
On a command line and wait. And wait. It’s slow. Very slow. You can speed it up a bit by using -level 300 if you want, though quality suffers a little bit. Two pass encoding is supported with -pass 1 followed by a second encode with -pass 2, as per usual.
Have fun!
Supported VP8/WebM Flags, all flags require a numeric value after them.
You can also use this nice spreadsheet.
-vb [target bitrate]
-level [Encoder speed/quality and cpu use[?]. 100 = best, 200 = average, 300 = ‘realtime’/fast]
-threads [number of threads to use for encoding, can't be 0 [auto] with VP8/this build]
-token_partitions [number of partitions to split the video into, useful for multi-core decoding]
-lag [number of frames to look ahead for when encoding]
-keyint_min [min distance between keyframes]
-g [max distance between keyframes]
-bt [bitrate tolerance in VBR/2pass mode]
-minrate [Minimal bitrate allowed in vbr/2pass mode]
-maxrate [Maxium bitrate allowed in vbr/2pass mode]
-qmin [min quantizer allowed]
-qmax [max quantizer allowed, set just this for fixed quantizer mode]
-bufsize ["ratecontrol buffer size (in bits)"]
-rc_init_occupancy ["number of bits which should be loaded into the rc buffer before decoding starts"]
-rc_opt_occupancy ["number of bits which should be kept in the rc buffer during decoding"]
-rc_buf_aggressivity ["currently useless", buffer use aggressiveness]
-spatial_rsmpl [spatial resampling]
-spatial_rsmpl_up ["Spatial resampling up watermark, percentage of target data buffer."]
-spatial_rsmpl_down ["Spatial resampling down watermark, percentage of target data buffer."]
-profile [Can't find much data on this, usually set to 0]
-nr [Noise reduction]
-sharpness [Has a value from 0 to 7, assuming it applies a sharpness filter after decoding]
-altref [Allow alternate reference frames, 1]
-ar_max_frames ["Max frames used in creating alt. ref. [0,25]“]
-ar_type ["Filter type used in creating alt. ref."]
-ar_strength ["Filter strength used in creating alt. ref. [0,6]“]
-skip_threshold [threshold to skip a frame instead of encoding it[?]]
-mb_static_threshold [static frame threshold[?]]
