OpenCV  4.10.0
开源计算机视觉
加载中...
搜索中...
没有匹配
| 枚举 | 函数
视频编码/解码

详细描述

结构体  cv::cudacodec::EncodeQp
 
类  cv::cudacodec::EncoderCallback
 编码器回调接口。 更多信息...
 
结构体  cv::cudacodec::EncoderParams
 CUDA视频编码器不同参数。 更多信息...
 
结构体  cv::cudacodec::FormatInfo
 提供有关视频文件格式信息的结构体。 : 更多信息...
 
类  cv::cudacodec::RawVideoSource
 视频解复用接口。 : 更多信息...
 
类  cv::cudacodec::VideoReader
 视频读取器接口,请参阅 createVideoReader()更多信息...
 
结构体  cv::cudacodec::VideoReaderInitParams
 VideoReader 初始化参数。 更多信息...
 
类  cv::cudacodec::VideoWriter
 视频写入器接口,请参阅 createVideoWriter()更多信息...
 

枚举

枚举  cv::cudacodec::ChromaFormat {
  cv::cudacodec::Monochrome = 0 ,
  cv::cudacodec::YUV420 ,
  cv::cudacodec::YUV422 ,
  cv::cudacodec::YUV444 ,
  cv::cudacodec::NumFormats
}
 cudacodec::VideoReader支持的色度格式。 更多信息...
 
枚举  cv::cudacodec::Codec {
  cv::cudacodec::MPEG1 = 0 ,
  cv::cudacodec::MPEG2 ,
  cv::cudacodec::MPEG4 ,
  cv::cudacodec::VC1 ,
  cv::cudacodec::H264 ,
  cv::cudacodec::JPEG ,
  cv::cudacodec::H264_SVC ,
  cv::cudacodec::H264_MVC ,
  cv::cudacodec::HEVC ,
  cv::cudacodec::VP8 ,
  cv::cudacodec::VP9 ,
  cv::cudacodec::AV1 ,
  cv::cudacodec::NumCodecs ,
  cv::cudacodec::Uncompressed_YUV420 = (('I' << 24) | ('Y' << 16) | ('U' << 8) | ('V')) ,
  cv::cudacodec::Uncompressed_YV12 = (('Y' << 24) | ('V' << 16) | ('1' << 8) | ('2')) ,
  cv::cudacodec::Uncompressed_NV12 = (('N' << 24) | ('V' << 16) | ('1' << 8) | ('2')) ,
  cv::cudacodec::Uncompressed_YUYV = (('Y' << 24) | ('U' << 16) | ('Y' << 8) | ('V')) ,
  cv::cudacodec::Uncompressed_UYVY = (('U' << 24) | ('Y' << 16) | ('V' << 8) | ('Y'))
}
 由cudacodec::VideoReader和cudacodec::VideoWriter支持的视频编解码器。 更多信息...
 
枚举类  cv::cudacodec::ColorFormat {
  cv::cudacodec::ColorFormat::UNDEFINED = 0 ,
  cv::cudacodec::ColorFormat::BGRA = 1 ,
  cv::cudacodec::ColorFormat::BGR = 2 ,
  cv::cudacodec::ColorFormat::GRAY = 3 ,
  cv::cudacodec::ColorFormat::NV_NV12 = 4 ,
  cv::cudacodec::ColorFormat::RGB = 5 ,
  cv::cudacodec::ColorFormat::RGBA = 6 ,
  cv::cudacodec::ColorFormat::NV_YV12 = 8 ,
  cv::cudacodec::ColorFormat::NV_IYUV = 9 ,
  cv::cudacodec::ColorFormat::NV_YUV444 = 10 ,
  cv::cudacodec::ColorFormat::NV_AYUV = 11
}
 VideoReader::nextFrame()和VideoReader::retrieve()返回的帧或用于初始化VideoWriter的颜色格式。 更多信息...
 
枚举  cv::cudacodec::DeinterlaceMode {
  cv::cudacodec::Weave = 0 ,
  cv::cudacodec::Bob = 1 ,
  cv::cudacodec::Adaptive = 2
}
 解码器使用的去隔行模式。 更多信息...
 
枚举  cv::cudacodec::EncodeMultiPass {
  cv::cudacodec::ENC_MULTI_PASS_DISABLED = 0x0 ,
  cv::cudacodec::ENC_TWO_PASS_QUARTER_RESOLUTION = 0x1 ,
  cv::cudacodec::ENC_TWO_PASS_FULL_RESOLUTION = 0x2
}
 多遍编码。 更多...
 
枚举  cv::cudacodec::EncodeParamsRcMode {
  cv::cudacodec::ENC_PARAMS_RC_CONSTQP = 0x0 ,
  cv::cudacodec::ENC_PARAMS_RC_VBR = 0x1 ,
  cv::cudacodec::ENC_PARAMS_RC_CBR = 0x2
}
 速率控制模式。 更多...
 
枚举  cv::cudacodec::EncodePreset {
  cv::cudacodec::ENC_PRESET_P1 = 1 ,
  cv::cudacodec::ENC_PRESET_P2 = 2 ,
  cv::cudacodec::ENC_PRESET_P3 = 3 ,
  cv::cudacodec::ENC_PRESET_P4 = 4 ,
  cv::cudacodec::ENC_PRESET_P5 = 5 ,
  cv::cudacodec::ENC_PRESET_P6 = 6 ,
  cv::cudacodec::ENC_PRESET_P7 = 7
}
 Nvidia 编码预设。性能降低而质量提高,从 P1 到 P7。 更多...
 
枚举  cv::cudacodec::EncodeProfile {
  cv::cudacodec::ENC_CODEC_PROFILE_AUTOSELECT = 0 ,
  cv::cudacodec::ENC_H264_PROFILE_BASELINE = 1 ,
  cv::cudacodec::ENC_H264_PROFILE_MAIN = 2 ,
  cv::cudacodec::ENC_H264_PROFILE_HIGH = 3 ,
  cv::cudacodec::ENC_H264_PROFILE_HIGH_444 = 4 ,
  cv::cudacodec::ENC_H264_PROFILE_STEREO = 5 ,
  cv::cudacodec::ENC_H264_PROFILE_PROGRESSIVE_HIGH = 6 ,
  cv::cudacodec::ENC_H264_PROFILE_CONSTRAINED_HIGH = 7 ,
  cv::cudacodec::ENC_HEVC_PROFILE_MAIN = 8 ,
  cv::cudacodec::ENC_HEVC_PROFILE_MAIN10 = 9 ,
  cv::cudacodec::ENC_HEVC_PROFILE_FREXT = 10
}
 支持的编码器配置文件。 更多...
 
枚举  cv::cudacodec::EncodeTuningInfo {
  cv::cudacodec::ENC_TUNING_INFO_UNDEFINED = 0 ,
  cv::cudacodec::ENC_TUNING_INFO_HIGH_QUALITY = 1 ,
  cv::cudacodec::ENC_TUNING_INFO_LOW_LATENCY = 2 ,
  cv::cudacodec::ENC_TUNING_INFO_ULTRA_LOW_LATENCY = 3 ,
  cv::cudacodec::ENC_TUNING_INFO_LOSSLESS = 4 ,
  cv::cudacodec::ENC_TUNING_INFO_COUNT
}
 调整信息。 更多...
 
枚举类  cv::cudacodec::VideoReaderProps {
  cv::cudacodec::VideoReaderProps::PROP_DECODED_FRAME_IDX = 0 ,
  cv::cudacodec::VideoReaderProps::PROP_EXTRA_DATA_INDEX = 1 ,
  cv::cudacodec::VideoReaderProps::PROP_RAW_PACKAGES_BASE_INDEX = 2 ,
  cv::cudacodec::VideoReaderProps::PROP_NUMBER_OF_RAW_PACKAGES_SINCE_LAST_GRAB = 3 ,
  cv::cudacodec::VideoReaderProps::PROP_RAW_MODE = 4 ,
  cv::cudacodec::VideoReaderProps::PROP_LRF_HAS_KEY_FRAME = 5 ,
  cv::cudacodec::VideoReaderProps::PROP_COLOR_FORMAT = 6 ,
  cv::cudacodec::VideoReaderProps::PROP_UDP_SOURCE = 7 ,
  cv::cudacodec::VideoReaderProps::PROP_ALLOW_FRAME_DROP = 8
}
 cv::cudacodec::VideoReader 通用属性标识符。 更多...
 

函数

Ptr<VideoReadercv::cudacodec::createVideoReader (const Ptr< RawVideoSource> &source, const VideoReaderInitParams params=VideoReaderInitParams())
 
Ptr<VideoReadercv::cudacodec::createVideoReader (const String &filename, const std::vector< int > &sourceParams={}, const VideoReaderInitParams params=VideoReaderInitParams())
 创建视频读取器。
 
Ptr< cudacodec::VideoWritercv::cudacodec::createVideoWriter (const String &fileName, const Size frameSize, const Codec codec, const double fps, const ColorFormat colorFormat, const EncoderParams &params, Ptr< EncoderCallback > encoderCallback=0, const cuda::Stream &stream=cuda::Stream::Null())
 创建视频写入器。
 
Ptr< cudacodec::VideoWritercv::cudacodec::createVideoWriter (const String &fileName, const Size frameSize, const Codec codec=Codec::H264, const double fps=25.0, const ColorFormat colorFormat=ColorFormat::BGR, Ptr< EncoderCallback > encoderCallback=0, const cuda::Stream &stream=cuda::Stream::Null())
 创建视频写入器。
 
void cv::cudacodec::MapHist (const cuda::GpuMat &hist, Mat &histFull)
 实用函数,演示如何将亮度直方图映射为当 FormatInfo::videoFullRangeFlag == false。
 
bool cv::cudacodec::operator== (const EncoderParams &lhs, const EncoderParams &rhs)
 

枚举类型文档

◆ ChromaFormat

#include <opencv2/cudacodec.hpp>

cudacodec::VideoReader 支持的色度格式。

枚举器
单色 
YUV420 
YUV422 
YUV444 
NumFormats 

◆ Codec

#include <opencv2/cudacodec.hpp>

cudacodec::VideoReadercudacodec::VideoWriter 支持的视频编解码器。

注意
  • 支持将取决于您的硬件,请参阅Nvidia Video Codec SDK视频编码和解码GPU支持矩阵以获取详细信息。
枚举器
MPEG1 
MPEG2 
MPEG4 
VC1 
H264 
JPEG 
H264_SVC 
H264_MVC 
HEVC 
VP8 
VP9 
AV1 
NumCodecs 
Uncompressed_YUV420 

Y,U,V (4:2:0)

Uncompressed_YV12 

Y,V,U (4:2:0)

Uncompressed_NV12 

Y,UV (4:2:0)

Uncompressed_YUYV 

YUYV/YUY2 (4:2:2)

Uncompressed_UYVY 

UYVY (4:2:2)

◆ 颜色格式

#include <opencv2/cudacodec.hpp>

ColorFormat 表示通过 VideoReader::nextFrame()VideoReader::retrieve() 返回的帧或者用于初始化一个 VideoWriter

枚举器
未定义
BGRA

OpenCV 颜色格式,可用于与 VideoReaderVideoWriter 一起使用。

BGR

OpenCV 颜色格式,可用于与 VideoReaderVideoWriter 一起使用。

灰色

OpenCV 颜色格式,可用于与 VideoReaderVideoWriter 一起使用。

NV_NV12

Nvidia 颜色格式 - 等同于 YUV - 半平面 YUV [Y面后面跟着交错 UV 面],可用于与 VideoReaderVideoWriter 一起使用。

RGB

OpenCV 颜色格式,只能与 VideoWriter 一起使用。

RGBA

OpenCV 颜色格式,只能与 VideoWriter 一起使用。

NV_YV12

Nvidia 缓冲区格式 - 平面 YUV [Y 平面后跟 V 和 U 平面],与 VideoReader 一起使用,只能与 VideoWriter 一起使用。

NV_IYUV 

Nvidia 缓冲区格式 - 平面 YUV [Y 平面后跟 U 和 V 平面],与 VideoReader 一起使用,只能与 VideoWriter 一起使用。

NV_YUV444 

Nvidia 缓冲区格式 - 平面 YUV [Y 平面后跟 U 和 V 平面],与 VideoReader 一起使用,只能与 VideoWriter 一起使用。

NV_AYUV 

Nvidia 缓冲区格式 - 8 位打包 A8Y8U8V8。这是一个按字序的格式,其中像素由一个 32 位字表示,V 占最低 8 位,U 占下一个 8 位,Y 占之后的 8 位,A 占最高 8 位,只能与 VideoWriter 一起使用。

◆ DeinterlaceMode

#include <opencv2/cudacodec.hpp>

解码器使用的去隔行模式。

参数
Weave交织两个场(不进行去隔行)。对于逐行内容以及不需要去隔行的内容。
Bob丢弃一个场。
自适应自适应去隔行需要比其他去隔行模式更多的视频内存。
枚举器
Weave 
Bob 
Adaptive 

◆ EncodeMultiPass

#include <opencv2/cudacodec.hpp>

多遍编码。

枚举器
ENC_MULTI_PASS_DISABLED 

单遍。

ENC_TWO_PASS_QUARTER_RESOLUTION 

启用两遍编码,第一遍是四分之一分辨率。

ENC_TWO_PASS_FULL_RESOLUTION 

启用两遍编码,第一遍是全分辨率。

◆ EncodeParamsRcMode

#include <opencv2/cudacodec.hpp>

率控模式。

枚举器
ENC_PARAMS_RC_CONSTQP 

恒定质量因子模式。

ENC_PARAMS_RC_VBR 

可变比特率模式。

ENC params_RC_CBR 

恒定比特率模式。

◆ EncodePreset

#include <opencv2/cudacodec.hpp>

Nvidia 编码预设。从 P1 到 P7,性能降低而质量提高。

枚举器
ENC_PRESET_P1 
ENC_PRESET_P2 
ENC_PRESET_P3 
ENC_PRESET_P4 
ENC_PRESET_P5 
ENC_PRESET_P6 
ENC_PRESET_P7 

◆ 编码配置文件

#include <opencv2/cudacodec.hpp>

支持的编码配置文件。

枚举器
ENC_CODEC_PROFILE_AUTOSELECT 
ENC_H264_PROFILE_BASELINE 
ENC_H264_PROFILE_MAIN 
ENC_H264_PROFILE_HIGH 
ENC_H264_PROFILE_HIGH_444 
ENC_H264_PROFILE_STEREO 
ENC_H264_PROFILE_PROGRESSIVE_HIGH 
ENC_H264_PROFILE_CONSTRAINED_HIGH 
ENC_HEVC_PROFILE_MAIN 
ENC_HEVC_PROFILE_MAIN10 
ENC_HEVC_PROFILE_FREXT 

◆ 编码调整信息

#include <opencv2/cudacodec.hpp>

调整信息。

枚举器
ENC_TUNING_INFO_UNDEFINED 

未定义调整信息。编码无效值。

ENC_TUNING_INFO_HIGH_QUALITY 

调整预设以进行容错编码。

ENC_TUNING_INFO_LOW_LATENCY 

调整预设以进行低延迟流。

ENC_TUNING_INFO_ULTRA_LOW_LATENCY 

调整预设以进行超低延迟流。

ENC_TUNING_INFO_LOSSLESS 

调整预设以进行无损编码。

ENC_TUNING_INFO_COUNT 

◆ VideoReaderProps

#include <opencv2/cudacodec.hpp>

cv::cudacodec::VideoReader 通用属性标识符。

枚举器
PROP_DECODED_FRAME_IDX 

使用 retrieve() 获取解码帧的索引。

PROP_EXTRA_DATA_INDEX 

使用 retrieve() 获取与视频源相关联的额外数据的索引。

PROP_RAW_PACKAGES_BASE_INDEX 

使用 retrieve() 获取原始编码数据的索引。

PROP_NUMBER_OF_RAW_PACKAGES_SINCE_LAST_GRAB 

自上次调用 grab() 以来收到的原始包数量。

PROP_RAW_MODE 

原始模式状态。

PROP_LRF_HAS_KEY_FRAME 

仅FFmpeg源 - 表示最后一个原始帧(LRF)是否包含关键帧编码数据,该帧由 VideoReader::retrieve() 生成,当 VideoReader 以原始模式初始化时。

PROP_COLOR_FORMAT 

设置解码帧的色彩格式。这可以在每次调用 nextFrame() 和 retrieve() 之前进行更改。

PROP_UDP_SOURCE 

