视频写入类。更多...
#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') 是 motion-jpeg 编解码器等等。代码列表可以在MSDN页面或fourcc网站的此页面(更完整的列表)上获得。使用 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 |
◆ 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 |
|
受保护的 |
◆ writer
此类的文档是从以下文件生成的: