View Source Membrane.H265.FFmpeg.Encoder (Membrane H265 FFmpeg plugin v0.1.0)
Membrane element that encodes raw video frames to H265 format.
The element expects each frame to be received in a separate buffer, so the parser
(Membrane.Element.RawVideo.Parser) may be required in a pipeline before
the encoder (e.g. when input is read from Membrane.File.Source).
Additionally, the encoder has to receive proper stream_format with picture format and dimensions before any encoding takes place.
Please check t/0 for available options.
element-options
Element options
Passed via struct Membrane.H265.FFmpeg.Encoder.t/0
crf0..51Default value:
28
Constant rate factor that affects the quality of output stream. Value of 0 is lossless compression while 51 offers the worst quality. The range is exponential, so increasing the CRF value +6 results in roughly half the bitrate / file size, while -6 leads to roughly twice the bitrate.presetpreset()Default value:
:medium
Collection of predefined options providing certain encoding. The slower the preset chosen, the higher compression for the same quality can be achieved.profileH265.profile_t() | nilDefault value:
nil
Sets a limit on the features that the encoder will use to the ones supported in a provided H265 profile. Said features will have to be supported by the decoder in order to decode the resulting video. It may override other, more specific options affecting compression.tunetune() | nilDefault value:
nil
Optionally tune the encoder settings for a particular type of source or situation. Seex265encoder's man page for more info. Available options are::grain- preserves the grain structure in old, grainy film material:fastdecode- allows faster decoding by disabling certain filters:zerolatency- good for fast encoding and low-latency streaming
use_shm?boolean()Default value:
falsemax_b_framesnon_neg_integer() | nilDefault value:
nil
Maximum number of B-frames between non-B-frames. Set to 0 to encode video without b-framesgop_sizenon_neg_integer() | nilDefault value:
nil
Number of frames in a group of pictures.
pads
Pads
input
:input
Accepted formats:
%RawVideo{pixel_format: format, aligned: true} when format in [:I420, :I422]| Direction: | :input |
| Availability: | :always |
| Mode: | :pull |
| Demand mode: | :auto |
| Demand unit: | :buffers |
output
:output
Accepted formats:
%H265{alignment: :au}| Direction: | :output |
| Availability: | :always |
| Mode: | :pull |
| Demand mode: | :auto |
Link to this section Summary
Link to this section Types
Specs
preset() :: :ultrafast | :superfast | :veryfast | :faster | :fast | :medium | :slow | :slower | :veryslow | :placebo
Specs
t() :: %Membrane.H265.FFmpeg.Encoder{
crf: 0..51,
gop_size: non_neg_integer() | nil,
max_b_frames: non_neg_integer() | nil,
preset: preset(),
profile: Membrane.H265.profile_t() | nil,
tune: tune() | nil,
use_shm?: boolean()
}
Struct containing options for Membrane.H265.FFmpeg.Encoder
Specs
tune() :: :grain | :fastdecode | :zerolatency
Link to this section Functions
Specs
options() :: keyword()
Returns description of options available for this module