1. 流媒体服务处理流程(SRS为例)
1. 推流RTMP:协议TCP、创建链接socket、RTMP握手、配置
2. 接收音视频数据:IO模型(协程方案),读取数据+解析数据
3. 创建消息队列(采用智能指针)
4. 每个拉流连接都创建一个协程发送
2. 调试方法
1. 修改配置,改为前台启动(daemon off)
2. gdb启动:
1) gdb ./objs/srs
2) set args -c ./conf/srs.conf
3) 加断点:b main, b SrsTcpListener::listen()
4) 查看调用栈:bt
5) run: r
6) 查看线程:info threads
7) continue: c
8) 查看断点:info b