DesktopSharing<转>
https://github.com/PHZ76/DesktopSharing/tree/e1543975576e6c4fc5c2404b2f4c9c99c0350bd3
git:https://github.com/PHZ76/DesktopSharing.git
===================================================
DesktopSharing
项目介绍
- 抓取屏幕和麦克风的音视频数据,编码后进行RTSP转发, RTSP推流, RTMP推流。
目前情况
- 完成屏幕采集和H.264编码。
- 完成音频采集和AAC编码。
- 完成RTSP本地转发音视频数据。
- 完成RTSP推流到流媒体服务器EasyDarwin。
- 完成RTMP推流到流媒体服务器SRS。
后续计划
- 增加硬件编码
- 增加声卡音频捕获
- RTMP转发
编译环境
- win10, vs2017, windows-sdk-version-10.0.17134.0
- 项目使用的模块都是开源项目, 在vs2017下编译通过。
设计思路

库文件说明
- 屏幕采集: 使用开源项目 screen_capture,因为抓屏使用了DXGI技术, 所以项目只适合运行在win8以上的系统。
- 音频采集: 使用开源项目 portaudio。
- 编码器, RTMP推流器: 使用开源项目 ffmpeg4.0,ffmpeg的dll文件太大,请到官网下载(4.0版本)。
- RTSP服务器,推流器: RtspServer。
VLC播放效果

DesktopSharing<转>的更多相关文章
- ubuntu windows mutual remote control
Win10 remote control Ubuntu18 Part1.ubuntu settings 1.安装所需组件 sudo apt-get update //若没有desktop sharin ...
随机推荐
- SpringCloud之监控数据聚合Turbine
前言 SpringCloud 是微服务中的翘楚,最佳的落地方案. 使用 SpringCloud 的 Hystrix Dashboard 组件可以监控单个应用服务的调用情况,但如果是集群环境,可能就 不 ...
- odex vdex art区别
一.vdexpackage 直接转化的 可执行二进制码 文件:1.第一次开机就会生成在/system/app/<packagename>/oat/下:2.在系统运行过程中,虚拟机将其 从 ...
- 数据结构与算法17—B树(B、B+、B*)
B树 B-树,就是B树,B树的原英文名是B-tree,所以很多翻译为B-树,就会很多人误以为B-树是一种树.B树是另外一种树.其实,B-tree就是B树. B-树的定义 B树(B-tree)是一种树状 ...
- vagrant 无法挂载共享目录
Vagrant was unable to mount VirtualBox shared folders. This is usually because the filesystem " ...
- Linux命令head
1.命令简介 head (head) 用来显示档案的开头至标准输出中.如果指定了多于一个文件,在每一段输出前会给出文件名作为文件头.如果不指定文件,或者文件为"-",则从标准输入读 ...
- yaml文件配置logger
yaml 今天用yaml文件写了一下logging的配置,文件如下: version: 1 disable_existing_loggers: False formatters: simple: fo ...
- 云服务器 - 定时备份MariaDB/MySQL
数据库数据备份尤为重要,而我们不会人工手动去备份,这样会很麻烦,我们都是通过服务器每日自定运行来做的,设置一个定时时间即可 首先我们看一下mysqldump这个文件的位置: 可以看到目录在 /usr/ ...
- jperf windows
jperf windows版是款简单实用的网络性能测试的工具:它也是款图形界面的iperf程序,可以这进行使用JPerf程序的时候,快速的进行简化您的命令行参数,而且这进行测试结束之后,还是以图形化的 ...
- 详解Eureka 缓存机制
原文:https://www.cnblogs.com/yixinjishu/p/10871243.html 引言 Eureka是Netflix开源的.用于实现服务注册和发现的服务.Spring Clo ...
- Android中UID和PID的作用和区别
PID:为Process Identifier, PID就是各进程的身份标识,程序一运行系统就会自动分配给进程一个独一无二的PID.进程中止后PID被系统回收,可能会被继续分配给新运行的程序,但是在a ...