View Source Membrane FFmpeg Generator
This repository contains FFmpeg video and audio generator for tests, benchmarks and demos.
It is part of Membrane Multimedia Framework.
installation
Installation
The package can be installed by adding membrane_ffmpeg_generator
to your list of dependencies in mix.exs
:
def deps do
[
{:membrane_ffmpeg_generator, "~> 0.1.0"}
]
end
usage
Usage
Simple generation of video without audio:
alias Membrane.FFmpegGenerator.VideoGenerator
alias Membrane.RawVideo
video_format = %RawVideo{
width: 1920,
height: 1080,
framerate: {30, 1},
pixel_format: :I420,
aligned: true
}
duration = 10
file_format = :h264
{:ok, _output_path} = VideoGenerator.generate_video_without_audio(video_format, duration, file_format)
More advanced video generation with audio and custom options:
alias Membrane.FFmpegGenerator.VideoGenerator
alias Membrane.FFmpegGenerator.Types.Audio
alias Membrane.RawVideo
video_format = %RawVideo{
width: 3830,
height: 2160,
framerate: {60, 1},
pixel_format: :RGB,
aligned: true
}
duration = 15
file_format = :mp4
audio_format = %Audio{
frequency: 500,
sample_rate: 48_000,
beep_factor: 15
}
file_name = "awesome_video.mp4"
options = [
audio_format: audio_format,
output_path: file_name,
]
{:ok, _output_path} = VideoGenerator.generate_video_with_audio(video_format, duration, file_format, options)
Audio generation:
alias Membrane.FFmpegGenerator.AudioGenerator
alias Membrane.FFmpegGenerator.Types.Audio
audio_format = %Audio{
frequency: 440,
sample_rate: 44_100,
beep_factor: 0
}
duration = 20
file_format = :mp3
file_name = "epic_audio.mp3"
options = [
output_path: file_name,
]
{:ok, _output_path} = AudioGenerator.generate_audio(audio_format, duration, file_format, options)
copyright-and-license
Copyright and License
Copyright 2023, Software Mansion
Licensed under the Apache License, Version 2.0