Skip to content

encoder

buliaoyin edited this page Nov 21, 2017 · 7 revisions

自定义编码器

SDK提供了通用音视频编码器的基类实现(VideoBufEncoderBase, AudioEncoderBase),开发者可以通过扩展这些基类, 实现几个基础接口,即可将自己的编码器接入到SDK中。

具体应用示例可参考 x264encoderfdkaacencoder.

需要实现、调用的接口说明

  • 开启编码器

    视频编码器实现 int doStart(VideoEncodeConfig config) 接口, 音频编码器实现 int doStart(AudioEncodeConfig config) 接口。
    在该接口实现中,需要根据输入的config参数来配置并打开编码器。

  • 停止编码器

    实现 void doStop() 接口,关闭编码器。

  • 动态码率调整

    视频编码器需实现 void doAdjustBitrate(int bitrate) 接口, 在编码过程中动态调整视频码率以实现码率自适应的特性。

  • Flush编码器数据

    实现 doFlush() 接口,清空当前编码器中的残留的已编码数据。

  • 送入原始音视频数据

    视频编码器实现 int doEncode (ImgBufFrame frame) 接口,音频编码器实现 int doEncode (AudioBufFrame frame) 接口。
    在该接口实现中,需要将参数中传递的原始音视频帧数据送给编码器。

  • 发送编码后的音视频数据

    编码器获取到一帧编码后的数据后,需要调用 sendEncodedPacket(ByteBuffer data, long dts, long pts, int flags) 接口来将其发送至下一级模块。

1. 集成指南

2. 基本功能

2.1 采集

2.2 视频处理

2.3 音频处理

3. 开放接口定义

Clone this wiki locally