首页 新闻 会员 周边 捐助

C# 屏幕 直播

0
悬赏园豆:20 [已解决问题] 解决于 2014-06-27 11:04

请问有人做过屏幕直播没,具体思路是怎么样的?

我目前利用截图然后将图片发送,这样数据量太大,有没有更好的思路与方法?

metoer的主页 metoer | 初学一级 | 园豆:8
提问于:2014-06-19 17:50
< >
分享
最佳答案
0

一个思路是只发送和上一张图片的不同部分,这样数据量应该会少很多

另一个就是进行有损压缩,在不影响观看效果的情况下减少数据量

收获园豆:10
诶碧司 | 小虾三级 |园豆:1912 | 2014-06-19 18:08
其他回答(5)
0

你是指类似PCAnywhere或是Teamviewer或是远程桌机,或是QQ远程协助这类的实现吗?

大概是机制你是没有说错,截图,压缩,传送。你可能就是少了压缩。

当然,严格起来,还有好多技术含量,要不人人都搞一个Teamviewer出来了。

收获园豆:5
爱编程的大叔 | 园豆:30844 (高人七级) | 2014-06-19 17:58

不是远程桌面,是直播,看其他直播的数据量不是很大也流畅,而我的数据量有500多kb,还不流畅。

请问有什么好的压缩没?

支持(0) 反对(0) metoer | 园豆:8 (初学一级) | 2014-06-19 18:00

@metoer: 

静态的话JPEG压缩。

直播的话就是MPEG,动态压缩技术专家系统。然后再减少帧数,分辨率。

不知道啥是MPEG的话,这儿就写不下了。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30844 (高人七级) | 2014-06-19 21:46

@爱编程的大叔: 请问一张图片能用MPEG压缩吗?

支持(0) 反对(0) metoer | 园豆:8 (初学一级) | 2014-06-23 17:42
0

保存上一张图片,对比图片差异,传输图片差异

收获园豆:5
吴瑞祥 | 园豆:29449 (高人七级) | 2014-06-19 18:36

这种不好控制吧,加入有人中间进来观看、

支持(0) 反对(0) metoer | 园豆:8 (初学一级) | 2014-06-20 15:54

@metoer: 加入的时候,广播端肯定知道是新用户,因为直接先把上一张图片发过去,再发下一张

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2014-06-20 16:28

@吴瑞祥: 目前我的方法是:每次10张图片中第一张是完整图片,后面9张只发送差异。

 

现在使用 服务器中使用SocketAsyncEventArgs接收处理:

private void ProcessReceive(SocketAsyncEventArgs e)
{
AsyncUserToken token = (AsyncUserToken)e.UserToken;

// 检查远程主机是否关闭连接

if (e.BytesTransferred > 0 && e.SocketError == SocketError.Success)
{
token.SetBytesReceived(e.BytesTransferred);

EventHandler<AsyncUserToken> handler = OnClientRead;

// 如果订户事件将为空(null)
if (handler != null)
{
handler(this, token);// 抛出接收到数据事件
}

发现客户端数据发送快了,SocketAsyncEventArgs中的数据和上次的数据在一起了。

支持(0) 反对(0) metoer | 园豆:8 (初学一级) | 2014-06-21 16:18
0

屏幕直播 不包含远控功能的话,可以用视频流来传输

Y2zz | 园豆:393 (菜鸟二级) | 2014-06-20 14:06

  可以具体说下么?

支持(0) 反对(0) metoer | 园豆:8 (初学一级) | 2014-06-20 15:55
0

http://www.rosoo.net/a/201307/16696.html

你看下这种解决方案能搞定不。哪里能弄图片的,这种做直播肯定是有三方成熟插件的呢。

Alex_QY1987 | 园豆:1888 (小虾三级) | 2014-06-20 17:27
0

屏幕直播最简单的实现方式是通过turbomeeting做到的

远程视频技术研究 | 园豆:214 (菜鸟二级) | 2018-05-11 17:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册