This repository contains FFmpeg video and audio generator for tests, benchmarks and demos.
It is part of Membrane Multimedia Framework.
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
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 2023, Software Mansion
Licensed under the Apache License, Version 2.0