We provide services for many real-time interactive scenarios. In some scenarios, users not only need to interact in real time, but also need to record the process of interaction. So what are the characteristics of a good recording solution?
Before answering this question, let’s talk about why customers use recording. Generally speaking, there are three main reasons why users use the recording function:
1. Quality inspection. example, in an education scenario, it is necessary to check the quality of the course through playback recording. In a social live broadcast or financial dual recording scenario, it is necessary to retain the recorded video for compliance review.
2. Residence permit. such as education, medical treatment, audio and video customer service, etc., it is necessary to file a certificate to deal with possible disputes. In this scenario, the core demand for the recording solution is content integrity, and even second-level video loss cannot be tolerated.
3. Play back. example, in an education scene or a live broadcast scene, the user wants to watch the playback. This is the main reason why recording is used in most real-time interactive scenes.
So in this scenario, what is a good recording solution?
The recording scheme can be measured from five dimensions:
- recording effect : Need to restore the real interactive scene, including all elements such as audio and video, courseware, whiteboard, chat information and so on. At the same time, it should not cause any negative impact on the host's audio and video interactive experience.
- integration difficulty : the simpler the better, it is better not to develop.
- waiting time : the shorter the waiting time, the better, and it is best to play back immediately after the recording ends.
- file compatibility : Any platform and any browser can be played.
- Convenience of file migration : The migration process such as file download and upload should be very simple, which is convenient for recording file management.
In order to solve the recording needs of various scenes, there are currently two more mainstream solutions.
1. Audio, video, whiteboard and other elements are recorded separately, and then spliced and played back
The main idea is to separately record audio and video, whiteboard, courseware, PPT, chat content, etc., and then replay them separately after the recording is over, and align the playback progress through the timestamp. The advantage of this scheme is that the whiteboard, courseware, chat content, etc. are all played back in the form of data, which can retain the original real interactive effects. For example, the PPT can be turned over separately, which is more flexible. But its shortcomings are also very obvious:
1. The integration is difficult. needs to develop audio and video recording, whiteboard recording, and chat content recording at the same time. In particular, different elements need to be replayed through time stamp alignment. To achieve a very good synchronization effect, more development effort is required.
2. The playback compatibility is limited. can only be played back by a special player, which is not compatible with mainstream players.
3. Long waiting time. In order to solve the playback compatibility problem, it is often necessary to perform offline processing after the recording is finished, and convert it into a complete MP4 file. This process takes a long time to wait and brings additional transcoding costs.
2. Local client screen recording
Whether it is recording on the local client or sending the screen stream to the cloud for recording through screen sharing, the essence is to capture the screen content on the user's local client. The advantage of this scheme is that what you see is what you get, and the playback effect can be consistent with the real interactive scene. But its shortcomings are quite obvious:
1. Affect the RTC interactive experience of local users. Local capture of screen content will greatly consume the computing resources of the terminal device. If it is to be uploaded in real time, it will also occupy the upstream bandwidth resources of the host. These will affect the audio and video call experience of local users and even cause serious consequences such as freezing and blurring. , This is a fatal flaw that is unacceptable for a real-time interactive scene.
2. The integration is difficult. developers need to develop on the end, need to solve the problems of local storage and upload of files, and often need to deal with complex mixing problems, and the integration threshold is very high.
In addition to the above two mainstream ideas, are there other better solutions?
Voice Network Agora proposed a third new idea: page recording
Page recording refers to the simultaneous recording of audio and video, whiteboards, courseware, and chat information on the server side by means of web page rendering to restore the real interactive scene. The principle is: the developer initiates a recording request through the RESTful API, and sends the URL of the page to be recorded to the Agora recording service in the form of request parameters. The Agora recording service will open the web page and record the screen in real time to generate MP4. The file is uploaded to the designated third-party cloud storage platform. You can click "Read the original text" to browse the specific pages of the recorded documents.
Judging the dimensions according to the previous recording plan, compare the page recording with the recording plan we listed before:
- In terms of integration, request recording is initiated through Restful API, which is simple and easy to use.
- The recording effect achieves what you see is what you get, and all content such as audio and video, whiteboard, courseware, and chat information are recorded at the same time without additional bandwidth or performance overhead. The recording process does not affect the RTC interactive experience of any host/viewer.
- After recording, MP4 files can be generated in real time, compatible with all mainstream players.
- File download is very simple, convenient for recording file management.
At the same time, page recording has the ability to record any web page, so developers who use WebRTC or other solutions to develop RTC functions can also use it.
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。