View Source Membrane Framerate Converter Plugin

Hex.pm API Docs CircleCI

Plugin providing element for converting frame rate of raw video stream.

It is part of Membrane Multimedia Framework.

installation

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

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

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 2020, Software Mansion

Software Mansion

Licensed under the Apache License, Version 2.0