OpenShot Library | libopenshot
0.2.5
|
Go to the documentation of this file.
35 #ifdef USE_IMAGEMAGICK
37 #include "../include/ImageWriter.h"
42 path(path), cache_size(8), is_writing(false), write_video_count(0), image_quality(75), number_of_loops(1),
43 combine_frames(true), is_open(false)
52 int quality,
int loops,
bool combine)
59 image_quality = quality;
60 number_of_loops = loops;
61 combine_frames = combine;
85 ZmqLogger::Instance()->
AppendDebugMethod(
"ImageWriter::SetVideoOptions (" + format +
")",
"width", width,
"height", height,
"size.num", size.
num,
"size.den", size.
den,
"fps.num", fps.
num,
"fps.den", fps.
den);
99 throw WriterClosed(
"The ImageWriter is closed. Call Open() before calling this method.", path);
103 std::shared_ptr<Magick::Image> frame_image = frame->
GetMagickImage();
105 frame_image->backgroundColor(Magick::Color(
"none"));
107 frame_image->quality(image_quality);
109 frame_image->animationIterations(number_of_loops);
116 Magick::Geometry new_size(new_width, new_height);
117 new_size.aspect(
true);
118 frame_image->resize(new_size);
122 frames.push_back(*frame_image.get());
134 for (int64_t number = start; number <= length; number++)
137 std::shared_ptr<Frame> f = reader->
GetFrame(number);
148 Magick::writeImages(frames.begin(), frames.end(), path, combine_frames);
154 write_video_count = 0;
162 #endif //USE_IMAGEMAGICK
float ToFloat()
Return this fraction as a float (i.e. 1/2 = 0.5)
int video_bit_rate
The bit rate of the video stream (in bytes)
openshot::Fraction display_ratio
The ratio of width to height of the video stream (i.e. 640x480 has a ratio of 4/3)
Exception when a writer is closed, and a frame is requested.
virtual std::shared_ptr< openshot::Frame > GetFrame(int64_t number)=0
openshot::Fraction fps
Frames per second, as a fraction (i.e. 24/1 = 24 fps)
This namespace is the default namespace for all code in the openshot library.
This class represents a fraction.
Fraction Reciprocal()
Return the reciprocal as a Fraction.
openshot::Fraction GetPixelRatio()
Set Pixel Aspect Ratio.
void WriteFrame(std::shared_ptr< Frame > frame)
Add a frame to the stack waiting to be encoded.
std::shared_ptr< Magick::Image > GetMagickImage()
Get pointer to ImageMagick image object.
int width
The width of the video (in pixels)
openshot::Fraction video_timebase
The video timebase determines how long each frame stays on the screen.
openshot::Fraction pixel_ratio
The pixel ratio of the video stream as a fraction (i.e. some pixels are not square)
int num
Numerator for the fraction.
int den
Denominator for the fraction.
void Reduce()
Reduce this fraction (i.e. 640/480 = 4/3)
static ZmqLogger * Instance()
Create or get an instance of this logger singleton (invoke the class with this method)
#define MAGICK_IMAGE_ALPHA(im, a)
void AppendDebugMethod(std::string method_name, std::string arg1_name="", float arg1_value=-1.0, std::string arg2_name="", float arg2_value=-1.0, std::string arg3_name="", float arg3_value=-1.0, std::string arg4_name="", float arg4_value=-1.0, std::string arg5_name="", float arg5_value=-1.0, std::string arg6_name="", float arg6_value=-1.0)
Append debug information.
bool has_video
Determines if this file has a video stream.
void Close()
Close the writer and encode/output final image to the disk. This is a requirement of ImageMagick,...
bool has_audio
Determines if this file has an audio stream.
int height
The height of the video (in pixels)
void SetVideoOptions(std::string format, Fraction fps, int width, int height, int quality, int loops, bool combine)
Set the video export options.
This abstract class is the base class, used by all readers in libopenshot.
double ToDouble()
Return this fraction as a double (i.e. 1/2 = 0.5)
std::string vcodec
The name of the video codec used to encode / decode the video stream.
WriterInfo info
Information about the current media file.
ImageWriter(std::string path)
Constructor for ImageWriter. Throws one of the following exceptions.