VideoFrame

  • HarmonyOS

更新时间不可用

视频帧的属性设置。

TypeScript
export class VideoFrame {
  public buffer:ArrayBuffer | undefined;
  public yBuffer: ArrayBuffer | null = null;
  public uBuffer: ArrayBuffer | null = null;
  public vBuffer: ArrayBuffer | null = null;

  public rotation:number = 0;
  public timestamp:number = 0;
  public stride:number = 0;
  public uStride:number = 0;
  public vStride:number = 0;
  public width:number = 0;
  public height:number = 0;
  public type:VideoBufferType = VideoBufferType.RAW_DATA;
  public format:VideoPixelFormat = VideoPixelFormat.VIDEO_PIXEL_NV21;
  constructor(type:VideoBufferType,format:VideoPixelFormat) {
    this.type = type;
    this.format = format;
  }
}

详情

缓冲区给出的是指向指针的指针,该接口不能修改缓冲区的指针,只能修改缓冲区的内容。

参数名描述
type

视频类型。详见 VideoBufferType。

format

像素格式。详见 VideoPixelFormat。

width

视频像素宽度。

height

视频像素高度。

stride

对 YUV 数据,表示 Y 缓冲区的行跨度;对 RGBA 数据,表示总的数据长度。

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

uStride

对 YUV 数据,表示 U 缓冲区的行跨度;对 RGBA 数据,值为 0。

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

vStride

对 YUV 数据,表示 V 缓冲区的行跨度;对 RGBA 数据,值为 0。

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

yBuffer

对 YUV 数据,表示 Y 缓冲区的指针;对 RGBA 数据,表示数据缓冲区。

uBuffer

对 YUV 数据,表示 U 缓冲区的指针;对 RGBA 数据,值为空。

vBuffer

对 YUV 数据,表示 V 缓冲区的指针;对 RGBA 数据,值为空。

buffer

缓冲区的数据。与该参数相关的方法如下所示:

  • getRotatedWidth:获取旋转后的视频帧宽度。
  • getRotatedHeight:获取旋转后的视频帧高度。
  • replaceBuffer:将缓冲区中的数据替换为新的视频帧。
  • retain:将缓冲区的引用计数加 1。
  • release:将缓冲区的引用计数减 1。当计数为 0 时,缓冲区的资源会被释放。
rotation

在渲染视频前设置该帧的顺时针旋转角度,目前支持 0 度、90 度、180 度,和 270 度。

timestampNs

视频帧的时间戳(纳秒)。

colorSpace

表示视频帧的色彩空间。详见 VideoColorSpace。

sourceType

在使用 SDK 采集视频时,表示该视频源的类型。

  • kFrontCamera:前置摄像头。
  • kBackCamera:后置摄像头。
  • kUnspecified:(默认) 视频源类型未知。
sampleAspectRatio

单个像素的宽高比,即每个像素宽度与高度的比值。

采用人像分割算法输出的 Alpha 通道数据。该数据跟视频帧的尺寸一致,每个像素点的取值范围为 [0,255],其中 0 代表背景;255 代表前景(人像)。

你可以通过设置该参数,实现将视频背景自渲染为各种效果,例如:透明、纯色、图片、视频等。

注意:

  • 请务必确保 跟视频帧的尺寸 (width × height) 完全一致,否则可能会导致 App 崩溃。
alphaStitchMode

当视频帧中包含 Alpha 通道数据时,设置 alphaBuffer 和视频帧的相对位置。

metaInfo

视频帧中的元信息。该参数需要联系技术支持使用。

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

这个页面有帮助吗?