EncodedVideoFrameInfo
外部编码视频帧的信息。
Java
public class EncodedVideoFrameInfo {
public int codecType;
public int width;
public int height;
public int framesPerSecond;
public int frameType;
public int rotation;
public int trackId;
public long captureTimeMs;
public int uid;
public int streamType;
public EncodedVideoFrameInfo() {
codecType = Constants.VIDEO_CODEC_H264;
width = 0;
height = 0;
framesPerSecond = 0;
frameType = Constants.VIDEO_FRAME_TYPE_BLANK_FRAME;
rotation = Constants.VIDEO_ORIENTATION_0;
trackId = 0;
captureTimeMs = 0;
uid = 0;
streamType = Constants.VIDEO_STREAM_HIGH;
}
@CalledByNative
public EncodedVideoFrameInfo(int codecType, int width, int height, int framesPerSecond,
int frameType, int rotation, int trackId, long captureTimeMs, int uid, int streamType) {
this.codecType = codecType;
this.width = width;
this.height = height;
this.framesPerSecond = framesPerSecond;
this.frameType = frameType;
this.rotation = rotation;
this.trackId = trackId;
this.captureTimeMs = captureTimeMs;
this.uid = uid;
this.streamType = streamType;
}
@CalledByNative
public int getCodecType() {
return codecType;
}
@CalledByNative
public int getWidth() {
return width;
}
@CalledByNative
public int getHeight() {
return height;
}
@CalledByNative
public int getFramesPerSecond() {
return framesPerSecond;
}
@CalledByNative
public int getFrameType() {
return frameType;
}
@CalledByNative
public int getRotation() {
return rotation;
}
@CalledByNative
public int getTrackId() {
return trackId;
}
@CalledByNative
public long getCaptureTimeMs() {
return captureTimeMs;
}
@CalledByNative
public int getUid() {
return uid;
}
@CalledByNative
public int getStreamType() {
return streamType;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("codecType=").append(codecType);
sb.append(" width=").append(width);
sb.append(" height=").append(height);
sb.append(" framesPerSecond=").append(framesPerSecond);
sb.append(" frameType=").append(frameType);
sb.append(" rotation=").append(rotation);
sb.append(" trackId=").append(trackId);
sb.append(" captureTimeMs=").append(captureTimeMs);
sb.append(" uid=").append(uid);
sb.append(" streamType=").append(streamType);
return sb.toString();
}
}
codecType
视频编解码类型:
- VIDEO_CODEC_VP8 (1):VP8。
- VIDEO_CODEC_H264 (2):H.264。
- VIDEO_CODEC_H265 (3):(默认)H.265。
信息
在某些场景(如采集到的视频流分辨率过低、设备性能有限)下,SDK 会自动调整为 H.264 编码格式。
width
视频帧的宽度 (px)。
height
视频帧的高度 (px)。
framesPerSecond
每秒的视频帧数。
当该参数不为 0
时,你可以用它计算外部编码视频帧的 Unix 时间戳。
frameType
视频帧的类型:
- 0:(默认)VIDEO_FRAME_TYPE_BLANK_FRAME,空白帧。
- 3:VIDEO_FRAME_TYPE_KEY_FRAME,关键帧。
- 4:VIDEO_FRAME_TYPE_DELTA_FRAME,Delta 帧。
- 5:VIDEO_FRAME_TYPE_B_FRAME,B 帧。
- 6:VIDEO_FRAME_TYPE_UNKNOW,未知。
rotation
视频帧的旋转信息,取值如下:
- 0:(默认)不旋转。
- 90:顺时针旋转 90 度。
- 180:顺时针旋转 180 度。
- 270:顺时针旋转 270 度。
trackId
预留参数。
轨道 ID。适用于频道中有多个视频轨道的场景。
captureTimeMs
采集外部编码视频帧的 Unix 时间戳 (ms)。
uid
推送外部编码视频帧的用户 ID。
streamType
视频流类型。
- VIDEO_STREAM_HIGH (0):视频大流,即高分辨率、高码率视频流。
- VIDEO_STREAM_LOW (1):视频小流,即低分辨率、低码率视频流。