What’s video API?
Video API is an interface devoted to offering audio and video transmission providers, primarily divided into two sorts: static video API and dwell video API.
Static Video API
Static Video API is an API that gives video file play providers. Service suppliers supply video file cloud storage and CDN distribution providers and supply video providers by protocol interfaces reminiscent of HTTP and RTMP.
For instance, YouTube and Instagram use Static Video API.
Dwell Video API
For instance, Dwell.me, Yalla, and Uplive use the Dwell Video API.
The static video API is simple to grasp and pulls video recordsdata from the cloud by the streaming protocol.
The dwell video API is extra sophisticated. How does it make sure the video might be transmitted to the opposite finish shortly, easily, and clearly?
On this article, we are going to introduce the logic behind the dwell video API intimately.
What Can The Video API Do?
The dwell video API software is changing into extra in depth with the continual enchancment of community bandwidth and machine efficiency. It makes many eventualities doable, reminiscent of:
- Dwell
- On-line training
- Video conferencing
- Telemedicine
- Video calls
- Multiplayer
What Occurs After The Video API?
For the dwell video API, it’s vital to make sure that the video information can full the end-to-end transmission inside 500ms and, concurrently, assure the readability of the video image and the stream of the decision.
Subsequently, the dwell video API wants to make sure that the audio and video information can understand end-to-end information transmission in a quick, giant and secure method. A fancy system is required to make sure the provision of the dwell video API.
As proven within the determine, the dwell video API primarily layered the capabilities of 6 modules:
1. Audio and video seize
Audio and video seize is the supply of audio and video information collected through cameras, microphones, screens, video recordsdata, recording recordsdata, and different channels.
It entails utilizing coloration areas, reminiscent of RGB and YUV, and extracting audio options, reminiscent of sampling price, variety of channels, bit price, audio body, and so forth.
2. Audio and video preprocessing
The audio and video preprocessing are primarily for enterprise eventualities, and the collected information is processed as soon as and once more to optimize the client expertise.
For instance:
- Video information processing for magnificence, filters, particular results, and so forth.
- Audio information processing consists of voice change, reverberation, echo cancellation, noise suppression, quantity achieve, and so forth.
3. Audio and video encoding
Audio and video coding ensures that audio and video information might be transmitted shortly and safely on the community.
Generally used encoding codecs are Video encoding format: H264, H265 Audio coding format: OPUS, AAC.
4. Audio and video transmission
Audio and video transmission is essentially the most complicated module within the video API. To make sure that the audio and video information might be transmitted to the alternative finish shortly, stably, and with top quality in a fancy community surroundings, streaming protocols reminiscent of RTP, HTTP-FLV, HLS, and RTMP can be utilized.
Varied anomalies reminiscent of information redundancy, loss, out-of-order, stream management, adaptive body price, decision, jitter buffering, and so forth., should be resolved utilizing a number of algorithms.
So whether or not video API is price selecting, we have to deal with whether or not the producer has excellent audio and video transmission benefits.
5. Audio and video decoding
Audio and video decoding implies that after the audio and video information is transmitted to the receiving finish, the receiving finish must decode the information in keeping with the acquired information encoding format.
There are two video decoding strategies, {hardware} decoding, and software program decoding. Software program decoding usually makes use of the open supply library FFMpeg. Audio decoding solely helps software program decoding; use FDK_AAC or OPUS decoding in keeping with the audio encoding format.
6. Audio and video rendering
Audio and video rendering is the final step within the video API processing course of. This step appears to be quite simple. You solely must name the system interface to render the information to the display screen.
Nevertheless, one should course of a lot logic to align the video image with the audio. Nonetheless, now there’s a normal processing technique to make sure the synchronization of the audio and video.
Methods to use ZEGOCLOUD video API
Constructing a whole set of real-time audio and video methods is complicated work. However, many Video APIs assist us remedy the underlying complicated operations. We solely must deal with the upper-level enterprise logic.
The next will introduce the best way to use the ZEGOCLOUD Video API to implement the video calling perform.
1. Implementation course of
The next diagram exhibits the fundamental technique of Consumer A taking part in a stream printed by Consumer B:
The next sections clarify every step of this course of in additional element.
2. Non-compulsory: Create the UI
Earlier than making a ZegoExpressEngine
occasion, we suggest you add the next UI parts to implement primary real-time audio and video options:
- A view for native preview
- A view for distant video
- An Finish button
3. Create a ZegoExpressEngine occasion
To create a singleton occasion of the ZegoExpressEngine
class, name the createEngine
technique with the AppID of your mission.
4. Log in to a room
To log in to a room, name the loginRoom
technique.
Then, to hear for and deal with varied occasions which will occur after logging in to a room, you’ll be able to implement the corresponding occasion callback strategies of the occasion handler as wanted.
5. Begin the native video preview
To start out the native video preview, name the startPreview
technique with the view for rendering the native video handed to the canvas
parameter.
You should utilize a SurfaceView
, TextureView
, or SurfaceTexture
to render the video.
6. Publish streams
To start out publishing a neighborhood audio or video stream to distant customers, name the startPublishingStream
technique with the corresponding Stream ID handed to the streamID
parameter.
Then, to hear for and deal with varied occasions which will occur after stream publishing begins, you’ll be able to implement the corresponding occasion callback strategies of the occasion handler as wanted.
7. Play streams
To start out taking part in distant audio or video stream, name the startPlayingStream
technique with the corresponding Stream ID handed to the streamID
parameter and the view for rendering the video handed to the canvas
parameter.
You should utilize a SurfaceView
, TextureView
, or SurfaceTexture
to render the video.
8. Cease publishing and taking part in streams
To cease publishing a neighborhood audio or video stream to distant customers, name the stopPublishingStream
technique.
If native video preview is began, name the stopPreview
technique to cease it as wanted.
To cease taking part in a distant audio or video stream, name the stopPlayingStream
technique with the corresponding stream ID handed to the streamID
parameter.
9. Log off of a room
To log off of a room, name the logoutRoom
technique with the corresponding room ID handed to the roomID
parameter.
Enroll with ZEGOCLOUD, get 10,000 minutes free each month.
Do you know? 👏
Like and Observe is the most important encouragement to me
Observe me to be taught extra technical data
Thanks for studying 🙂
Study extra
This is without doubt one of the dwell technical articles. Welcome to different articles: