OpenCV 4.11.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') 是 motion-jpeg 编解码器等等。代码列表可以在MSDN页面或fourcc网站的此页面(更完整的列表)上获得。使用 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属性的值。
返回值
如果 VideoWriter 实例使用的后端支持此属性,则返回 true

◆ 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
受保护的

◆ writer

Ptr<CvVideoWriter> cv::VideoWriter::writer
受保护的

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