音视频
文章平均质量分 87
IMG-飞
终生学习者, 程序员nfgo
展开
-
webrtc 源码编译 win10 虚拟机
webrtc编译 2023/2/14原创 2023-02-14 10:43:14 · 216 阅读 · 0 评论 -
协程库st(state threads library)原理解析
st_init里面调用st_thread_create并不会开始执行idle线程,创建其他线程也一样,只有在直接或间接调用_st_vp_schedule之后才会开始执行RUNQ上面的线程。其中主要时MD_SETJMP保存当前context,然后调用_st_vp_schedule()从_ST_RUNQ上取第一个可运行的thread,并调用_ST_RESTORE_CONTEXT将该thread恢复运行。st中有IOQ,ZOMBIEQ,RUNQ,SLEEPQ等几个队列,用来存储处于对应状态的threads。转载 2022-10-21 15:28:47 · 385 阅读 · 0 评论 -
SRS4.0源代码分析之总体介绍(2)
所以,SRS的设计者为项目引入了State Thread(状态协程),简单的说,这就是一个用户级线程,每个客户端连接都单独占用一个用户级线程,这样软件在针对流媒体协议处理时,可以简化处理逻辑:每条连接根据接收到的客户端报文,处于不同的协议处理状态,没有新报文则用户线程阻塞在当前状态,并自动触发State Thread内部状态机调用其它可执行的用户线程,几百个用户级线程的切换,不会引入内核状态的切换,所以,执行效率高,对系统性能损耗小。一套动作下来,大概1~2周的时间,对SRS服务就算入门了。转载 2022-10-21 14:30:36 · 836 阅读 · 0 评论 -
SRS4.0源代码分析之RTMP协议入门(1)
format =00,Msg Header占用11个字节,这种结构最浪费,一般用于流开始发送的第一个chunk报文,且只有这种情况下,报文中的timestamp才是一个绝对时间, 后续chunk报文的Msg Header中要么是没有timestamp,有timestamp也只是相对前一个chunk报文的时间增量。根据前面的学习,可知RTMP协议向上的处理逻辑是总是基于Message报文,向下的处理逻辑则基于Chunk报文,所以,接下来首先分析用户层Message报文的各种含义。转载 2022-10-21 13:56:45 · 363 阅读 · 0 评论 -
SRS 源码编译 clion远程调试
SRS-clion debug调试, 亲测记录原创 2022-08-12 14:07:27 · 686 阅读 · 0 评论