OpenCV 4.10.0
开源计算机视觉
正在加载...
正在搜索...
无匹配项
公共成员函数 | 静态公共成员函数 | 静态保护成员函数 | 保护属性 | 所有成员列表
cv::VideoWriter 类参考

视频写入器类。 更多...

#include <opencv2/videoio.hpp>

cv::VideoWriter 的协作图

公共成员函数

 VideoWriter ()
 默认构造函数。
 
 VideoWriter (const String &filename, int apiPreference, int fourcc, double fps, const Size &frameSize, const std::vector< int > &params)
 
 VideoWriter (const String &filename, int apiPreference, int fourcc, double fps, Size frameSize, bool isColor=true)
 
 VideoWriter (const String &filename, int fourcc, double fps, const Size &frameSize, const std::vector< int > &params)
 
 VideoWriter (const String &filename, int fourcc, double fps, Size frameSize, bool isColor=true)
 
virtual ~VideoWriter ()
 默认析构函数。
 
virtual double get (int propId) const
 返回指定的 VideoWriter 属性。
 
String getBackendName () const
 返回使用的后端 API 名称。
 
virtual bool isOpened () const
 如果视频写入器已成功初始化,则返回 true。
 
bool open (const String &filename, int apiPreference, int fourcc, double fps, const Size &frameSize, const std::vector< int > &params)
 
bool open (const String &filename, int apiPreference, int fourcc, double fps, Size frameSize, bool isColor=true)
 
bool open (const String &filename, int fourcc, double fps, const Size &frameSize, const std::vector< int > &params)
 
virtual bool open (const String &filename, int fourcc, double fps, Size frameSize, bool isColor=true)
 初始化或重新初始化视频写入器。
 
virtual VideoWriteroperator<< (const Mat &image)
 流运算符,用于写入下一个视频帧。
 
virtual VideoWriteroperator<< (const UMat &image)
 
virtual void release ()
 关闭视频写入器。
 
virtual bool set (int propId, double value)
 设置 VideoWriter 中的属性。
 
virtual void write (InputArray image)
 写入下一个视频帧。
 

静态公共成员函数

static int fourcc (char c1, char c2, char c3, char c4)
 将 4 个字符连接成 fourcc 代码。
 

静态保护成员函数

static Ptr< IVideoWriter > create (const String &filename, int fourcc, double fps, Size frameSize, bool isColor=true)
 

保护属性

Ptr< IVideoWriter > iwriter
 
Ptr< CvVideoWriterwriter
 

详细描述

视频写入器类。

该类提供用于写入视频文件或图像序列的 C++ API。

示例
samples/cpp/tutorial_code/videoio/video-write/video-write.cppsamples/cpp/videowriter_basic.cppsamples/tapi/hog.cpp

构造函数和析构函数文档

◆ VideoWriter() [1/5]

cv::VideoWriter::VideoWriter ( )
Python
cv.VideoWriter() -> <VideoWriter 对象>
cv.VideoWriter(filename, fourcc, fps, frameSize[, isColor]) -> <VideoWriter 对象>
cv.VideoWriter(filename, apiPreference, fourcc, fps, frameSize[, isColor]) -> <VideoWriter 对象>
cv.VideoWriter(filename, fourcc, fps, frameSize, params) -> <VideoWriter 对象>
cv.VideoWriter(filename, apiPreference, fourcc, fps, frameSize, params) -> <VideoWriter 对象>

默认构造函数。

构造函数/函数初始化视频写入器。

  • 在 Linux 上,使用 FFMPEG 写入视频;
  • 在 Windows 上,使用 FFMPEG 或 MSWF 或 DSHOW;
  • 在 MacOSX 上,使用 AVFoundation。

◆ VideoWriter() [2/5]

