Skip to main content
本文用两个最小可运行的例子跑通 C SDK:先做收流端(加入频道并落盘远端音视频),再做推流端(把编码好的数据推上去)。 前置条件:
Token 与一次会话绑定。进程离开频道后该会话即失效,再用同一个 Token 会返回 1032 该会话不在线。每起一个新进程都要重新签发一个 Token。

收流端:加入频道并接收远端媒体

编译运行:
自动订阅适合录制、混音、AI 接入这类”全都要”的场景。如果只想订特定用户的特定轨道,改用 rtc_set_track_event_callback + rtc_subscribe_video / rtc_subscribe_audio,详见 订阅与收流

推流端:发布本地音视频轨道

SDK 只负责传输,采集和编码由业务方自己做。推流的流程是:创建轨道 → 配置发布选项 → 发布 → 循环 rtc_write_sample 喂编码后的裸数据。
发布视频后,SFU 会在需要时通过 RTCP(PLI/FIR)要求你立刻产出一个关键帧(例如有新观众起播)。请在发布前用 rtc_set_keyframe_request_callback 注册回调,并在回调里让编码器立即编一个 IDR,否则新加入的观众可能长时间黑屏。详见 发布与推流

开启日志

排查问题时把日志级别调到 RTC_LOG_DEBUG,需在 rtc_create 之前调用:

常见问题


下一步