VideoReaderInitParams::udpSource 初始化状态。

PROP_ALLOW_FRAME_DROP 

VideoReaderInitParams::allowFrameDrop 初始化状态。

函数文档

◆ createVideoReader() [1/2]

Ptr< VideoReader > cv::cudacodec::createVideoReader ( const Ptr< RawVideoSource > &  source,
const VideoReaderInitParams  params = VideoReaderInitParams() 
)

#include <opencv2/cudacodec.hpp>

这是一个重载成员函数,仅在每个参数以下几个方面有所不同。

参数
source由用户实现的RAW视频源。
params初始化参数。参见 cv::cudacodec::VideoReaderInitParams

◆ createVideoReader() [2/2]

Ptr< VideoReader > cv::cudacodec::createVideoReader ( const String filename,
const std::vector< int > &  sourceParams = {},
const VideoReaderInitParams  params = VideoReaderInitParams() 
)

#include <opencv2/cudacodec.hpp>

创建视频读取器。

参数
filename输入视频文件的名称。
sourceParams传递给 VideoCapture 的参数。使用 FFMPEG 后端(CAP_FFMPEG)的 VideoCapture 捕获视频输入。 sourceParams 参数允许指定作为成对 (paramId_1, paramValue_1, paramId_2, paramValue_2, ...) 编码的额外参数。例如,从 RTSP 源进行流媒体传输时,可能需要设置 CAP_PROP_OPEN_TIMEOUT_MSEC
params初始化参数。参见 cv::cudacodec::VideoReaderInitParams

使用 FFMPEG 读取视频。用户可以使用 cudacodec::RawVideoSource 实现自己的复用。

◆ createVideoWriter() [1/2]

Ptr< cudacodec::VideoWriter > cv::cudacodec::createVideoWriter ( const String fileName,
const Size  frameSize,
const Codec  codec,
const double  帧率,
const ColorFormat  颜色格式,
const EncoderParams params,
Ptr< EncoderCallback encoderCallback = 0,
const cuda::Stream stream = cuda::Stream::Null() 
)

#include <opencv2/cudacodec.hpp>

创建视频写入器。

参数
fileName输出视频文件名。
frameSize输入视频帧大小。
codec支持Codec::H264Codec::HEVC
帧率创建视频流的帧率。
颜色格式待编码帧的OpenCv颜色格式。
params附加编码参数。
encoderCallback视频编码器的回调函数。参见cudacodec::EncoderCallback。与编码视频流一起工作时必需。
stream用于帧预处理的数据流。

◆ createVideoWriter() [2/2]

Ptr< cudacodec::VideoWriter > cv::cudacodec::createVideoWriter ( const String fileName,
const Size  frameSize,
const Codec  codec = Codec::H264,
const double  fps = 25.0,
const ColorFormat  colorFormat = ColorFormat::BGR,
Ptr< EncoderCallback encoderCallback = 0,
const cuda::Stream stream = cuda::Stream::Null() 
)

#include <opencv2/cudacodec.hpp>

创建视频写入器。

参数
fileName输出视频文件名。
frameSize输入视频帧大小。
codec支持Codec::H264Codec::HEVC
帧率创建视频流的帧率。
颜色格式待编码帧的OpenCv颜色格式。
encoderCallback视频编码器的回调函数。参见cudacodec::EncoderCallback。与编码视频流一起工作时必需。
stream用于帧预处理的数据流。

◆ MapHist()

void cv::cudacodec::MapHist ( const cuda::GpuMat hist,
Mat histFull 
)

#include <opencv2/cudacodec.hpp>

实用函数,演示如何将亮度直方图映射为当 FormatInfo::videoFullRangeFlag == false。

参数
hist从VideoReader::nextFrame(GpuMat& frame, GpuMat& hist, Stream& stream)返回的Luma直方图hist
histFull主机直方图,等同于调用cuda::calcHist(InputArray frame, OutputArray hist, Stream& stream)后下载hist
注意
  • 此函数演示了如何将Luma直方图映射回,使得它等同于从cuda::calcHist()获得的结果,如果返回的帧是colorFormat::GRAY。

◆ operator==()

bool cv::cudacodec::operator== ( const EncoderParams lhs,
const EncoderParams rhs 
)