cv::VideoWriter::VideoWriter ( const String filename,
int  fourcc,
double  fps,
Size  frameSize,
bool  isColor = true 
)
Python
cv.VideoWriter() -> <VideoWriter 对象>
cv.VideoWriter(filename, fourcc, fps, frameSize[, isColor]) -> <VideoWriter 对象>
cv.VideoWriter(filename, apiPreference, fourcc, fps, frameSize[, isColor]) -> <VideoWriter 对象>
cv.VideoWriter(filename, fourcc, fps, frameSize, params) -> <VideoWriter 对象>
cv.VideoWriter(filename, apiPreference, fourcc, fps, frameSize, params) -> <VideoWriter 对象>

这是一个重载的成员函数,提供用于方便起见。它与上面的函数的区别仅在于它接受的参数。

参数
filename输出视频文件的名称。
fourcc用于压缩帧的编解码器 4 个字符代码。例如,VideoWriter::fourcc('P','I','M','1') 是 MPEG-1 编解码器,VideoWriter::fourcc('M','J','P','G') 是运动 JPEG 编解码器等。可在 MSDN 页面或使用四cc 站点的 页面 获取代码列表,以获得更完整的列表)。使用 MP4 容器的 FFMPEG 后端在内部使用其他值作为 fourcc 代码:参见 ObjectType,因此您可能会收到来自 OpenCV 关于 fourcc 代码转换的警告消息。
fps创建的视频流的帧率。
frameSize视频帧的大小。
isColor如果它不为零,则编码器将期望并编码彩色帧,否则它将使用灰度帧。

提示

  • 对于某些后端,fourcc=-1 会从系统弹出编解码器选择对话框。
  • 要保存图像序列,请使用适当的文件名(例如 img_%02d.jpg)和 fourcc=0fps=0。使用未压缩的图像格式(例如 img_%02d.BMP)保存原始帧。
  • 大多数编解码器是有损的。如果需要无损视频文件,则需要使用无损编解码器(例如 FFMPEG FFV1、Huffman HFYU、Lagarith LAGS 等)
  • 如果启用了 FFMPEG,则使用 codec=0; fps=0;,可以创建未压缩(原始)视频文件。
  • 如果使用 FFMPEG,则允许帧具有奇数宽度或高度,但在这种情况下,我们将截断最右边一列/最下面一行。可能,这应该更优雅地处理,但 FFMPEG swscale 内部的一些内部函数需要偶数宽度/高度。

◆ VideoWriter() [3/5]

cv::VideoWriter::VideoWriter ( const String filename,
int  apiPreference,
int  fourcc,
double  fps,
Size  frameSize,
bool  isColor = true 
)
Python
cv.VideoWriter() -> <VideoWriter 对象>
cv.VideoWriter(filename, fourcc, fps, frameSize[, isColor]) -> <VideoWriter 对象>
cv.VideoWriter(filename, apiPreference, fourcc, fps, frameSize[, isColor]) -> <VideoWriter 对象>
cv.VideoWriter(filename, fourcc, fps, frameSize, params) -> <VideoWriter 对象>
cv.VideoWriter(filename, apiPreference, fourcc, fps, frameSize, params) -> <VideoWriter 对象>

这是一个重载的成员函数,提供用于方便起见。它与上面的函数的区别仅在于它接受的参数。apiPreference 参数允许指定要使用的 API 后端。可用于在可用多个阅读器实现时强制使用特定阅读器实现:例如 cv::CAP_FFMPEGcv::CAP_GSTREAMER

◆ VideoWriter() [4/5]

cv::VideoWriter::VideoWriter ( const String filename,
int  fourcc,
double  fps,
const Size frameSize,
const std::vector< int > &  params 
)
Python
cv.VideoWriter() -> <VideoWriter 对象>
cv.VideoWriter(filename, fourcc, fps, frameSize[, isColor]) -> <VideoWriter 对象>
cv.VideoWriter(filename, apiPreference, fourcc, fps, frameSize[, isColor]) -> <VideoWriter 对象>
cv.VideoWriter(filename, fourcc, fps, frameSize, params) -> <VideoWriter 对象>
cv.VideoWriter(filename, apiPreference, fourcc, fps, frameSize, params) -> <VideoWriter 对象>

