Struct opencv::videoio::VideoWriter
source · pub struct VideoWriter { /* private fields */ }
Expand description
Video writer class.
The class provides C++ API for writing video files or image sequences.
Implementations§
source§impl VideoWriter
impl VideoWriter
sourcepub fn default() -> Result<VideoWriter>
pub fn default() -> Result<VideoWriter>
Default constructors
The constructors/functions initialize video writers.
- On Linux FFMPEG is used to write videos;
- On Windows FFMPEG or MSWF or DSHOW is used;
- On MacOSX AVFoundation is used.
sourcepub fn new(
filename: &str,
fourcc: i32,
fps: f64,
frame_size: Size,
is_color: bool
) -> Result<VideoWriter>
pub fn new( filename: &str, fourcc: i32, fps: f64, frame_size: Size, is_color: bool ) -> Result<VideoWriter>
Default constructors
The constructors/functions initialize video writers.
- On Linux FFMPEG is used to write videos;
- On Windows FFMPEG or MSWF or DSHOW is used;
- On MacOSX AVFoundation is used.
Overloaded parameters
Parameters
-
filename: Name of the output video file.
-
fourcc: 4-character code of codec used to compress the frames. For example, VideoWriter::fourcc(‘P’,‘I’,‘M’,‘1’) is a MPEG-1 codec, VideoWriter::fourcc(‘M’,‘J’,‘P’,‘G’) is a motion-jpeg codec etc. List of codes can be obtained at MSDN page or with this archived page of the fourcc site for a more complete list). FFMPEG backend with MP4 container natively uses other values as fourcc code: see ObjectType, so you may receive a warning message from OpenCV about fourcc code conversion.
-
fps: Framerate of the created video stream.
-
frameSize: Size of the video frames.
-
isColor: If it is not zero, the encoder will expect and encode color frames, otherwise it will work with grayscale frames.
@b Tips:
- With some backends
fourcc=-1
pops up the codec selection dialog from the system. - To save image sequence use a proper filename (eg.
img_%02d.jpg
) andfourcc=0
ORfps=0
. Use uncompressed image format (eg.img_%02d.BMP
) to save raw frames. - Most codecs are lossy. If you want lossless video file you need to use a lossless codecs (eg. FFMPEG FFV1, Huffman HFYU, Lagarith LAGS, etc…)
- If FFMPEG is enabled, using
codec=0; fps=0;
you can create an uncompressed (raw) video file.
- With some backends
C++ default parameters
- is_color: true
sourcepub fn new_def(
filename: &str,
fourcc: i32,
fps: f64,
frame_size: Size
) -> Result<VideoWriter>
pub fn new_def( filename: &str, fourcc: i32, fps: f64, frame_size: Size ) -> Result<VideoWriter>
@overload
Parameters
- filename: Name of the output video file.
- fourcc: 4-character code of codec used to compress the frames. For example, VideoWriter::fourcc(‘P’,‘I’,‘M’,‘1’) is a MPEG-1 codec, VideoWriter::fourcc(‘M’,‘J’,‘P’,‘G’) is a motion-jpeg codec etc. List of codes can be obtained at MSDN page or with this archived page of the fourcc site for a more complete list). FFMPEG backend with MP4 container natively uses other values as fourcc code: see ObjectType, so you may receive a warning message from OpenCV about fourcc code conversion.
- fps: Framerate of the created video stream.
- frameSize: Size of the video frames.
- isColor: If it is not zero, the encoder will expect and encode color frames, otherwise it will work with grayscale frames.
@b Tips:
- With some backends
fourcc=-1
pops up the codec selection dialog from the system. - To save image sequence use a proper filename (eg.
img_%02d.jpg
) andfourcc=0
ORfps=0
. Use uncompressed image format (eg.img_%02d.BMP
) to save raw frames. - Most codecs are lossy. If you want lossless video file you need to use a lossless codecs (eg. FFMPEG FFV1, Huffman HFYU, Lagarith LAGS, etc…)
- If FFMPEG is enabled, using
codec=0; fps=0;
you can create an uncompressed (raw) video file.
Note
This alternative version of [new] function uses the following default values for its arguments:
- is_color: true
sourcepub fn new_with_backend(
filename: &str,
api_preference: i32,
fourcc: i32,
fps: f64,
frame_size: Size,
is_color: bool
) -> Result<VideoWriter>
pub fn new_with_backend( filename: &str, api_preference: i32, fourcc: i32, fps: f64, frame_size: Size, is_color: bool ) -> Result<VideoWriter>
Default constructors
The constructors/functions initialize video writers.
- On Linux FFMPEG is used to write videos;
- On Windows FFMPEG or MSWF or DSHOW is used;
- On MacOSX AVFoundation is used.
Overloaded parameters
The apiPreference
parameter allows to specify API backends to use. Can be used to enforce a specific reader implementation
if multiple are available: e.g. cv::CAP_FFMPEG or cv::CAP_GSTREAMER.
C++ default parameters
- is_color: true
sourcepub fn new_with_backend_def(
filename: &str,
api_preference: i32,
fourcc: i32,
fps: f64,
frame_size: Size
) -> Result<VideoWriter>
pub fn new_with_backend_def( filename: &str, api_preference: i32, fourcc: i32, fps: f64, frame_size: Size ) -> Result<VideoWriter>
@overload
The apiPreference
parameter allows to specify API backends to use. Can be used to enforce a specific reader implementation
if multiple are available: e.g. cv::CAP_FFMPEG or cv::CAP_GSTREAMER.
Note
This alternative version of [new_with_backend] function uses the following default values for its arguments:
- is_color: true
sourcepub fn new_1(
filename: &str,
fourcc: i32,
fps: f64,
frame_size: Size,
params: &Vector<i32>
) -> Result<VideoWriter>
pub fn new_1( filename: &str, fourcc: i32, fps: f64, frame_size: Size, params: &Vector<i32> ) -> Result<VideoWriter>
Default constructors
The constructors/functions initialize video writers.
- On Linux FFMPEG is used to write videos;
- On Windows FFMPEG or MSWF or DSHOW is used;
- On MacOSX AVFoundation is used.
Overloaded parameters
* The `params` parameter allows to specify extra encoder parameters encoded as pairs (paramId_1, paramValue_1, paramId_2, paramValue_2, ... .)
* see cv::VideoWriterProperties
sourcepub fn new_2(
filename: &str,
api_preference: i32,
fourcc: i32,
fps: f64,
frame_size: Size,
params: &Vector<i32>
) -> Result<VideoWriter>
pub fn new_2( filename: &str, api_preference: i32, fourcc: i32, fps: f64, frame_size: Size, params: &Vector<i32> ) -> Result<VideoWriter>
Default constructors
The constructors/functions initialize video writers.
- On Linux FFMPEG is used to write videos;
- On Windows FFMPEG or MSWF or DSHOW is used;
- On MacOSX AVFoundation is used.