随着信息化时代的到来,同屏技术在教学、会议、大型活动中的应用愈来愈普遍。同屏结束简单说来,就是将手机、平板等一些移动设备上面的音视频资料经过无线或有线网络同步到显示设备上。换言之,就是将移动设备中的音视频资料景象到显示频幕上面。就像照镜子同样,移动设备上显示什么,显示屏上就会显示什么。git
EasyScreenLive是一款简单、高效、稳定的集采集,编码,组播,推流和流媒体RTSP服务于一身的同屏功能组件,具低延时,高效能,低丢包等特色。目前支持Windows,Android平台,经过EasyScreenLive咱们就能够避免接触到稍显复杂的音视频源采集,编码和流媒体推送以及RTSP/RTP/RTCP/RTMP服务流程,只须要调用EasyScreenLive的几个API接口,就能轻松、稳定地把流媒体音视频数据RTMP推送给EasyDSS服务器以及发布RTSPServer服务, RTSP同屏服务支持组播和单播两种模式。github
(演示对比)服务器
(硬件解码)网络
问题描述ide
最近有开发者从https://github.com/tsingsee/E...,在C#版本中遇到以下图错误,致使程序不能正常采集屏幕。函数
分析问题编码
在应用场景沟通中咱们发现,开发者是在虚拟机Server 2008的系统上运行的程序,咱们的开发环境是Win10,正常应该没有问题。spa
经过跟踪代码发现缘由出在C#版咱们编译的Demo默认是采集音频的,在开发者虚拟机环境中是没有音频输入,因此Demo没法正常工做。code
解决问题视频
CapturePusherSDK类中StartCapture函数中第五个参数是音频采集0:采集 -1:不采集,没有音频输入必定要赋值-1
public static int EasyScreenLive_StartCapture(IntPtr pusherHandle, SOURCE_TYPE eSourceType, string szURL, IntPtr hCapWnd, EncoderType encodeType, string szDataType = "RGB24", int nWidth=1280, int nHeight=720, int nBitRate = 2048, bool bTranscode=false, ENCODE_MODE encMode=0) { var ret = EasyScreenLive_StartCapture(pusherHandle, eSourceType, szURL, 0, -1, hCapWnd, encodeType, nVideoWidth : nWidth, nVideoHeight: nHeight, nBitRate: nBitRate, szDataType: szDataType, bTransCode:bTranscode, encodeMode:encMode); //注意第五个参数是音频采集0:采集 -1:不采集,没有音频输入必定要赋值-1 return ret; }