这是一个重载的成员函数,提供用于方便起见。它与上面的函数的区别仅在于它接受的参数。params 参数允许指定作为对编码的额外编码器参数(paramId_1, paramValue_1, paramId_2, paramValue_2, ... ),参见 cv::VideoWriterProperties

◆ VideoWriter() [5/5]

cv::VideoWriter::VideoWriter ( const String filename,
int  apiPreference,
int  fourcc,
double  fps,
const Size frameSize,
const std::vector< int > &  params 
)
Python
cv.VideoWriter() -> <VideoWriter 对象>
cv.VideoWriter(filename, fourcc, fps, frameSize[, isColor]) -> <VideoWriter 对象>
cv.VideoWriter(filename, apiPreference, fourcc, fps, frameSize[, isColor]) -> <VideoWriter 对象>
cv.VideoWriter(filename, fourcc, fps, frameSize, params) -> <VideoWriter 对象>
cv.VideoWriter(filename, apiPreference, fourcc, fps, frameSize, params) -> <VideoWriter 对象>

这是一个重载的成员函数,提供用于方便起见。它与上面的函数的区别仅在于它接受的参数。

◆ ~VideoWriter()

virtual cv::VideoWriter::~VideoWriter ( )
virtual

默认析构函数。

该方法首先调用 VideoWriter::release 关闭已打开的文件。

成员函数文档

◆ create()

static Ptr< IVideoWriter > cv::VideoWriter::create ( const String filename,
int  fourcc,
double  fps,
Size  frameSize,
bool  isColor = true 
)
staticprotected

◆ fourcc()

static int cv::VideoWriter::fourcc ( char  c1,
char  c2,
char  c3,
char  c4 
)
static
Python
cv.VideoWriter.fourcc(c1, c2, c3, c4) -> retval
cv.VideoWriter_fourcc(c1, c2, c3, c4) -> retval

将 4 个字符连接成 fourcc 代码。

返回
一个fourcc代码

这个静态方法构建了要在构造函数 VideoWriter::VideoWriterVideoWriter::open 中使用的编解码器的fourcc代码。

◆ get()

virtual double cv::VideoWriter::get ( int  propId) const
virtual
Python
cv.VideoWriter.get(propId) -> retval

返回指定的 VideoWriter 属性。

参数
propId来自 cv::VideoWriterProperties 的属性标识符(例如 cv::VIDEOWRITER_PROP_QUALITY)或 视频 I/O API 后端的其他标志 之一
返回
指定属性的值。当查询 VideoWriter 实例使用的后端不支持的属性时,将返回 0。

◆ getBackendName()

String cv::VideoWriter::getBackendName ( ) const
Python
cv.VideoWriter.getBackendName() -> retval

返回使用的后端 API 名称。

注意
流应该已打开。

◆ isOpened()

virtual bool cv::VideoWriter::isOpened ( ) const
virtual
Python
cv.VideoWriter.isOpened() -> retval

如果视频写入器已成功初始化,则返回 true。

示例
samples/cpp/tutorial_code/videoio/video-write/video-write.cppsamples/cpp/videowriter_basic.cppsamples/tapi/hog.cpp

◆ open() [1/4]

bool cv::VideoWriter::open ( const String filename,
int  apiPreference,
int  fourcc,
double  fps,
const Size frameSize,
const std::vector< int > &  params 
)
Python
cv.VideoWriter.open(filename, fourcc, fps, frameSize[, isColor]) -> retval
cv.VideoWriter.open(filename, apiPreference, fourcc, fps, frameSize[, isColor]) -> retval
cv.VideoWriter.open(filename, fourcc, fps, frameSize, params) -> retval
cv.VideoWriter.open(filename, apiPreference, fourcc, fps, frameSize, params) -> retval

这是一个重载的成员函数,提供用于方便起见。它与上面的函数的区别仅在于它接受的参数。

◆ open() [2/4]

