This topic provides an overview of Push SDK and describes the features, benefits, scenarios, and workflow of Push SDK.
Push SDK of Alibaba Cloud is a stream ingest development tool for ApsaraVideo Live clients. This SDK is based on the powerful Content Delivery Network (CDN) and audio-video real-time communication technologies of Alibaba Cloud. It provides easy-to-use APIs, smooth and network-adaptive playback experience, multi-node-based low-latency optimization, effective real-time retouching, and other audio-video live streaming technology services. Push SDK is free of charge. It reduces architectural design complexity and maintenance costs, which allows you to focus on improving your business logic implementation and user experience.
It integrates the smart retouching feature of Queen SDK and provides advanced retouching effects that are based on facial recognition. For example, you can use Push SDK to implement face slimming, face resizing, eye widening, and face whitening based on facial recognition.
To use the smart retouching feature, you need to apply for a license. For information about smart retouching and how to enable this feature, see the Queen SDK documentation.
Stream ingest over Real-Time Messaging Protocol (RTMP)
Supports stream ingest over RTMP, and stream pulling over RTMP, Flash Video (FLV), HTTP Live Streaming (HLS), and Advanced Real-Time Communication (ARTC). Supports the resolution from 180p to 720p. We recommend that you set the resolution to 540p.
Web Real-Time Communications (WebRTC) stream ingest
Supports stream ingest over ARTC based on User Datagram Protocol (UDP).
Live stream recording
Push SDK for iOS: supports recording live streams by using ReplayKit. Push SDK for Android: supports recording mixed live streams from cameras.
Supports Narrowband HD™, which provides better image quality at the same bitrate.
Supplemental enhancement information (SEI) insertion
Supports inserting SEI to live streams. You can use players to parse SEI to implement features that are required by your business.
Allows you to add or remove watermarks with animated effects to or from live streams in real time.
Ingest of external audio and video streams
Supports ingesting external audio and video streams for live streaming.
Ingest of images
Allows you to ingest an image after you move the app to the background or when the network connection is poor.
Audio and video coding
Supports software and hardware encoding of H.264 video files and Advanced Audio Coding (AAC) audio files.
Supports advanced retouching effects based on facial recognition, including skin smoothing, skin brightening, face slimming, face resizing, and eye widening.
Supports automatic bitrate adjustment during stream ingest based on network conditions. Multiple modes are supported to ensure smooth live streaming.
Supports automatic resolution adjustment during stream ingest based on network conditions. This adjustment is supported only by the quality-first mode and the fluency-first mode.
Background stream ingest
Ensures continuous stream ingest during the switch between the foreground and background. When you switch to the foreground, live streaming continues.
Stereo stream ingest
Supports stereo stream ingest in mono or binaural mode.
Allows you to add up to three watermarks. You can change the position and size of the watermarks.
Stream ingest in landscape mode
Supports stream ingest in portrait, landscape left, and landscape right modes.
Settings of stream collection parameters
Supports multiple stream collection parameters, such as the resolution, frame rate, audio sample rate, group of pictures (GOPs), and bitrate. You can set these parameters to meet various stream collection requirements.
Stream ingest in mirroring mode
Allows you to mirror the video images that are collected from cameras and ingest-streams. By default, the mirroring feature must be enabled for front cameras.
Audio-only stream ingest
Supports the collection and ingest of only audio streams to save bandwidth and traffic in audio-only scenarios.
Muted stream ingest
Allows you to mute the microphone and ingest only video images.
Allows you to enable or disable the autofocus feature. You can also manually set the focus point.
Allows you to scale the collected images based on the maximum zoom ratio supported by the camera.
Camera switching and flash
Allows you to switch between the front camera and the rear camera, and turn on or turn off the flash when you use the rear camera.
Supports background music. You can start, stop, pause, resume, or loop the playback of background music.
Allows you to mix music with vocals and adjust the volume of music and vocals.
Supports in-ear monitoring. For example, when streamers are singing with a headset, they can hear their voice from the headset in real time. This meets the live streaming requirements in KTV scenarios.
Reduces noise that comes from the environment and mobile phones.
Ease of integration
Push SDK provides unified error codes and interfaces that work in synchronous or asynchronous manners for Android and iOS apps. This supports integration requirements in different development architectures. Push SDK also provides comprehensive API references and demos for your information.
Push SDK delivers an all-in-one live streaming solution that integrates video stream collection, rendering, stream ingest, transcoding, distribution, and playback. Push SDK streamlines adaptive-bitrate stream ingest on clients, Narrowband HD™ transcoding in the cloud, and instant loading on clients to provide one-stop quality services.
High performance and low latency
Push SDK provides industry-leading solutions to the stall ratio of stream ingest, CPU and memory consumption, power consumption, and heat generation. More than 2,500 CDN nodes in global regions ensure low latency.
WebRTC stream ingest
Push SDK provides WebRTC stream ingest based on the UDP. You can add domains for WebRTC stream ingest in the console as needed. WebRTC stream ingest can better prevent stuttering in poor upstream networks.
Scenario 1: Educational live streaming
Description: Educational live streaming focuses on the interaction between students and teachers. After students and teachers log on to a live classroom, they can use Message Service of Alibaba Cloud to interact with each other in real time. Push SDK enables teachers to answer questions raised by students anytime and anywhere, in a timely and effective manner. Push SDK provides cloud-based recording and transcoding features. Therefore, students can replay class video recordings at any time to review the knowledge and enhance their learning.
Usage instructions: Activate ApsaraVideo Live and enable the recording and transcoding features. Integrate Push SDK and Message Service SDK to implement the live streaming class and question-and-answer (Q&A) services. After you integrate ApsaraVideo Player SDK, students can watch live streams or replay recordings on the client to enjoy low-latency and interactive live streaming.
Scenario 2: Entertainment live streaming
Description: Due to the convenience of mobile phones, entertainment live streaming is a growing trend among users. Streamers require retouching and filter effects during live streaming. In addition, streamers interact with viewers by means of real-time chatting, liking, and rewarding activities to improve their popularity and program playability. However, the content must be strictly regulated to detect pornography or terrorism because entertainment live streaming is easy to access on mobile phones. You can use the live stream moderation feature to reduce review costs.
Usage instructions: Activate ApsaraVideo Live and enable the recording and pornography detection features. Integrate Push SDK and enable the retouching feature to implement stream ingest. Integrate Message Service of Alibaba Cloud to implement interactive chatting. This allows viewers to send text messages, voice messages, emojis, and images in the chat panel during live streaming. You can also build a rewarding system and use instant messaging to support payment. After you integrate the ApsaraVideo Player SDK, viewers can watch live streams or replay recordings on the client.
Scenario 3: Game live streaming
Description: To implement game live streaming on mobile phones, use the screen recording technology to merge the game stream and the stream that is collected by the camera. Then, use Push SDK to ingest the merged streams. Therefore, screen recording must be enabled when you use Push SDK to support game live streaming. The interaction between streamers and viewers in game live streaming is similar to that in entertainment live streaming. You can use Message Service SDK of Alibaba Cloud to implement interaction features, such as chatting, liking, and rewarding. You can also use the live stream recording feature to replay clips.
Usage instructions: Activate ApsaraVideo Live and enable live recording. Integrate Push SDK and enable the live recording feature to implement stream ingest. Integrate Message Service of Alibaba Cloud to implement interactive chatting. This allows viewers to send messages, emojis, and images in the chat panel during live streaming. You can also build a rewording system and use instant messaging to support payment. Integrate ApsaraVideo Player SDK to achieve instant loading and dynamic frame synchronization if you want viewers to watch or replay a live stream.
Workflow of Push SDK
Your app initiates a request to the App Server to obtain the ingest URL.
The App Server constructs the ingest URL based on the specified rules and returns the ingest URL to your app.
Your app passes the ingest URL to Push SDK and uses Push SDK to start stream ingest.
Push SDK pushes live streams to CDN nodes.
Support for developers
If you have any questions or suggestions about Push SDK, join the developer ecosystem group of Push SDK. Search for group number 32825314 on DingTalk or scan the following QR code.