VP8 and VP9 are open and royalty free video coding formats developed by Google. Nimble Streamer
feature set.
Live Transcoder allows performing both decoding and encoding.
The following methods are currently supported for decoding VP8/VP9 content for further transformation:
You can specify the decoding method in decoder block in any transcoding scenario just like you specify it for other codecs.
Currently the encoding is performed only via software encoder. To use it for VP8 and VP9, open encoder block in your transcoding scenario and select "libvpx" from dropdown menu
|
Setting encoder for VP9 and VP8. |
You will then be able to select
Codec and specify other parameters listed below.
libvpx VP8/VP9 encoder parameters
quality
Quality Deadline
- best - use the Best Qulity Deadline;
- good - use the Good Qulity Deadline;
- rt(default) -use the Real Time Qulity Deadline;
threads
Number of threads that will be allocated to the encode process
profile
Sets the encoder profile. Supported value: 1. Values 1-3 will be supported in the future versions of Transcoder.
lag_in_frames
Defines an upper limit on the number of frames into the future that the encoder can look. Values range: 0 to 25.
bitrate/b
Bitrate in kbps.
rc_mode
Rate control mode.
- vbr- variable bitrate mode
- cbr - constant bitrate mode
- cq - constrained quality mode
- q - constant quality mode
cq_level
Constrained Quality Level, in CQ mode the encoder will try to encode normal frames (all frames apart from key frames, golden frames and alternative reference frames) at a quantizer / quality level of cq_level. Values range: 0 to 63.
min_q
Minimum (Best Quality) Quantizer.
max_q
Maximum (Worst Quality) Quantizer.
buf_sz
Decoder Buffer Size indicates the amount of data that may be buffered by the decoding application. Note that this value is expressed in units of time (milliseconds). For example, a value of 5000 indicates that the client will buffer (at least) 5000ms worth of encoded data.
buf_initial_sz
Decoder Buffer Initial Size indicates the amount of data that will be buffered by the
decoding application prior to beginning playback. This value is expressed in units of time (milliseconds).
buf_optimal_sz
Decoder Buffer Optimal Size indicates the amount of data that the encoder should try to maintain in the decoder's buffer. This value is expressed in units of time (milliseconds).
undershoot_pct
Rate control adaptation undershoot control. This value, expressed as a percentage of the target bitrate, controls the maximum allowed adaptation speed of the codec. This factor controls the maximum amount of bits that can be subtracted from the target bitrate in order to compensate for prior overshoot.
Values range: 0 to 1000
overshoot_pct
Rate control adaptation overshoot control. This value, expressed as a percentage of the target bitrate, controls the maximum allowed adaptation speed of the codec.
This factor controls the maximum amount of bits that can be added to the target bitrate in order to compensate for prior undershoot. Values range: 0 to 1000.
kf_mode
Keyframe placement mode. This value indicates whether the encoder should place keyframes at a fixed interval, or determine the optimal placement automatically.
Values: auto/disabled
kf_min_dist
Keyframe minimum interval. This value, expressed as a number of frames, prevents the encoder from placing a keyframe nearer than kf_min_dist to the previous keyframe.
At least kf_min_dist frames non-keyframes will be coded before the next keyframe. Set kf_min_dist equal to kf_max_dist for a fixed interval.
kf_max_dist
Keyframe maximum interval. This value, expressed as a number of frames, forces the encoder to code a keyframe if one has not been coded in the last kf_max_dist frames.
A value of 0 implies all frames will be keyframes. Set kf_min_dist equal to kf_max_dist for a fixed interval.
drop_frame
The drop frame parameter specifies a buffer fullness threshold at which the encoder starts to drop frames as a percentage of the optimal value specified by buf_optimal_sz. If it is set to 0 then dropping of frames is disabled.
Values range: 0 to 100.
resize_allowed
Enable/disable spatial resampling, if supported by the codec.
resize_up, resize_down
The resize up and down parameters are high and low buffer fullness "watermark" levels at which we start to consider changing down to a smaller internal image size, if the buffer is being run down, or back up to a larger size if the buffer is filling up again. The numbers represent a percentage of buf_optimal_sz.
Values range: 0 to 100
error_resilient
Enable error resilient modes indicates to the encoder which features it should enable to take measures for streaming over lossy or noisy links.
- 0 - disabled
- 1 - Improve resiliency against losses of whole frames
- 2 - The frame partitions are independently decodable by the bool decoder, meaning that partitions can be decoded even though earlier partitions have been lost. Note that intra prediction is still done over the partition boundary.
- 3 - Both features
auto_alt_ref
Codec control function to enable automatic set and use alf frames.
sharpness
Codec control function to set sharpness.
static_tresh
Codec control function to set the threshold for MBs treated static.
arnr_max_frames
Codec control function to set the max no of frames to create arf.
arnr_strength
Codec control function to set the filter strength for the arf.
tune
Optimize output for PSNR or SSIM quality measurement.
Values: psnr/ssim(default)
max_intra_bitrate_pct
Codec control function to set Max data rate for Intra frames.
cq_level
Constrained Quality Level, in CQ mode the encoder will try to encode normal frames (all frames apart from key frames, golden frames and alternative reference frames) at a quantizer / quality level of cq_level. Values range: 0 to 63.
libvpx VP8-specific parameters
speed
Codec control function to set encoder internal speed settings.
Values range: -16 to 16
token_parts
Codec control function to set the number of token partitions.
screen_content_mode
Codec control function to set encoder screen content mode.
- 0 - off;
- 1 - On;
- 2 - On with more aggressive rate control;
noise_sensitivity
control function to set noise sensitivity
- 0 - off;
- 1 - OnYOnly;
- 2 - OnYUV;
- 3 - OnYUVAggressive;
- 4 - Adaptive;
gf_cbr_boost
Boost percentage for Golden Frame in CBR mode.
libvpx VP9-specific parameters
speed
Codec control function to set encoder internal speed settings.
Values range: -8 to 8
max_inter_bitrate_pct
Codec control function to set max data rate for Inter frames.
gf_cbr_boost
Boost percentage for Golden Frame in CBR mode.
lossless
Lossless encoding mode.
- 0 - lossy coding mode ;
- 1 - lossless coding mode;
tile_cols
Number of tile columns
- 0 - 1 tile column ;
- 1 - 2 tile columns;
- 2 - 4 tile columns;
- n - 2**n tile columns;
tile_rows
Number of tile rows
- 0 - 1 tile row ;
- 1 - 2 tile rows;
- 2 - 4 tile rows;
aq_mode
Adaptive quantization mode.
frame_boost
Periodic Q boost.
noise_sensitivity
Noise sensitivity.
tune_content
Content type
- default - Regular video content (Default);
- screen - Screen capture content;
min_gf_interval
Minimum interval between GF/ARF frames
max_gf_interval
Maximum interval between GF/ARF frames
level
Target level
- 255: off (default);
- 0: only keep level stats;
- 10: target for level 1.0;
- 11: target for level 1.1;
- ...
- 62: target for level 6.2
row_mt
Row level multi-threading
alt_ref_aq
Special mode for altref adaptive quantization
Live Transcoder has easy to use Web UI which provides drag-n-drop workflow editor to apply transcoding scenarios across various servers in a few clicks.
With FFmpeg filters you can transform content in various ways, e.g. change the video resize, make graphic overlays, picture-in-picture, key frames alignments, audio re-sampling etc.