# io.agora.rtc.VideoFrame类 参考 (/zh-CN/api-reference/rtc-server-sdk/java/classio-1-1agora-1-1rtc-1-1-video-frame)

> For AI agents: see the complete documentation index at [llms.txt](/llms.txt).

<a id="details"></a>

<a id="header-details"></a>

VideoFrame 类。

<a id="doc-constructors"></a>

<a id="header-doc-constructors"></a>

## 构造及析构函数说明 [#构造及析构函数说明]

<a id="a0a227c32f1490fe5e4ddfd599fbd6fe0"></a>

### VideoFrame() [1/2] [#videoframe-12]

<ApiSignature>

io.agora.rtc.VideoFrame.VideoFrame()

</ApiSignature>

<a id="abb271fd0cca62e38b07e48f8eb8aec1e"></a>

### VideoFrame() [2/2] [#videoframe-22]

<ApiSignature>

io.agora.rtc.VideoFrame.VideoFrame(int *type*, int *width*, int *height*, int *yStride*, int *uStride*, int *vStride*, ByteBuffer *yBuffer*, ByteBuffer *uBuffer*, ByteBuffer *vBuffer*, int *rotation*, long *renderTimeMs*, int *avsyncType*, ByteBuffer *metadataBuffer*, Object *sharedContext*, int *textureId*, float[] *matrix*, ByteBuffer *alphaBuffer*, int *alphaMode*)

</ApiSignature>

<a id="doc-func-members"></a>

<a id="header-doc-func-members"></a>

## 成员函数说明 [#成员函数说明]

<a id="a04698c524e83b48997cc99ea2fc98918"></a>

### getAlphaBuffer() [#getalphabuffer]

<ApiSignature>

ByteBuffer io.agora.rtc.VideoFrame.getAlphaBuffer()

</ApiSignature>

<a id="a1a1e2dffe99106acd8d25f24d93eadfb"></a>

### getAlphaMode() [#getalphamode]

<ApiSignature>

int io.agora.rtc.VideoFrame.getAlphaMode()

</ApiSignature>

<a id="ae2d00bab4d34749aa36c073f687a1b4f"></a>

### getAvsyncType() [#getavsynctype]

<ApiSignature>

int io.agora.rtc.VideoFrame.getAvsyncType()

</ApiSignature>

<a id="a9cdceea5586068bc60c52771f8c87a20"></a>

### getHeight() [#getheight]

<ApiSignature>

int io.agora.rtc.VideoFrame.getHeight()

</ApiSignature>

<a id="ac349ca602799f69484eb370c574d9ce2"></a>

### getMatrix() [#getmatrix]

<ApiSignature>

float[] io.agora.rtc.VideoFrame.getMatrix()

</ApiSignature>

<a id="a67079f9e94e8a709e21f819acced7105"></a>

### getMetadataBuffer() [#getmetadatabuffer]

<ApiSignature>

ByteBuffer io.agora.rtc.VideoFrame.getMetadataBuffer()

</ApiSignature>

<a id="a9a94688398f144ac8a87bfc160ba125a"></a>

### getRenderTimeMs() [#getrendertimems]

<ApiSignature>

long io.agora.rtc.VideoFrame.getRenderTimeMs()

</ApiSignature>

<a id="a5860feb9d5ce047ad95d437734b15646"></a>

### getRotation() [#getrotation]

<ApiSignature>

int io.agora.rtc.VideoFrame.getRotation()

</ApiSignature>

<a id="ada60ed7e401197546fc21b4a2294a6fb"></a>

### getSharedContext() [#getsharedcontext]

<ApiSignature>

Object io.agora.rtc.VideoFrame.getSharedContext()

</ApiSignature>

<a id="a86c1f62e1834f9d9de5908689a6f6f6c"></a>

### getTextureId() [#gettextureid]

<ApiSignature>

int io.agora.rtc.VideoFrame.getTextureId()

</ApiSignature>

<a id="af82faffcc443ebb9401ef72971b09156"></a>

### getType() [#gettype]

<ApiSignature>

int io.agora.rtc.VideoFrame.getType()

</ApiSignature>

<a id="ad3f5524066e7023b7c87b3b05596eaf6"></a>

### getUBuffer() [#getubuffer]

<ApiSignature>

ByteBuffer io.agora.rtc.VideoFrame.getUBuffer()

</ApiSignature>

<a id="a4254e5deadadc5f6114b1d63b822a4dc"></a>

### getUStride() [#getustride]

<ApiSignature>

int io.agora.rtc.VideoFrame.getUStride()

</ApiSignature>

<a id="ad825d106fe58b4b98454c112d2347c01"></a>

### getVBuffer() [#getvbuffer]

<ApiSignature>

ByteBuffer io.agora.rtc.VideoFrame.getVBuffer()

</ApiSignature>

<a id="a06d1e395c50122d5d332dbe5bb5f0c1c"></a>

### getVStride() [#getvstride]

<ApiSignature>

int io.agora.rtc.VideoFrame.getVStride()

</ApiSignature>

<a id="a19ca10ea5500b74525f264b3c02e649c"></a>

### getWidth() [#getwidth]

<ApiSignature>

int io.agora.rtc.VideoFrame.getWidth()

</ApiSignature>

<a id="a7bbe713be624fde372e7bc96e2517ab4"></a>

### getYBuffer() [#getybuffer]

<ApiSignature>

ByteBuffer io.agora.rtc.VideoFrame.getYBuffer()

</ApiSignature>

<a id="aa14e4ef8ffe3aab1d439984c5008f1b6"></a>

### getYStride() [#getystride]

<ApiSignature>

int io.agora.rtc.VideoFrame.getYStride()

</ApiSignature>

<a id="a5be138e3885aad0214f2fd672d4365b6"></a>

### setAlphaBuffer() [#setalphabuffer]

<ApiSignature>

void io.agora.rtc.VideoFrame.setAlphaBuffer(ByteBuffer *alphaBuffer*)

</ApiSignature>

<a id="ab0b39d5a88e7ea0208be7106cd24804a"></a>

### setAlphaMode() [#setalphamode]

<ApiSignature>

void io.agora.rtc.VideoFrame.setAlphaMode(int *alphaMode*)

</ApiSignature>

<a id="a2cd25f0ed121fb45f66cc872ec663c09"></a>

### setAvsyncType() [#setavsynctype]

<ApiSignature>

void io.agora.rtc.VideoFrame.setAvsyncType(int *avsyncType*)

</ApiSignature>

<a id="a21715a703e77dc851d392cb990c3fc61"></a>

### setHeight() [#setheight]

<ApiSignature>

void io.agora.rtc.VideoFrame.setHeight(int *height*)

</ApiSignature>

<a id="a4c8bb095c9417061031a0a6a0051ea91"></a>

### setMatrix() [#setmatrix]

<ApiSignature>

void io.agora.rtc.VideoFrame.setMatrix(float[] *matrix*)

</ApiSignature>

<a id="a224644d6ff716ba49fab4f44df6f3690"></a>

### setMetadataBuffer() [#setmetadatabuffer]

<ApiSignature>

void io.agora.rtc.VideoFrame.setMetadataBuffer(ByteBuffer *metadataBuffer*)

</ApiSignature>

<a id="a79c6627c0df2c845b183a7bf34c95225"></a>

### setRenderTimeMs() [#setrendertimems]

<ApiSignature>

void io.agora.rtc.VideoFrame.setRenderTimeMs(long *renderTimeMs*)

</ApiSignature>

<a id="a51f034e2f5f6f0a8df310f17d0cb0e39"></a>

### setRotation() [#setrotation]

<ApiSignature>

void io.agora.rtc.VideoFrame.setRotation(int *rotation*)

</ApiSignature>

<a id="a1430de4a511a476c7b64e6a035e54443"></a>

### setSharedContext() [#setsharedcontext]

<ApiSignature>

void io.agora.rtc.VideoFrame.setSharedContext(Object *sharedContext*)

</ApiSignature>

<a id="afcb2076d2e28e44a31e9012e8b8f0634"></a>

### setTextureId() [#settextureid]

<ApiSignature>

void io.agora.rtc.VideoFrame.setTextureId(int *textureId*)

</ApiSignature>

<a id="a3dbf31bbccaaa8ed8d6ed5e3570b82b6"></a>

