用EasyClient开源项目采集Windows摄像头/麦克风的音视频进行RTSP直播

EasyClient是EasyDarwin开源流媒体团队开发的一款功能丰富的开源PC客户端项目,目前支持Windows、Android版本,后续将支持ios版本,其中Windows版本的EasyClient支持多种源接入,包括Windows摄像头、麦克风、RTSP摄像机、屏幕桌面等,采集后经过x264编码、EasyPusher推送到EasyDarwin流媒体服务器进行转发,同时EasyClient还支持通过EasyRTSPClient拉取EasyDarwin直播流,进行显示、播放,非常稳定、易用,用户可以基于EasyClient项目,开发类似于课堂直播、视频对讲等项目!

功能支持

1、DShow采集与音视频编码

EasyClient实现DShow ISampleGrabberCB接口,分别采集Windows摄像头的视/音频,通过回调来保存每一个buffer,在回调中,我们用x264进行视频数据编码成H.264,用FAAC进行音频编码成AAC.再通过EasyPusher将实时编码的音视频数据,推送到EasyDarwin开源流媒体服务器进行直播;
EasyClient DShow

EasyDarwin EasyClient

2、IPCamera源播放与推送

EasyClient支持获取IPCamera摄像机的RTSP直播流,通过EasyRTSPClient拉取到本地,进行解码、显示;

同时还支持将拉取到的IPC RTSP流,通过EasyPusher将实时编码的音视频数据,推送到EasyDarwin开源流媒体服务器进行直播;
EasyDarwin EasyClient

Github项目地址:https://github.com/EasyDarwin/EasyClient

博客地址:https://blog.csdn.net/weixin_41749063/article/details/104023987 摘要: ## 1.简介 其实Qt网络模块中自带的[QTcpsocket](https://doc.qt.io/archives/qt-5.6/qtcpsocket.html)已经封装的很好了,避免了用原始套接字编程繁琐的过程,不过大部分应用场景我们希望将收发数据 运行在一个单独的线程,不阻塞界面或其他线程。所以结合Qt自带的QThread类 简单的封装了一下QTcpsocket,使其工作 在单独线程,并加入了心跳和断线重连机制。 ## 2.EasyClient类说明 由于接触QT时间不是很长,所以写的不是很好,可能里边也有Bug,不过觉得这个思路应该是可行的。封装的比较简单,若有问题完全可以自己改改。主要提供一个思路就是的将一个继承自QObject的子类转移到一个线程,使其在这个线程里进行事件循环,开一个定时器用于发送心跳和重连。 经过采坑发现,定时器的开和关需放在实例化EasyClient子类的那个线程(下面称之为主线程),不能在事件循环线程中(下面称之为子线程中)否则会有错。实例化QTcpsock需要在 子线程中进行,否则会出现无法正常通信的现象。 使用时只需要实例化一个EasyClient的子类,重写SendHeartBeat()和DisPoseReceiveData()两个纯虚函数,SendHeartBeat()决定发什么内容作为心跳指令,当有数据可读时会全部读入,只需要在DisPoseReceiveData()做处理即可。.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值