-
-
Notifications
You must be signed in to change notification settings - Fork 5.4k
v3_EN_ClientSDK
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(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:
- iOS encoder: KSYLive_iOS
- Android encoder: KSYStreamer_Android
- Android encoder and player: KSYLive_Android
- Android player: KSYMediaPlayer_Android
- iOS player: KSYMediaPlayer_iOS
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:
- Android encoder: PLDroidMediaStreaming
- iOS encoder: PLCameraStreamingKit
- Android player: PLDroidPlayer
- iOS player: PLPlayerKit
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:
- iOS player: AlivcMediaPlayer
- Android player: AlivcMediaPlayer
- iOS encoder: SDK
- Android encoder: SDK
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:
- Android Encoder: YASEA
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.
The LIBRTMP or SRS-LIBRTMP only provides transport over RTMP.
The SRS-LIBRTMP is exported by SRS, please read WIKI。
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).
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!
Please select your language:
Please select your language:
Please select your language:
Please select your language:
Please select your language: