Membrane Framerate Converter Plugin
Plugin providing element for converting frame rate of raw video stream.
It is part of Membrane Multimedia Framework.
Installation
The package can be installed by adding membrane_framerate_converter_plugin
to your list of dependencies in mix.exs
:
def deps do
[
{:membrane_framerate_converter_plugin, "~> 0.8.0"}
]
end
Description
Element converts video to target constant frame rate, by dropping and duplicating frames as necessary (input video may have constant or variable frame rate).
Usage
Example converting h264 video from 10 to 2 fps.
defmodule Pipeline do
use Membrane.Pipeline
alias Membrane.H264.FFmpeg.{Decoder, Encoder}
alias Membrane.H264.Parser
alias Membrane.File.{Sink, Source}
@impl true
def handle_init(_ctx, filename) do
structure =
child(file: %Source{chunk_size: 40_960, location: filename})
|> child(parser: %Parser{generate_best_effort_timestamps: %{framerate: {10, 1}}})
|> child(decoder: Decoder)
|> child(converter: %Membrane.FramerateConverter{framerate: {2, 1}})
|> child(encoder: Encoder)
|> child(sink: %Sink{location: "output.h264"})
{[spec: structure], %{}}
end
end
Copyright and License
Copyright 2020, Software Mansion
Licensed under the Apache License, Version 2.0