快直播传输层SDK提供基于原生WebRTC升级扩展的传输能力,用户仅需对已有播放器进行简单改造,即可接入快直播。在完全兼容标准直播的推流、云端媒体处理能力的基础上,实现高并发低延迟直播,帮助用户实现从现有的标准直播平滑地迁移到快直播上来。也可以帮助用户在现有RTC场景中快速实现低成本的大房间低延迟旁路直播。
快直播传输层SDK主要功能:
- 音视频拉流,兼具优异的低延迟性能和抗弱网能力
- 视频支持H.264、H.265、H.266和AV1,支持B帧,视频输出格式为视频帧裸数据(H.264/H.265/H.266为AnnexB,AV1为OBU)
- 音频支持AAC和OPUS,音频输出格式为音频帧裸数据(启用内部播控时音频输出为PCM S16)
- 支持Android、iOS、Windows、Linux和Mac平台
- 创建快直播连接
LEB_EXPORT_API LebConnectionHandle* OpenLebConnection(void* context, LebLogLevel loglevel);
- 注册回调函数
LEB_EXPORT_API void RegisterLebCallback(LebConnectionHandle* handle, const LebCallback* callback);
- 开始连接拉流
LEB_EXPORT_API void StartLebConnection(LebConnectionHandle* handle, LebConfig config);
- 停止连接
LEB_EXPORT_API void StopLebConnection(LebConnectionHandle* handle);
- 关闭连接
LEB_EXPORT_API void CloseLebConnection(LebConnectionHandle* handle);
typedef struct LebCallback {
// 日志回调
OnLogInfo onLogInfo;
// 视频信息回调
OnVideoInfo onVideoInfo;
// 音频信息回调
OnAudioInfo onAudioInfo;
// 视频数据回调
OnEncodedVideo onEncodedVideo;
// 音频数据回调
OnEncodedAudio onEncodedAudio;
// MetaData回调
OnMetaData onMetaData;
// 统计信息回调
OnStatsInfo onStatsInfo;
// 错误回调
OnError onError;
} LebCallback;
Notes:详细数据结构定义请见头文件leb_connection_api.h
SDK提供FFmpeg webrtc demuxer源码:webrtc_demuxer.c,可以实现FFmpeg快直播拉流和媒体处理,以及ffplay播放
快直播FFmpeg配置编译可以参考: linux_build_guide, mac_build_guide
- 外部播控
具体可以参考:基于ijkplayer的快直播传输层SDK应用实践
- 内部播控