The Omega Update(TM) Part 3 (Rendering)
This commit is contained in:
32
src/ffmpeg.h
Normal file
32
src/ffmpeg.h
Normal file
@@ -0,0 +1,32 @@
|
||||
#pragma once
|
||||
|
||||
#include "render.h"
|
||||
#include "texture.h"
|
||||
|
||||
#define FFMPEG_POPEN_ERROR "popen() (for FFmpeg) failed!\n{}"
|
||||
|
||||
static constexpr const char* FFMPEG_GIF_FORMAT =
|
||||
"\"{0}\" -y "
|
||||
"-f rawvideo -pix_fmt rgba -s {1}x{2} -r {3} -i pipe:0 "
|
||||
"-lavfi \"split[s0][s1];"
|
||||
"[s0]palettegen=stats_mode=full[p];"
|
||||
"[s1][p]paletteuse=dither=floyd_steinberg\" "
|
||||
"-loop 0 \"{4}\"";
|
||||
|
||||
static constexpr const char* FFMPEG_WEBM_FORMAT =
|
||||
"\"{0}\" -y "
|
||||
"-f rawvideo -pix_fmt rgba -s {1}x{2} -r {3} -i pipe:0 "
|
||||
"-c:v libvpx-vp9 -crf 30 -b:v 0 -pix_fmt yuva420p -row-mt 1 -threads 0 -speed 2 "
|
||||
"-auto-alt-ref 0 -an \"{4}\"";
|
||||
|
||||
|
||||
bool
|
||||
ffmpeg_render
|
||||
(
|
||||
const std::string& ffmpegPath,
|
||||
const std::string& outputPath,
|
||||
const std::vector<Texture>& frames,
|
||||
ivec2 size,
|
||||
s32 fps,
|
||||
enum RenderType type
|
||||
);
|
Reference in New Issue
Block a user