Skip to content

v3_EN_ClientSDK

winlin edited this page Apr 21, 2017 · 28 revisions

HOME > EN(3.0) > Client SDK

The workflow of live streaming:

+---------+      +-----------------+       +---------+
| Encoder +-->---+ SRS/CDN Network +--->---+ Player  |
+---------+      +-----------------+       +---------+

The architecture of Encoder(publish/push stream) and Player(play/pull stream):

+-------------------------------------------+
|           Device(Out/In YUV/PCM)          |
+-------------------------------------------+
|   Codec(YUV/PCM to/from H.264/AAC stream) |
+-------------------------------------------+
|   Muxer(H.264/AAC to/from FLV/MP4/HLS)    |
+-------------------------------------------+
|          Transport(RTMP/HTTP/UDP)         |
+-------------------------------------------+

There are two different types of codec, one is hardware encoder, and the other is software encoder. Hardware encoder is inside the mobile device; while software encoder is FFMPEG/libx264. The performance of hardware encoder is high; while there are more available parameters expored in software encoder.

KSVC

KSVC(Kingsoft Video Cloud) is mobile SDK of ksyun.

The basic features of encoder:

Android iOS Codec Transport Hardware
Encoder
Software
Encoder
Lowlatency
YES YES H.264+AAC
H.265
RTMP YES YES NO

The advanced features of encoder:

美颜 横竖屏 摄像头
切换
对焦 动态码率 水印 贴纸
YES YES YES YES YES YES YES

Other features of encoder:

  • 美声。
  • 背景音乐。
  • 混音。

H.265是单独的项目,参考ks265codec

The latency is only refined in encoder KSYLive_Android.

The basic features of player:

Android iOS Codec Transport Lowlatency
YES YES H.264+AAC RTMP/FLV/HLS YES

The advanced features of player:

秒开 硬件
解码
软件
解码
音量 缩放 截图 旋转 HTTPS 弱网
丢帧
YES YES YES YES YES YES YES NO NO

Other features of player:

  • H.265
  • 反交错

All SDKs are listed bellow:

PILI

PILI engineering is mobile SDK of qiniu.

The basic features of encoder:

Android iOS Codec Transport Hardware
Encoder
Software
Encoder
Lowlatency
YES YES H.264+AAC RTMP YES YES NO

The advanced features of encoder:

美颜 横竖屏 摄像头
切换
对焦 动态码率 水印 贴纸
YES YES YES YES YES NO NO

The basic features of player:

Android iOS Codec Transport Lowlatency
YES YES H.264+AAC RTMP/FLV/HLS NO

The advanced features of player:

秒开 硬件
解码
软件
解码
音量 缩放 截图 旋转 HTTPS 弱网
丢帧
YES YES YES YES YES YES YES YES NO

All SDKs are listed bellow:

ALIYUN

ALIYUN provides encoder and player SDK, read here. Although SDK is not open-source, but it fine to publish/play stream to any server.

The basic features of encoder:

Android iOS Codec Transport Hardware
Encoder
Software
Encoder
Lowlatency
YES YES H.264+AAC RTMP YES NO NO

The advanced features of encoder:

美颜 横竖屏 摄像头
切换
对焦 动态码率 水印 贴纸
NO NO NO NO NO NO NO

The basic features of player:

Android iOS Codec Transport Lowlatency
YES YES H.264+AAC RTMP/FLV/HLS YES

The advanced features of player:

秒开 硬件
解码
软件
解码
音量 缩放 截图 旋转 HTTPS 弱网
丢帧
YES NO NO NO NO NO NO YES YES

All SDKs are listed bellow:

YASEA

YASEA is advanced SRS-SEA. YASEA can be used in product, while SRS-SEA is only experimental.

The basic features of encoder:

Android iOS Codec Transport Hardware
Encoder
Software
Encoder
Lowlatency
YES NO H.264+AAC RTMP/FLV YES YES NO

The advanced features of encoder:

美颜 横竖屏 摄像头
切换
对焦 动态码率 水印 贴纸
YES NO NO NO NO NO NO

Other features of encoder:

  • 回声抑制。

Requirement: Android SDK level 16+, Android 4.1, the JELLY_BEAN

All SDKs are listed bellow:

EXOPlayer

The EXOPlayer is a Android player which support HTTP-FLV and HLS.

The basic features of player:

Android iOS Codec Transport Lowlatency
YES NO H.264+AAC FLV/HLS YES

Using encoder YASEA and player EXOPlayer, we can make a Android solution for live streaming around 3s latency.

LIBRTMP

The LIBRTMP or SRS-LIBRTMP only provides transport over RTMP.

The SRS-LIBRTMP is exported by SRS, please read WIKI

PC

Although the number of PC users are smaller, there are still some use scenarios for OBS or OBS Studio.

The players for PC platform, either Flash(RTMP, FLV, HLS) or MSE(H5, DASH, videojs, FLV).

Low Latency

The low latency around 1s workflow is verified:

+-----------------+         +-------+         +-----------+
| OBS/FMLE/FFMPEG +---->----+  SRS  +----->---+   Flash   +
+-----------------+         +-------+         +-----------+

But when encoder and player replace by Android/iOS, none of SDK consider about the latency, what a fuck!

Winlin 2017.4

Welcome to SRS wiki!

SRS 5.0 wiki

Please select your language:

SRS 4.0 wiki

Please select your language:

SRS 3.0 wiki

Please select your language:

SRS 2.0 wiki

Please select your language:

SRS 1.0 wiki

Please select your language:

Clone this wiki locally