pub struct EncoderConfig {Show 29 fields
pub width: usize,
pub height: usize,
pub sample_aspect_ratio: Rational,
pub time_base: Rational,
pub bit_depth: usize,
pub chroma_sampling: ChromaSampling,
pub chroma_sample_position: ChromaSamplePosition,
pub pixel_range: PixelRange,
pub color_description: Option<ColorDescription>,
pub mastering_display: Option<MasteringDisplay>,
pub content_light: Option<ContentLight>,
pub level_idx: Option<u8>,
pub enable_timing_info: bool,
pub still_picture: bool,
pub error_resilient: bool,
pub switch_frame_interval: u64,
pub min_key_frame_interval: u64,
pub max_key_frame_interval: u64,
pub reservoir_frame_delay: Option<i32>,
pub low_latency: bool,
pub quantizer: usize,
pub min_quantizer: u8,
pub bitrate: i32,
pub tune: Tune,
pub film_grain_params: Option<Vec<GrainTableSegment>>,
pub tile_cols: usize,
pub tile_rows: usize,
pub tiles: usize,
pub speed_settings: SpeedSettings,
}
Expand description
Encoder settings which impact the produced bitstream.
Fields§
§width: usize
Width of the frames in pixels.
height: usize
Height of the frames in pixels.
sample_aspect_ratio: Rational
Sample aspect ratio (for anamorphic video).
time_base: Rational
Video time base.
bit_depth: usize
Bit depth.
chroma_sampling: ChromaSampling
Chroma subsampling.
chroma_sample_position: ChromaSamplePosition
Chroma sample position.
pixel_range: PixelRange
Pixel value range.
color_description: Option<ColorDescription>
Content color description (primaries, transfer characteristics, matrix).
mastering_display: Option<MasteringDisplay>
HDR mastering display parameters.
content_light: Option<ContentLight>
HDR content light parameters.
level_idx: Option<u8>
AV1 level index to target (0-31). If None, allow the encoder to decide. Currently, rav1e is unable to guarantee that the output bitstream meets the rate limitations of the specified level.
enable_timing_info: bool
Enable signaling timing info in the bitstream.
still_picture: bool
Still picture mode flag.
error_resilient: bool
Flag to force all frames to be error resilient.
switch_frame_interval: u64
Interval between switch frames (0 to disable)
min_key_frame_interval: u64
The minimum interval between two keyframes
max_key_frame_interval: u64
The maximum interval between two keyframes
reservoir_frame_delay: Option<i32>
The number of temporal units over which to distribute the reservoir usage.
low_latency: bool
Flag to enable low latency mode.
In this mode the frame reordering is disabled.
quantizer: usize
The base quantizer to use.
min_quantizer: u8
The minimum allowed base quantizer to use in bitrate mode.
bitrate: i32
The target bitrate for the bitrate mode.
tune: Tune
Metric to tune the quality for.
film_grain_params: Option<Vec<GrainTableSegment>>
Parameters for grain synthesis.
tile_cols: usize
Number of tiles horizontally. Must be a power of two.
Overridden by tiles
, if present.
tile_rows: usize
Number of tiles vertically. Must be a power of two.
Overridden by tiles
, if present.
tiles: usize
Total number of tiles desired.
Encoder will try to optimally split to reach this number of tiles,
rounded up. Overrides tile_cols
and tile_rows
.
speed_settings: SpeedSettings
Settings which affect the encoding speed vs. quality trade-off.
Implementations§
Source§impl EncoderConfig
impl EncoderConfig
Sourcepub fn with_speed_preset(speed: u8) -> EncoderConfig
pub fn with_speed_preset(speed: u8) -> EncoderConfig
This is a preset which provides default settings according to a speed
value in the specific range 0–10. Each speed value corresponds to a
different preset. See from_preset()
. If the input value is greater
than 10, it will result in the same settings as 10.
Sourcepub fn set_key_frame_interval(&mut self, min_interval: u64, max_interval: u64)
pub fn set_key_frame_interval(&mut self, min_interval: u64, max_interval: u64)
Sets the minimum and maximum keyframe interval, handling special cases as needed.
Sourcepub fn frame_rate(&self) -> f64
pub fn frame_rate(&self) -> f64
Returns the video frame rate computed from time_base
.
Sourcepub fn render_size(&self) -> (usize, usize)
pub fn render_size(&self) -> (usize, usize)
Computes the render width and height of the stream based
on width
, height
, and sample_aspect_ratio
.
Sourcepub const fn temporal_rdo(&self) -> bool
pub const fn temporal_rdo(&self) -> bool
Is temporal RDO enabled ?
Trait Implementations§
Source§impl Clone for EncoderConfig
impl Clone for EncoderConfig
Source§fn clone(&self) -> EncoderConfig
fn clone(&self) -> EncoderConfig
1.0.0 · Source§const fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for EncoderConfig
impl Debug for EncoderConfig
Source§impl Default for EncoderConfig
Default preset for EncoderConfig
: it is a balance between quality and
speed. See with_speed_preset()
.
impl Default for EncoderConfig
Default preset for EncoderConfig
: it is a balance between quality and
speed. See with_speed_preset()
.
Source§fn default() -> EncoderConfig
fn default() -> EncoderConfig
Auto Trait Implementations§
impl Freeze for EncoderConfig
impl RefUnwindSafe for EncoderConfig
impl Send for EncoderConfig
impl Sync for EncoderConfig
impl Unpin for EncoderConfig
impl UnwindSafe for EncoderConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian()
.