VideoFrame

  • C++

更新时间不可用

用于配置视频帧。

C++
struct VideoFrame {
  VIDEO_PIXEL_FORMAT type;
  int width;
  int height;
  int yStride;
  int uStride;
  int vStride;
  uint8_t* yBuffer;
  uint8_t* uBuffer;
  uint8_t* vBuffer;
  int rotation;
  int64_t renderTimeMs;
  int avsync_type;
  uint8_t* metadata_buffer;
  int metadata_size;
  void* sharedContext;
  int textureId;
  void* d3d11Texture2d;
  float matrix[16];
  uint8_t* alphaBuffer;
  ALPHA_STITCH_MODE alphaStitchMode;
  void* pixelBuffer;
  IVideoFrameMetaInfo* metaInfo;
  ColorSpace colorSpace;
};

注意,缓冲区是指向指针的指针。该接口无法修改缓冲区的指针,但可以修改缓冲区的内容。

属性

参数名描述
type

像素格式。详见 VIDEO_PIXEL_FORMAT。

width

视频帧的宽度,单位为像素。

height

视频帧的高度,单位为像素。

yStride

对于 YUV 数据,为 Y 缓冲区的每行跨度;对于 RGBA 数据,为总数据长度。

注: 处理视频数据时,必须根据该参数处理每行像素数据之间的偏移,否则可能导致图像失真。

uStride

对于 YUV 数据,为 U 缓冲区的每行跨度;对于 RGBA 数据,该值为 0。

注: 处理视频数据时,必须根据该参数处理每行像素数据之间的偏移,否则可能导致图像失真。

vStride

对于 YUV 数据,为 V 缓冲区的每行跨度;对于 RGBA 数据,该值为 0。

注: 处理视频数据时,必须根据该参数处理每行像素数据之间的偏移,否则可能导致图像失真。

yBuffer

输出参数,对于 YUV 数据,为 Y 缓冲区的指针;对于 RGBA 数据,为数据缓冲区。

uBuffer

输出参数,对于 YUV 数据,为 U 缓冲区的指针;对于 RGBA 数据,该值为 0。

vBuffer

输出参数,对于 YUV 数据,为 V 缓冲区的指针;对于 RGBA 数据,该值为 0。

rotation

视频帧在渲染前的顺时针旋转角度。支持的取值包括 0、90、180 和 270 度。

renderTimeMs

视频帧渲染时的 Unix 时间戳(毫秒)。该时间戳可用于指导视频帧的渲染。

avsync_type

保留参数,供未来使用。

metadata_buffer

输出参数,仅适用于 Texture 格式的视频数据。元数据缓冲区,默认值为 NULL。

metadata_size

仅适用于 Texture 格式的视频数据。元数据大小,默认值为 0。

sharedContext

仅适用于 Texture 格式的视频数据。EGL 上下文。

textureId

仅适用于 Texture 格式的视频数据。纹理 ID。

d3d11Texture2d

仅适用于 Windows Texture 格式的视频数据。指向 ID3D11Texture2D 类型对象的指针,该对象由视频帧使用。

matrix

仅适用于 Texture 格式的视频数据。输入的 4×4 变换矩阵,典型值为单位矩阵。

alphaBuffer

输出参数,使用人像分割算法生成的 Alpha 通道数据。该数据与视频帧大小一致,每个像素值范围为 [0, 255],其中 0 表示背景,255 表示前景(人像)。通过设置该参数,可以将视频背景渲染为透明、纯色、图像、视频等多种效果。

注: 请确保 alphaBuffer 的大小与视频帧(width × height)完全一致,否则可能导致应用崩溃。

alphaStitchMode

当视频帧包含 Alpha 通道数据时,表示 alphaBuffer 与视频帧的相对位置。详见 ALPHA_STITCH_MODE。

pixelBuffer

仅适用于 iOS 和 macOS。CVPixelBufferRef 类型。

metaInfo

输出参数,视频帧中的元信息。

colorSpace

视频帧的色彩空间属性,默认采用 Full Range 和 BT.709 标准配置。详见 VideoColorSpace。

表格内容超出当前宽度,可横向滚动查看更多列。

这个页面有帮助吗?