-
-
Notifications
You must be signed in to change notification settings - Fork 5.4k
v4_EN_ClientSDK
HOME > EN > 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.
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.
LFLiveKit is a encoder for iOS from LaiFeng.
Remark: The lf.swift project is a iOS library, but seems not popular as LFLiveKit.
ijkplayer is a player from bilibili, for both Android and iOS.
The LIBRTMP or SRS-LIBRTMP only provides transport over RTMP.
Although the number of PC users are smaller, there are still some use scenarios for OBS or OBS Studio.
Remark: For publishing by OBS, the Stream Key should be filled by stream name.
The players for PC platform, either Flash(RTMP, FLV, HLS) or MSE(H5, DASH, videojs, FLV).
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: