视频写入器类。 更多...
#include <opencv2/videoio.hpp>
|
| | VideoWriter () |
| | 默认构造函数。
|
| |
| | VideoWriter (const String &filename, int apiPreference, int fourcc, double fps, const Size &frameSize, const std::vector< int > ¶ms) |
| |
| | 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 > ¶ms) |
| |
| | 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 > ¶ms) |
| |
| 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 > ¶ms) |
| |
| virtual bool | open (const String &filename, int fourcc, double fps, Size frameSize, bool isColor=true) |
| | 初始化或重新初始化视频写入器。
|
| |
| virtual VideoWriter & | operator<< (const Mat &image) |
| | 流运算符,用于写入下一个视频帧。
|
| |
| virtual VideoWriter & | operator<< (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 代码。
|
| |
◆ 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=0 或 fps=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 对象> |
◆ 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 |
◆ 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 |
◆ get()
| virtual double cv::VideoWriter::get |
( |
int |
propId | ) |
const |
|
virtual |
| Python |
|---|
| cv.VideoWriter.get( | propId | ) -> | retval |
◆ 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 |
◆ 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 |
◆ operator<<() [1/2]
| virtual VideoWriter & cv::VideoWriter::operator<< |
( |
const Mat & |
image | ) |
|
|
virtual |
流运算符,用于写入下一个视频帧。
- 另请参阅
- write
◆ operator<<() [2/2]
这是一个重载的成员函数,提供用于方便起见。它与上面的函数的区别仅在于它接受的参数。
- 另请参阅
- write
◆ release()
| virtual void cv::VideoWriter::release |
( |
| ) |
|
|
virtual |
| Python |
|---|
| cv.VideoWriter.release( | | ) -> | 无 |
◆ set()
| virtual bool cv::VideoWriter::set |
( |
int |
propId, |
|
|
double |
value |
|
) |
| |
|
virtual |
| Python |
|---|
| cv.VideoWriter.set( | propId, value | ) -> | retval |
◆ write()
| virtual void cv::VideoWriter::write |
( |
InputArray |
image | ) |
|
|
virtual |
| Python |
|---|
| cv.VideoWriter.write( | image | ) -> | 无 |
◆ iwriter
| Ptr<IVideoWriter> cv::VideoWriter::iwriter |
|
protected |
◆ writer
此类的文档是从以下文件生成的