简介

百度云 Android 推流 SDK (以下简称“推流 SDK”) 是百度官方推出的 Android 平台用于推流的软件开发工具包,为您提供简单、便捷的开发接口,助您在基于 Android 4.2及以上版本的移动设备上实现直播推流功能。

优势

推流 SDK 有诸多优势:

  • 压缩比例大,带宽占用小
  • 硬件兼容性好,可支持 arm64 指令集
  • 良好的软件版本兼容性,最低可支持 Android 4.2版本

特点

  • 支持主流 RTMP 服务器

    支持目前几乎所有 RTMP 服务器 (simple-rtmp-server、crtmpserver、FMS 等)。

  • 支持所有的 RTMP 协议

    支持所有 RTMP 协议及变种 (RTMP、RTMPT、RTMPE、RTMPS、RTMPTE、RTMPTS 等)。

  • 性能强大

    资源 (CPU/内存) 占用率低,压缩比例大,延时小。

  • 完备的编程接口提供极大的灵活性

    通过提供完备的编程接口,方便您在采集音视频过程中对相机的对焦模式、测光模式等参数进行灵活控制。同时提供开发示例,为您说明各接口调用细节。

  • 高兼容性、稳定性和快速响应

    软编码支持 Android 4.2及以上平台,硬编码支持 Android 4.3 及以上平台,结合百度开发云直播服务,可实现端到端平均仅2秒延时的实时直播功能。

组件及资源

推流 SDK 的完整下载包中包含 lib、doc、demo 三部分:

  • lib 目录

    存放推流 SDK 的 Java 依赖包和两类底层动态链接库:

    • armeabi-v7a:适配 armv7/armv7a 指令集的底层动态链接库
    • arm64-v8a:适配 arm64 指令集的底层动态链接库

    具体文件如下表所示:

文件名 含义
BRecorder.jar Java 依赖包,处理音视频采集逻辑
librecorder.so 处理音视频数据的动态链接库,同时提供 JNI 接口
libffmpeg.so FFMpeg 动态链接库,处理编码与推流逻辑
librtmp_jni.so librtmp 动态链接库,处理 RTMP 协议交互
  • doc 目录

    存放 BRecorder.jar 依赖包的 javadoc 文档,该文档详细说明了推流 SDK 各接口 API 类的用法。

  • demo 目录

    存放 Android 示例工程,展示了如何使用 LiveSession 类来实现 Android 端推流应用。

解压后的目录结构如下所示:

Baidu-Capture-SDK-Android-x.x.x
       │
       ├── libs
       │    │
       │    ├── BRecorder.jar          // 推流 SDK Java依赖包
       │    │
       │    ├── armeabi-v7a            // armv7/armv7a 架构的动态链接库
       │    │    ├── librecorder.so
       │    │    ├── libffmpeg.so
       │    │    └── librtmp_jni.so
       │    │
       │    └── arm64-v8a              // arm64 架构的动态链接库
       │         ├── librecorder.so
       │         ├── libffmpeg.so
       │         └── librtmp_jni.so
       │
       ├── doc                         // BRecorder.jar 对应的 javadoc 文档
       │
       └── demo                        // 示例工程,用于演示推流 API 的使用
            ├── res                   // 工程资源文件目录
            ├── libs                  // Java 依赖包以及动态链接库文件目录
            ├── src                   // 源代码文件目录
            └──  ... ...              // 其他工程文件