![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
音视频
文章平均质量分 83
音视频开发,原理知识,流媒体,P2P,SRS,RTMP等
夏天匆匆2过
生于忧患死于安乐
展开
-
C++流媒体服务器 ZLMediaKit框架ZLToolKit源码解读
ZLMediaKit是国人开发的开源C++流媒体服务器,同SRS一样是主流的流媒体服务器。基于C++11,大量使用C++11新特性,如智能指针、lambda表达式等,安全性高,是高度运用C++特性的框架。主要分为Thread、Poller、Network、Util四大部分。 EventPollerPool事件循环线程池。原创 2024-01-07 21:30:27 · 2776 阅读 · 0 评论 -
C++音视频流媒体服务器SRS源码框架解读,错误类(SrsCplxError)的使用
SRS流媒体服务器定义了一个功能强大的错误类(SrsCplxError),可自定义错误码、错误描述、详细信息、摘要,错误发生的文件名、函数名、行号;可建立连接多个错误类的单链表,形成一个错误栈;为上述功能提供了接口宏。此外,还自定义了断言宏(srs_assert),在crash时使用backtrace打印回溯调用栈,方便排查bug。原创 2023-07-26 22:59:58 · 381 阅读 · 0 评论 -
C++音视频流媒体服务器SRS源码框架解读,协程库state-threads的使用
C语言协程库state-threads(简称ST库),SRS对state-threads库进行了2次开发,SrsAutoFree自动释放指针,SrsContextId上下文ID的使用,测试源码。原创 2023-07-28 21:20:25 · 1060 阅读 · 0 评论 -
C++音视频流媒体服务器SRS源码框架解读,日志记录SrsFileLog的使用
SRS封装了日志类SrsFileLog(输出到文件或控制台)、SrsConsoleLog(输出到控制台),具备常用的日志功能。SrsThreadMutex类,对pthread_mutex_t 进行封装功能包括:日期,时间,日志级别,格式化参数列表,pid,上下文ID(方便定位问题,每个协程有个唯一的上下文ID),可输出到控制台或文件等;提供了使用方便的宏接口。原创 2023-07-29 22:16:35 · 586 阅读 · 0 评论 -
C++音视频流媒体服务器SRS源码框架解读,信号量(SrsSignalManager)的使用
C++语言,SRS封装了SrsSignalManager类,注册信号量回调函数,使用linux无名管道,接收到信号量时写入管道,在协程里轮询读取管道里的信号,并作相关处理。信号量的使用提供了用户进程(命令行即可)与正在运行的SRS程序通信的方式,SRS使用信号量实现的功能:强制退出程序、优雅地退出程序(执行一系列析构,停止监听等)、重新加载配置文件、日志文件切割等。原创 2023-08-01 07:36:09 · 560 阅读 · 0 评论 -
C++音视频流媒体服务器SRS源码框架解读,配置文件(SrsConfig)的使用
C++框架,SRS封装了SrsConfig类,配置指令类(SrsConfDirective),缓存区(SrsConfigBuffer),定义了使用方便且功能强大的配置文件,部分参考了nginx的配置文件,形式上类似与JSON,一个配置项里面可以包含子配置项,套娃的形式和JSON数组很像;可重新加载配置,重载配置时通过回调函数的形式执行其他模块的重载。原创 2023-08-05 13:51:19 · 1147 阅读 · 0 评论 -
windows环境CLion调试SRS流媒体服务器源码
CLion通过SSH远程调试SRS源码,CLion是基于cmake编译的,在windows环境使用CLion,通过SSH远程调试SRS,调试环境安装在CentOS 7虚拟机上。SRS环境搭建,SSH Configurations,创建SSH链接,Toolchains,配置工具链,Deployment,配置远程部署,CMake Application,CLion远程执行Linux命令行,clion调试快捷键:F7进入函数,F8单步调试,F9跳转到下一个断点。原创 2022-11-15 22:27:27 · 2240 阅读 · 0 评论 -
C++/Qt音视频通话开发MetaRTC源码解读,coturn穿透stun的使用
coturn服务器搭建,stun流程实现,stun穿透服务器使用,sdp交互,主叫穿透流程,被叫穿透流程,stun抓包wireshark,qt实现。原创 2022-09-23 22:09:28 · 2733 阅读 · 0 评论 -
C++/Qt音视频通话开发MetaRTC源码解读,音频推流和拉流
ubuntu麦克风音频采集和播放,ALSA音频采集播放,音频编码和解码,opus,udp发送和接收音频数据,音频推流步骤:音频数据采集、编码、发送,音频拉流步骤:音频数据接收、解码、播放。原创 2022-09-17 13:02:55 · 2666 阅读 · 0 评论 -
C++/Qt音视频通话开发MetaRTC源码解读,视频推流和拉流
视频推流步骤:视频数据采集、编码、发送,视频拉流步骤:视频数据接收、解码、播放。采集使用V4L2框架,编解码使用H264,udp发送数据。opengl渲染视频数据,QT的UI主线程播放视频。原创 2022-09-12 21:20:33 · 4974 阅读 · 0 评论 -
C++/Qt音视频通话开发MetaRTC源码解读,dtls交互流程,dtls抓包分析
dtls交互流程,dtls抓包分析,dlts详解,C/C++实现,基于Qt框架,MetaRTC开源代码,Client Hello,Server Hello,Certificate,Server Key Exchange,Certificate Request,Server Hello Done,Client Key Exchange,Certificate Verify,Change Cipher Spec,Application Data,Encrypted Alert,通知SRS结束推流。原创 2022-09-12 12:41:03 · 4005 阅读 · 0 评论 -
C++/Qt音视频通话开发MetaRTC源码解读,sdp交互流程,sdp抓包
sdp交互框架,http服务监听,主叫sdp流程,被叫sdp流程,p2p视频通话,sdp交互得到对方的IP和端口,用于创建udp收发音视频数据,wireshark做sdp抓包。原创 2022-09-10 22:24:48 · 2657 阅读 · 0 评论 -
speexdsp库实现音频3A算法,speexdsp库编译,C/C++
speexdsp编译,speexdsp库调用,音频3A算法,回声消除,噪声抑制,自动增益,QT+ubuntu环境测试原创 2022-08-07 18:36:02 · 5732 阅读 · 3 评论 -
Qt实现coturn穿透客户端,coturn服务器搭建
Coturn服务搭建,coturn客户端实现,stun协议使用,获取穿透公网IP和端口,NAT类型,不同网络是否可以穿透原创 2022-07-31 22:15:03 · 2817 阅读 · 0 评论 -
Qt实现sdp组包,sdp策略介绍
sdp简介,sdp策略,sdp创建,sdp打印原创 2022-07-30 22:02:53 · 971 阅读 · 0 评论 -
音视频开发常用名词解释
音频3A算法,AEC,ANS,AGC,SRT、GPU、PGP、DNS、RTMP、RTSP、RTP、RTCP、SRTP、SSL、TLS、DTLS、HTTP-FLV、V4L2、ALSA、Mesh、MCU、SFU、WebRTC、SDP、NAT、STUN、TURN、coturn、CDN、FLV、HLS、SIP、ICE,RTMP、RTSP、WebRTC和SRT区别原创 2022-07-29 20:18:50 · 1092 阅读 · 0 评论 -
音视频传输流程和编解码基本概念
音视频解码流程图解协议:将流媒体协议(HTTP,RTMP等)的数据,解析为标准的相应的封装格式数据解封装:将输入的封装格式的数据(MP4,MKV,RMVB,TS,FLV,AVI等),分离成为音频流压缩编码数据(如AAC编码的音频码流)和视频流压缩编码数据(如H.264编码的视频码流)解码:将视频/音频压缩编码数据,解码成为非压缩的视频/音频原始数据,音频的压缩编码标准包含AAC,MP3,AC-3等,视频的压缩编码标准则包含H.264,MPEG2,VC-1等,通过解码视频数据输出成为非压缩的颜色数据,例原创 2022-04-22 21:36:17 · 2905 阅读 · 0 评论 -
SRS服务搭建,实现推拉流
搭建环境:推荐centos7,ubuntu稳定性差一点SRS服务搭建git clone -b 4.0release https://gitee.com/ossrs/srs.git#克隆源码cd srs/trunk#cd到trunk目录./configuremake./objs/srs -c conf/srs.conf#启动服务./etc/init.d/srs status#查看SRS的状态,或访问http://localhost:8080/ 查看使用ffmpeg推拉流ffmpeg安装:原创 2022-05-22 16:31:50 · 531 阅读 · 0 评论