obs发送逻辑在rtmp-stream.c文件中
暴露出的重连接口
/**
* Sets the reconnect settings. Set retry_count to 0 to disable reconnecting.
*/
EXPORT void obs_output_set_reconnect_settings(obs_output_t *output,
int retry_count, int retry_sec);
static void *send_thread(void *data)
{
struct rtmp_stream *stream = data;
os_set_thread_name("rtmp-stream: send_thread");
while (os_sem_wait(stream->send_sem) == 0) {
struct encoder_packet packet;
if (stopping(stream) && stream->stop_ts == 0) {
break;
}
if (!get_next_packet(stream, &packet))
continue;
if (stop
本文深入探讨了OBS Studio的断线重连功能,主要关注rtmp-stream.c文件中的逻辑。通过设置重连接参数并利用obs_output_set_reconnect_settings接口,当连接中断时,使用obs_output_signal_stop触发重连过程。内部会创建连接线程connect_thread,该线程执行try_connect函数,最终调用RTMP_Connect以实现重新连接。
订阅专栏 解锁全文
2万+

被折叠的 条评论
为什么被折叠?



