Windows 直播推流 SDK 简介

网易视频云直播推流 Windows SDK 是网易官方推出的 Windows 平台上用于推流的软件开发工具包,提供简单便捷的开发接口,帮助开发者在 Windows 平台上实现直播推流功能。

功能特性

SDK 架构

直播推流 SDK 由如下图所示的结构组成。 其中,实线框是直播的主要模块,包括音视频采集、处理、编码和打包发送。虚线框是辅助模块,关闭后不影响直播功能。

pic

网络信息统计功能帮助开发者实现网络状况的实时监测,尤其在弱网络环境下,能够快速准确的探知网络可用带宽等信息,帮助开发者调整产品策略,改善产品的用户体验。

组件及资源

开发者需要将直播推流 SDK 集成到应用中,包括静态库、动态库文件和相关的头文件。如下图所示:

pic

直播推流 SDK 包含 include、lib和demo三个部分,在网易视频云官网可以下载 Demo 和 SDK 包


SDK
│   lib
│   ├──LSMediaCapture.lib:接口静态库,包含所有接口函数的声明。链接此静态库即可在程序启动时静态加载LSMediaCapture.dll,若想动态加载,请不要链接此静态库。
│   ├──LSMediaCapture.dll:接口实现模块,包含所有接口函数的实现。应用程序只需加载此动态库就会自动加载其他模块。
│   ├──cos.dll:平台相关的基础框架库,包含内存池、线程池、同步锁、时钟、定时器、套接字、日志等基础功能的实现。
│   ├──avdevice.dll:音视频设备相关模块,负责对各种音视频源的管理和数据采集。
│   ├──cmps.dll:音视频数据前处理模块,负责对采集到的音频数据降噪、重采样、通道转换、混音,以及对采集到的视频数据进行合流。
│   ├──clss.dll:音视频编码模块,负责对前处理之后的音视频数据进行编码。
│   ├──engine.dll:直播推流引擎模块,负责将编码后的数据推流到RTMP服务器。
│   ├──DXGIScreenCapture.dll:D3D11截屏模块,Windows 8及以上系统有效。
│   ├──D3DX9_43.dll:D3D9动态库。
│   ├──libopenh264.dll:视频H.264编码库。
│   ├──libx264-120.dll:视频H.264编码库。
│   ├──libfdk-aac-0.dll:音频aac编码库。
│   ├──libeay32.dll:openssl动态库。
│   ├──ssleay32.dll:openssl动态库。
│   ├──libgcc_s_dw2-1.dll:MinGW gcc动态库。
│   ├──libstdc++-6.dll:MinGW stdc++动态库。
│   ├──libwinpthread-1.dll:MinGW winpthread动态库。
│   ├──msvcr120.dll:运行时库。
│   ├──msvcp120.dll:运行时库。
├── include
│   ├── nlss_api.h:总接口头文件,包含初始化/反初始化、启动/停止前处理、开始/结束推流等接口。
│   ├── nlss_childvideo_api.h:子视频相关接口头文件。
│   ├── nlss_childaudio_api.h:子音频相关接口头文件。
│   ├── nlss_define.h:全局宏定义头文件。
│   ├── nlss_type.h:类型定义头文件
└──

接口调用说明

主要接口简介:

注意:接口调用顺序基本如上面列表从上到下的顺序。其中Nlss_Create -> Nlss_InitParam -> Nlss_Start -> Nlss_Stop -> Nlss_UninitParam -> Nlss_Destroy的调用顺序是固定的。视频预览接口(Nlss_StartVideoPreview / Nlss_StopVideoPreview)、直播推流接口(Nlss_StartLiveStream / Nlss_StopLiveStream)以及所有的子视频、子音频接口必须在Nlss_Start和Nlss_Stop之间调用,但它们相互之间的调用顺序不限。

功能相对的接口需要成对调用,例如: