Classes | |
struct | cv::cudacodec::EncodeQp |
class | cv::cudacodec::EncoderCallback |
Interface for encoder callbacks. More... | |
struct | cv::cudacodec::EncoderParams |
Different parameters for CUDA video encoder. More... | |
struct | cv::cudacodec::FormatInfo |
Struct providing information about video file format. : More... | |
class | cv::cudacodec::RawVideoSource |
Interface for video demultiplexing. : More... | |
class | cv::cudacodec::VideoReader |
Video reader interface. More... | |
struct | cv::cudacodec::VideoReaderInitParams |
VideoReader initialization parameters. More... | |
class | cv::cudacodec::VideoWriter |
Video writer interface. More... | |
Functions | |
Ptr< VideoReader > | cv::cudacodec::createVideoReader (const Ptr< RawVideoSource > &source, const VideoReaderInitParams params=VideoReaderInitParams()) |
Ptr< VideoReader > | cv::cudacodec::createVideoReader (const String &filename, const std::vector< int > &sourceParams={}, const VideoReaderInitParams params=VideoReaderInitParams()) |
Creates video reader. | |
Ptr< cudacodec::VideoWriter > | cv::cudacodec::createVideoWriter (const String &fileName, const Size frameSize, const Codec codec, const double fps, const ColorFormat colorFormat, const EncoderParams ¶ms, Ptr< EncoderCallback > encoderCallback=0, const cuda::Stream &stream=cuda::Stream::Null()) |
Creates video writer. | |
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()) |
Creates video writer. | |
void | cv::cudacodec::MapHist (const cuda::GpuMat &hist, Mat &histFull) |
Utility function demonstrating how to map the luma histogram when FormatInfo::videoFullRangeFlag == false. | |
bool | cv::cudacodec::operator== (const EncoderParams &lhs, const EncoderParams &rhs) |
Detailed Description
Enumeration Type Documentation
◆ ChromaFormat
#include <opencv2/cudacodec.hpp>
Chroma formats supported by cudacodec::VideoReader.
Enumerator | |
---|---|
Monochrome | |
YUV420 | |
YUV422 | |
YUV444 | |
NumFormats |
◆ Codec
enum cv::cudacodec::Codec |
#include <opencv2/cudacodec.hpp>
Video codecs supported by cudacodec::VideoReader and cudacodec::VideoWriter.
- Note
- Support will depend on your hardware, refer to the Nvidia Video Codec SDK Video Encode and Decode GPU Support Matrix for details.
◆ ColorFormat
|
strong |
#include <opencv2/cudacodec.hpp>
ColorFormat for the frame returned by VideoReader::nextFrame() and VideoReader::retrieve() or used to initialize a VideoWriter.
Enumerator | |
---|---|
UNDEFINED | |
BGRA | OpenCV color format, can be used with both VideoReader and VideoWriter. |
BGR | OpenCV color format, can be used with both VideoReader and VideoWriter. |
GRAY | OpenCV color format, can be used with both VideoReader and VideoWriter. |
NV_NV12 | Nvidia color format - equivalent to YUV - Semi-Planar YUV [Y plane followed by interleaved UV plane], can be used with both VideoReader and VideoWriter. |
RGB | OpenCV color format, can only be used with VideoWriter. |
RGBA | OpenCV color format, can only be used with VideoWriter. |
NV_YV12 | Nvidia Buffer Format - Planar YUV [Y plane followed by V and U planes], use with VideoReader, can only be used with VideoWriter. |
NV_IYUV | Nvidia Buffer Format - Planar YUV [Y plane followed by U and V planes], use with VideoReader, can only be used with VideoWriter. |
NV_YUV444 | Nvidia Buffer Format - Planar YUV [Y plane followed by U and V planes], use with VideoReader, can only be used with VideoWriter. |
NV_AYUV | Nvidia Buffer Format - 8 bit Packed A8Y8U8V8. This is a word-ordered format where a pixel is represented by a 32-bit word with V in the lowest 8 bits, U in the next 8 bits, Y in the 8 bits after that and A in the highest 8 bits, can only be used with VideoWriter. |
◆ DeinterlaceMode
#include <opencv2/cudacodec.hpp>
Deinterlacing mode used by decoder.
- Parameters
-
Weave Weave both fields (no deinterlacing). For progressive content and for content that doesn't need deinterlacing. Bob Drop one field. Adaptive Adaptive deinterlacing needs more video memory than other deinterlacing modes.
Enumerator | |
---|---|
Weave | |
Bob | |
Adaptive |
◆ EncodeMultiPass
#include <opencv2/cudacodec.hpp>
Multi Pass Encoding.
◆ EncodeParamsRcMode
#include <opencv2/cudacodec.hpp>
Rate Control Modes.
Enumerator | |
---|---|
ENC_PARAMS_RC_CONSTQP | Constant QP mode. |
ENC_PARAMS_RC_VBR | Variable bitrate mode. |
ENC_PARAMS_RC_CBR | Constant bitrate mode. |
◆ EncodePreset
#include <opencv2/cudacodec.hpp>
Nvidia Encoding Presets. Performance degrades and quality improves as we move from P1 to P7.
Enumerator | |
---|---|
ENC_PRESET_P1 | |
ENC_PRESET_P2 | |
ENC_PRESET_P3 | |
ENC_PRESET_P4 | |
ENC_PRESET_P5 | |
ENC_PRESET_P6 | |
ENC_PRESET_P7 |
◆ EncodeProfile
#include <opencv2/cudacodec.hpp>
Supported Encoder Profiles.
◆ EncodeTuningInfo
#include <opencv2/cudacodec.hpp>
Tuning information.
◆ VideoReaderProps
|
strong |
#include <opencv2/cudacodec.hpp>
cv::cudacodec::VideoReader generic properties identifier.
Enumerator | |
---|---|
PROP_DECODED_FRAME_IDX | Index for retrieving the decoded frame using retrieve(). |
PROP_EXTRA_DATA_INDEX | Index for retrieving the extra data associated with a video source using retrieve(). |
PROP_RAW_PACKAGES_BASE_INDEX | Base index for retrieving raw encoded data using retrieve(). |
PROP_NUMBER_OF_RAW_PACKAGES_SINCE_LAST_GRAB | Number of raw packages recieved since the last call to grab(). |
PROP_RAW_MODE | Status of raw mode. |
PROP_LRF_HAS_KEY_FRAME | FFmpeg source only - Indicates whether the Last Raw Frame (LRF), output from VideoReader::retrieve() when VideoReader is initialized in raw mode, contains encoded data for a key frame. |
PROP_COLOR_FORMAT | Set the ColorFormat of the decoded frame. This can be changed before every call to nextFrame() and retrieve(). |
PROP_UDP_SOURCE | Status of VideoReaderInitParams::udpSource initialization. |
PROP_ALLOW_FRAME_DROP | Status of VideoReaderInitParams::allowFrameDrop initialization. |
Function Documentation
◆ createVideoReader() [1/2]
Ptr< VideoReader > cv::cudacodec::createVideoReader | ( | const Ptr< RawVideoSource > & | source, |
const VideoReaderInitParams | params = VideoReaderInitParams() |
||
) |
#include <opencv2/cudacodec.hpp>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
- Parameters
-
source RAW video source implemented by user. params Initializaton parameters. See 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>
Creates video reader.
- Parameters
-
filename Name of the input video file. sourceParams Pass through parameters for VideoCapure. VideoCapture with the FFMpeg back end (CAP_FFMPEG) is used to parse the video input. The sourceParams
parameter allows to specify extra parameters encoded as pairs(paramId_1, paramValue_1, paramId_2, paramValue_2, ...)
. See cv::VideoCaptureProperties e.g. when streaming from an RTSP source CAP_PROP_OPEN_TIMEOUT_MSEC may need to be set.params Initializaton parameters. See cv::cudacodec::VideoReaderInitParams.
FFMPEG is used to read videos. User can implement own demultiplexing with cudacodec::RawVideoSource
◆ createVideoWriter() [1/2]
Ptr< cudacodec::VideoWriter > cv::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() |
||
) |
#include <opencv2/cudacodec.hpp>
Creates video writer.
- Parameters
-
fileName Name of the output video file. Only raw h264 or hevc files are supported. frameSize Size of the input video frames. codec Codec. fps Framerate of the created video stream. colorFormat OpenCv color format of the frames to be encoded. params Additional encoding parameters. encoderCallback Callbacks for video encoder. See cudacodec::EncoderCallback. Required for working with the encoded video stream. stream Stream for frame pre-processing.
◆ 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>
Creates video writer.
- Parameters
-
fileName Name of the output video file. Only raw h264 or hevc files are supported. frameSize Size of the input video frames. codec Codec. fps Framerate of the created video stream. colorFormat OpenCv color format of the frames to be encoded. encoderCallback Callbacks for video encoder. See cudacodec::EncoderCallback. Required for working with the encoded video stream. stream Stream for frame pre-processing.
◆ MapHist()
void cv::cudacodec::MapHist | ( | const cuda::GpuMat & | hist, |
Mat & | histFull | ||
) |
#include <opencv2/cudacodec.hpp>
Utility function demonstrating how to map the luma histogram when FormatInfo::videoFullRangeFlag == false.
- Parameters
-
hist Luma histogram hist returned from VideoReader::nextFrame(GpuMat& frame, GpuMat& hist, Stream& stream). histFull Host histogram equivelent to downloading hist after calling cuda::calcHist(InputArray frame, OutputArray hist, Stream& stream).
- Note
- This function demonstrates how to map the luma histogram back so that it is equivalent to the result obtained from cuda::calcHist() if the returned frame was colorFormat::GRAY.
◆ operator==()
bool cv::cudacodec::operator== | ( | const EncoderParams & | lhs, |
const EncoderParams & | rhs | ||
) |
#include <opencv2/cudacodec.hpp>