bool cv::VideoWriter::open ( const String filename,
int  apiPreference,
int  fourcc,
double  fps,
Size  frameSize,
bool  isColor = true 
)
Python
cv.VideoWriter.open(filename, fourcc, fps, frameSize[, isColor]) -> retval
cv.VideoWriter.open(filename, apiPreference, fourcc, fps, frameSize[, isColor]) -> retval
cv.VideoWriter.open(filename, fourcc, fps, frameSize, params) -> retval
cv.VideoWriter.open(filename, apiPreference, fourcc, fps, frameSize, params) -> retval

这是一个重载的成员函数,提供用于方便起见。它与上面的函数的区别仅在于它接受的参数。

◆ open() [3/4]

bool cv::VideoWriter::open ( const String filename,
int  fourcc,
double  fps,
const Size frameSize,
const std::vector< int > &  params 
)
Python
cv.VideoWriter.open(filename, fourcc, fps, frameSize[, isColor]) -> retval
cv.VideoWriter.open(filename, apiPreference, fourcc, fps, frameSize[, isColor]) -> retval
cv.VideoWriter.open(filename, fourcc, fps, frameSize, params) -> retval
cv.VideoWriter.open(filename, apiPreference, fourcc, fps, frameSize, params) -> retval

这是一个重载的成员函数,提供用于方便起见。它与上面的函数的区别仅在于它接受的参数。

◆ open() [4/4]

virtual bool cv::VideoWriter::open ( const String filename,
int  fourcc,
double  fps,
Size  frameSize,
bool  isColor = true 
)
virtual
Python
cv.VideoWriter.open(filename, fourcc, fps, frameSize[, isColor]) -> retval
cv.VideoWriter.open(filename, apiPreference, fourcc, fps, frameSize[, isColor]) -> retval
cv.VideoWriter.open(filename, fourcc, fps, frameSize, params) -> retval
cv.VideoWriter.open(filename, apiPreference, fourcc, fps, frameSize, params) -> retval

初始化或重新初始化视频写入器。

此方法打开视频写入器。参数与构造函数 VideoWriter::VideoWriter 中的参数相同。

返回
true 如果视频写入器已成功初始化。

该方法首先调用 VideoWriter::release 关闭已打开的文件。

示例
samples/cpp/tutorial_code/videoio/video-write/video-write.cppsamples/cpp/videowriter_basic.cppsamples/tapi/hog.cpp

◆ operator<<() [1/2]

virtual VideoWriter & cv::VideoWriter::operator<< ( const Mat image)
virtual

流运算符,用于写入下一个视频帧。

另请参阅
write

◆ operator<<() [2/2]

virtual VideoWriter & cv::VideoWriter::operator<< ( const UMat image)
virtual

这是一个重载的成员函数,提供用于方便起见。它与上面的函数的区别仅在于它接受的参数。

另请参阅
write

◆ release()

virtual void cv::VideoWriter::release ( )
virtual
Python
cv.VideoWriter.release() ->

关闭视频写入器。

此方法会由随后的 VideoWriter::openVideoWriter 析构函数自动调用。

◆ set()

virtual bool cv::VideoWriter::set ( int  propId,
double  value 
)
virtual
Python
cv.VideoWriter.set(propId, value) -> retval

设置 VideoWriter 中的属性。

参数
propId来自 cv::VideoWriterProperties 的属性标识符(例如 cv::VIDEOWRITER_PROP_QUALITY)或 视频 I/O API 后端的其他标志 之一
value属性的值。
返回
true 如果 VideoWriter 实例使用的后端支持该属性。

◆ write()

virtual void cv::VideoWriter::write ( InputArray  image)
virtual
Python
cv.VideoWriter.write(image) ->

写入下一个视频帧。

参数
image写入的帧。通常情况下,颜色图像应使用 BGR 格式。

该函数/方法将指定图像写入视频文件。它必须与打开视频写入器时指定的尺寸相同。

示例
samples/cpp/videowriter_basic.cpp.

成员数据文档

◆ iwriter

Ptr<IVideoWriter> cv::VideoWriter::iwriter
protected

◆ writer

Ptr<CvVideoWriter> cv::VideoWriter::writer
protected

此类的文档是从以下文件生成的