How do live streaming, interactive live streaming, TRTC, and relayed live streaming differ from and relate to each other?
Live streaming (keywords: one-to-many, RTMP/HLS/HTTP-FLV, CDN)
Live streaming consists of the push end, the playback end, and the cloud live streaming service. Streams are pushed over the universal protocol RTMP, distributed through CDNs, and can be watched over protocols including RTMP, HTTP-FLV, or HLS (for HTML5).
Interactive live streaming (keywords: co-anchoring, cross-room communication)
In interactive live streaming, audience can co-anchor with anchors and anchors from different rooms can compete with each other.
Tencent real-time communication (keywords: multi-person interaction, UDP-based proprietary protocol, low latency)
The main capabilities of TRTC are audio/video interaction and low-latency live streaming. It uses a UDP-based proprietary protocol and can keep the latency as low as 100 ms. Typical applications include QQ calls, VooV Meeting, and online group classes. TRTC offers solutions for mainstream platforms including iOS, Android, and Windows, allows communication with WebRTC, and supports mixing streams in the cloud and relaying them to CDNs.
Relayed live streaming (keywords: on-cloud stream mixing, RTC relayed live streaming, CDN)
The relayed live streaming technology replicates multiple streams in a low-latency co-anchoring room and mixes them into one stream in the cloud before pushing it to a live streaming CDN for distribution and playback.
The demo is running on two devices, but why can't they display the images of each other?
Make sure that the two devices use different
UserID. With TRTC, unless under different applications (
SDKAppID), you cannot use the same
UserID on two devices simultaneously.
When there is only one user in a room, why is CDN playback stuttering and blurry?
Please set the
TRTCAppScene parameter in
enterRoom to TRTCAppSceneLIVE.
VideoCall mode is optimized for video calls, so when there is only one user in a room, TRTC tends to maintain a low bitrate and frame rate to reduce traffic usage, which makes the video choppy and blurry.
Why can't I enter any online room?
This may be because advanced permission control is enabled. If you enable advanced permission control for an application (
SDKAppID), users must pass
PrivateMapKey in TRTCParams
to enter the rooms under the application. Therefore, if your business is online, and you haven’t integrated into it the privateMapKey` logic, please do not enable the feature. For more information, see Enabling Advanced Permission Control.
How do I view TRTC logs?
TRTC logs are compressed and encrypted by default with the XLOG extension. You can use
setLogCompressEnabled to specify whether to encrypt logs. If a log filename contains
C (compressed), the log is compressed and encrypted; if it contains
R (raw), the log is in plaintext.
Documents/log of the application sandbox
v6.7 or earlier:
Later than v8.5:
Earlier than v8.8:
v8.8 and later:
Web: Open the browser console or use vConsole to log printed SDK information.
You need to download a decryption tool to view an XLOG file. Place the tool in the same directory as the XLOG file in Python 2.7 and run
You can download the log decryption tool at
What should I do if a 10006 error occurs?
If the "Join room failed result: 10006 error: service is suspended, if charge is overdue,renew it" occurs, check whether your TRTC application service is available.
Log in to the TRTC console, click Application Management, find the application you created, and click Application Info to view the service status.
Why is the error code “-100018” returned during room entry?
This error is a result of
UserSig verification failure, which may be caused by the following reasons:
SDKAppID parameter passed in is incorrect. You can log in to the TRTC console and click Application Management to view the
UserSig passed in, which should match the
UserID, is incorrect. To verify your
UserSig, log in to the TRTC console and click Development Assistance > UserSig Generation & Verification.
How do I make a cross-room call?
You can make a cross-room call by using the
connectOtherRoom API. Anchor A calls
connectOtherRoom() to connect to anchor B and gets the result via the
onConnectOtherRoom callback. All users in anchor A’s room will be notified via the
onUserEnter callback that anchor B has entered the room, and all users in anchor B’s room will be notified via the
onUserEnter callback that anchor A has entered the room.
Do I have to call the
After you call
enterRoom, regardless of whether room entry succeeds, you must call
exitRoom before calling
enterRoom again; otherwise, an unexpected error will occur.
What are the formats of the recording files generated in different relayed recording scenarios?
Recording files are generated in the formats you specify in the TRTC console.
How do I know whether a stream is published successfully in a video call?
You know when you receive the
onSendFirstLocalVideoFrame callback. After
startLocalPreview are called successfully, the SDK will capture video from the camera and encode the video captured. It will return this callback after sending the first video frame to the cloud.
How do I know whether a stream is published successfully in an audio call?
You know when you receive the
onSendFirstLocalAudioFrame callback. After
startLocalAudio are called successfully, the SDK will capture audio from the mic and encode the audio captured. It will return this callback after sending the first audio frame to the cloud.
Can I query all
Currently, you cannot view the statistics of all user IDs, but you can write user data into the SQL database whenever accounts are created on the client for future management and query.
Can users with the same
UserID be in the same room at the same time?
In TRTC, users with the same
UserID cannot be in the same room at the same time because it will cause a conflict.
Why doesn't the audio route (receiver/speaker) configured via the
setAudioRoute API take effect?
You can switch between the receiver and speaker only in the call volume mode. That is to say, the API works only if two or more users are co-anchoring.
Can I manually enable recording for a call?
You can manually enable recording for a call in the following steps:
1. In the TRTC console, click Application Management > Function Configuration, enable Relay to CDN, and disable On-Cloud Recording**.
2. After a user (
userid) enters the room, splice the user’s
streamid according to the stream ID generation rule.
3. Use the CreateRecordTask API of CSS to start a recording task for the
4. After the recording task is completed, CSS will save the file in VOD and notify you via the recording callback.
How does TRTC verify
UserSig? How do I troubleshoot the “-3319” or “-3320” error during room entry?
How do I view my call duration and usage?
How do I maintain the user list and count the number of users in a TRTC room?
If you have integrated IM into your project, you can use the IM group user counting API to calculate the number of users in a room. However, such calculation is not always accurate. You may use this method if you don’t have a high requirement on accuracy.
If you do have a high requirement on the accuracy of the calculation, we recommend you implement the following calculation logic:
1. Increase the user count (client -> server): Whenever a user enters the room, increase the user count by 1. To achieve this, you can make the user’s client send a count increasing request to the server upon room entry.
2. Decrease the user count (client -> server): When a user leaves a room, decrease the user count by 1. To achieve this, you can make the user’s client send a count decreasing request to the server during room exit.
A “-100013” error is reported during room entry, with the error message “ERR_SERVER_INFO_SERVICE_SUSPENDED”. What should I do?
This error indicates that the service is unavailable. Please check the following:
Whether you have used up your package
Whether your Tencent Cloud account has overdue payment
What should I do if I have enabled on-cloud recording but no recording files are generated?
1. Make sure you have enabled Relay to CDN and On-Cloud Recording in the TRTC console.
2. TRTC starts recording only if there is a user publishing audio/video data in a room.
3. A recording file will be generated only if CDN pull is successful.
4. If there is only audio in a room at first before video is published, depending on the recording template configured, the recording file generated may contain only the video segment or the audio-only segment.
How do I give the room ID to the co-anchor I invite?
Is it possible to start audio recording only when there are two or more users in a room?
Yes, it is. If you want to record mixed audio data, call On-Cloud MixTranscoding first, specifying the output stream ID, and call the CreateRecordTask API of CSS.
How do I capture the audio of a shared application on Windows?
How to implement the feature that allows anchors to invite audience members to co-anchor in conference scenarios on Windows?
You need to use another Tencent Cloud product, IM, to implement the feature. This is how it works: A sends a custom message X (you can determine how the message is displayed) to B, and the calling page is shown; B receives X and the called page is shown; B uses enterRoom to enter the room and sends a custom message X1 to A; A receives X1 (you can determine whether to display the message) and uses
enterRoom to enter the room. The messages are sent via IM.
How do audience members watch the videos of co-anchors in a room?
In live streaming scenarios, audience get the
userid of anchors in a room via the onUserVideoAvailable callback in
TRTCCloudDelegate (co-anchoring users enter the room by calling enterRoom and are also anchors for the audience). They then call startRemoteView to play the videos of the anchors.
For more information, see Live Streaming Mode > Windows.
Is there a TRTC SDK for Linux?
The TRTC Linux SDK is not commercially available yet. If you have questions about the SDK or want to use it, please contact us at firstname.lastname@example.org.
Does TRTC support screen sharing during video calls or interactive live streaming?
Yes, it does. During video calls or interactive live streaming, the video captured by the camera is published as the primary stream. You can also publish the screen as the substream. The shared screen will contain the video call or interactive live streaming window.