### setType() [#settype]

<ApiSignature>

void io.agora.rtc.VideoFrame.setType(int *type*)

</ApiSignature>

<a id="a04a76d992b3bbb9299973f922974b31b"></a>

### setUBuffer() [#setubuffer]

<ApiSignature>

void io.agora.rtc.VideoFrame.setUBuffer(ByteBuffer *uBuffer*)

</ApiSignature>

<a id="a3adbddbdf3a70c91175580a526a93b24"></a>

### setUStride() [#setustride]

<ApiSignature>

void io.agora.rtc.VideoFrame.setUStride(int *uStride*)

</ApiSignature>

<a id="ac141a7c1b66755e52bbf7d7338c294d8"></a>

### setVBuffer() [#setvbuffer]

<ApiSignature>

void io.agora.rtc.VideoFrame.setVBuffer(ByteBuffer *vBuffer*)

</ApiSignature>

<a id="af6c94278f66ecd8a2204cdfcb0221969"></a>

### setVStride() [#setvstride]

<ApiSignature>

void io.agora.rtc.VideoFrame.setVStride(int *vStride*)

</ApiSignature>

<a id="af3d3a1e37cfbb2b8af0e5a892d7dc08f"></a>

### setWidth() [#setwidth]

<ApiSignature>

void io.agora.rtc.VideoFrame.setWidth(int *width*)

</ApiSignature>

<a id="ad278dc9c9b4241d3bd9a2cc329236062"></a>

### setYBuffer() [#setybuffer]

<ApiSignature>

void io.agora.rtc.VideoFrame.setYBuffer(ByteBuffer *yBuffer*)

</ApiSignature>

<a id="aebb006978bed3d9b41c3602206f1101c"></a>

### setYStride() [#setystride]

<ApiSignature>

void io.agora.rtc.VideoFrame.setYStride(int *yStride*)

</ApiSignature>

<a id="ace3c172e646512739db8c838e9692019"></a>

### toString() [#tostring]

<ApiSignature>

String io.agora.rtc.VideoFrame.toString()

</ApiSignature>

<a id="doc-variable-members"></a>

<a id="header-doc-variable-members"></a>

## 类成员变量说明 [#类成员变量说明]

<a id="a5e023393cd3d15018fb99240a81ab883"></a>

### alphaBuffer [#alphabuffer]

<ApiSignature labels="private">

ByteBuffer io.agora.rtc.VideoFrame.alphaBuffer

</ApiSignature>

采用人像分割算法输出的 Alpha 通道数据。该数据跟视频帧的尺寸一致，每个像素点的取值范围为 [0,255]，其中 0 代表背景；255 代表前景（人像）。你可以通过设置该参数，实现将视频背景自渲染为各种效果，例如：透明、纯色、图片、视频等。默认值为 NULL。

<a id="a9a2640e6aaeaff0e620e067822380ab6"></a>

### alphaMode [#alphamode]

<ApiSignature labels="private">

int io.agora.rtc.VideoFrame.alphaMode

</ApiSignature>

当视频祯中包含 Alpha 通道数据时，设置 alphaBuffer 和视频祯的相对位置：

- 0: （默认）仅视频祯，即 alphaBuffer 不和视频祯拼接。
- 1: alphaBuffer 位于视频帧的上方。
- 2: alphaBuffer 位于视频帧的下方。
- 3: alphaBuffer 位于视频帧的左侧。
- 4: alphaBuffer 位于视频帧的右侧。

<a id="a7488d82bea4d5f5078be11d0314770d8"></a>

### avsyncType [#avsynctype]

<ApiSignature labels="private">

int io.agora.rtc.VideoFrame.avsyncType

</ApiSignature>

音视频同步类型。

<a id="a74a9544479a5ec2e59b7e7ce51026ddf"></a>

### height [#height]

<ApiSignature labels="private">

int io.agora.rtc.VideoFrame.height

</ApiSignature>

视频帧的高度 (px)。

<a id="a33d8edc23aee341109a90818257ec793"></a>

### matrix [#matrix]

<ApiSignature labels="private">

float [] io.agora.rtc.VideoFrame.matrix

</ApiSignature>

[仅适用于 Texture] 一个输入的 4x4 变换矩阵，典型值为一个单位矩阵。

<a id="a825553a9d03dc96322ecc542683c4f6b"></a>

### metadataBuffer [#metadatabuffer]

<ApiSignature labels="private">

ByteBuffer io.agora.rtc.VideoFrame.metadataBuffer

</ApiSignature>

[仅适用于 Texture] The MetaData 的数据缓冲区，默认值为 NULL.

<a id="a9c16ba36f4f6455bda63dba139e7b74d"></a>

### renderTimeMs [#rendertimems]

<ApiSignature labels="private">

long io.agora.rtc.VideoFrame.renderTimeMs

</ApiSignature>

视频帧渲染的时间戳。渲染视频时可以使用该参数实现音视频同步。

<a id="aadaaf3f63c1ba6356b9eea759ef0568c"></a>

### rotation [#rotation]

<ApiSignature labels="private">

int io.agora.rtc.VideoFrame.rotation

</ApiSignature>

视频帧顺时针旋转信息。该参数的值可以设置为 0、90、180、270。

<a id="ab8406a022c397e9ad90f6e4253aa0df2"></a>

### sharedContext [#sharedcontext]

<ApiSignature labels="private">

Object io.agora.rtc.VideoFrame.sharedContext

</ApiSignature>

[仅适用于 Texture] EGLContext。

<a id="a46c9be9e65310e3a7393c93257969207"></a>

### textureId [#textureid]

<ApiSignature labels="private">

int io.agora.rtc.VideoFrame.textureId

</ApiSignature>

[仅适用于 Texture] 该视频帧的 Texture ID。

<a id="ad228d72b1c1ed784f2d4bb864ce66752"></a>

### type [#type]

<ApiSignature labels="private">

int io.agora.rtc.VideoFrame.type

</ApiSignature>

视频像素格式。

- 0：未知格式。
- 1：I420。
- 2：BGRA。
- 3：NV21。
- 4：RGBA。
- 8：NV12。
- 10：GL_TEXTURE_2D。
- 11：GL_TEXTURE_OES。
- 16：I422。

<a id="a6c9eb4e6d18b5579bd79661178e4b2a6"></a>

### uBuffer [#ubuffer]

<ApiSignature labels="private">

ByteBuffer io.agora.rtc.VideoFrame.uBuffer

</ApiSignature>

对 YUV 数据，表示 U 缓冲区的指针。

<a id="a45e5283a530766e9504d59f5b3856f23"></a>

### uStride [#ustride]

<ApiSignature labels="private">

int io.agora.rtc.VideoFrame.uStride

</ApiSignature>

对 YUV 数据，表示 U 缓冲区的行跨度。

<a id="aba18d1678c7bc5afaad49c0b6f638407"></a>

### vBuffer [#vbuffer]

<ApiSignature labels="private">

ByteBuffer io.agora.rtc.VideoFrame.vBuffer

</ApiSignature>

对 YUV 数据，表示 V 缓冲区的指针。

<a id="a00b69e058c77ab86b2a8fe067e6a3512"></a>

### vStride [#vstride]

<ApiSignature labels="private">

int io.agora.rtc.VideoFrame.vStride

</ApiSignature>

对 YUV 数据，表示 V 缓冲区的行跨度。

<a id="af578e2710f44929616c967a989e2c458"></a>

### width [#width]

<ApiSignature labels="private">

int io.agora.rtc.VideoFrame.width

</ApiSignature>

视频帧的宽度 (px)。

<a id="a394a671cb29b4bde2aebd4f4fd6ba223"></a>

### yBuffer [#ybuffer]

<ApiSignature labels="private">

ByteBuffer io.agora.rtc.VideoFrame.yBuffer

</ApiSignature>

对 YUV 数据，表示 Y 缓冲区的指针。

<a id="a8f573b6b5035e56d4df4a0b3f64fa2f9"></a>

### yStride [#ystride]

<ApiSignature labels="private">

int io.agora.rtc.VideoFrame.yStride

</ApiSignature>

对 YUV 数据，表示 Y 缓冲区的行跨度。

---

该类的文档由以下文件生成:

- VideoFrame.java
