## vp8enc vp8enc — Encode VP8 video streams |

## Synopsis

    struct              GstVP8Enc;

## Object Hierarchy

      GObject
       +----GstObject
             +----GstElement
                   +----GstBaseVideoCodec
                         +----GstBaseVideoEncoder
                               +----GstVP8Enc

## Implemented Interfaces

GstVP8Enc implements GstTagSetter and GstPreset.

## Properties

      "bitrate"                  gint                  : Read / Write
      "error-resilient"          gboolean              : Read / Write
      "max-keyframe-distance"    gint                  : Read / Write
      "max-latency"              gint                  : Read / Write
      "mode"                     GstVP8EncMode         : Read / Write
      "quality"                  gdouble               : Read / Write
      "speed"                    gint                  : Read / Write
      "threads"                  gint                  : Read / Write
      "multipass-cache-file"     gchar*                : Read / Write
      "multipass-mode"           GstVP8EncMultipassMode  : Read / Write
      "auto-alt-ref-frames"      gboolean              : Read / Write

## Description

This element encodes raw video into a VP8 stream. VP8 is a royalty-free video codec maintained by Google . It's the successor of On2 VP3, which was the base of the Theora video codec.

To control the quality of the encoding, the "bitrate" and "quality" properties can be used. These two properties are mutualy exclusive. Setting the bitrate property will produce a constant bitrate (CBR) stream while setting the quality property will produce a variable bitrate (VBR) stream.

### Example pipeline

    1
    gst-launch -v videotestsrc num-buffers=1000 ! vp8enc ! webmmux ! filesink location=videotestsrc.webm

This example pipeline will encode a test video source to VP8 muxed in an WebM container.

## Synopsis

### Element Information

plugin | vp8
author | David Schleef <ds@entropywave.com>
class | Codec/Encoder/Video

### Element Pads

name | sink
direction | sink
presence | always
details | video/x-raw-yuv, format=(fourcc)I420, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

name | src
direction | source
presence | always
details | video/x-vp8

## Details

### struct GstVP8Enc

    struct GstVP8Enc;

## Property Details

### The `"bitrate"` property

      "bitrate"                  gint                  : Read / Write

Bit rate (in bits/sec).

Allowed values: [0,1000000000]

Default value: 0

### The `"error-resilient"` property

      "error-resilient"          gboolean              : Read / Write

Encode streams that are error resilient.

Default value: FALSE

### The `"max-keyframe-distance"` property

      "max-keyframe-distance"    gint                  : Read / Write

Maximum distance between key frames.

Allowed values: [0,9999]

Default value: 60

### The `"max-latency"` property

      "max-latency"              gint                  : Read / Write

Number of frames in encoder queue.

Allowed values: [0,25]

Default value: 10

### The `"mode"` property

      "mode"                     GstVP8EncMode         : Read / Write

Mode.

Default value: Variable Bit Rate (VBR) mode

### The `"quality"` property

      "quality"                  gdouble               : Read / Write

Quality.

Allowed values: [0,10]

Default value: 5

### The `"speed"` property

      "speed"                    gint                  : Read / Write

Speed.

Allowed values: [0,2]

Default value: 0

### The `"threads"` property

      "threads"                  gint                  : Read / Write

Threads.

Allowed values: [1,64]

Default value: 1

### The `"multipass-cache-file"` property

      "multipass-cache-file"     gchar*                : Read / Write

Multipass cache file.

Default value: NULL

### The `"multipass-mode"` property

      "multipass-mode"           GstVP8EncMultipassMode  : Read / Write

Multipass encode mode.

Default value: One pass encoding (default)

### The `"auto-alt-ref-frames"` property

      "auto-alt-ref-frames"      gboolean              : Read / Write

Automatically create alternative reference frames.

Default value: FALSE

## See Also

vp8dec, webmmux, oggmux