视频和音频聊天协议/框架

时间:2013-06-14 18:56:26

标签: qt networking udp protocols

我一直在研究如何实现无服务器的点对点视频/音频聊天(即我自己的Skype,没有短信)。

我一直在寻找实现它的方法,我有了下一个想法:

  1. 多线程c ++(因为我知道一些c ++)程序获取音频和视频(使用qt),通过2个不同的UDP套接字发送它,并从另一个“点”读取来自其他2个不同UDP套接字的视频和音频。因此,我将不得不用4个线程的总和来编写UDP服务器和客户端多线程:2用于发送音频和视频,其他2用于接收音频和视频。

  2. 编写我自己的协议以在同一个线程中启用视频和音频,比如解析一半的数据包数据大小以进行音频和视频缓冲,这将使我在应用程序中只有2个线程,而且还有更多“容易出错”的代码写。

  3. 我一直在寻找一些实时媒体协议,其中一些看起来很有趣。也许研究并实现这些协议的接口并使用它们而不是“创建”我自己的协议。

  4. 现在,实际问题:

    1. 是否有关于如何完成此操作的文档?也许某些“最先进的”apis /协议正在被使用或很好地实现/适合这个问题的解决方案?

    2. 如果我选择实现与视频分离的音频,那么VoIP是音频连接的可能解决方案吗?

    3. Qt是否是一个很好的工具?我之前从未使用过Qt,对于视频和音频接口,我也考虑过openframeworks,所以我想知道是否有人使用过这个框架之一,如果这是正确的选择。

    4. 我知道我的问题没有代码,可能的答案范围很广,但我真的需要一些帮助。

      感谢。

2 个答案:

答案 0 :(得分:1)

首先,您应该回答一下问题:您的客户如何在没有服务器部分的情况下进行连接/授权?

注意:1)Skype有服务器。 2)许多互联网用户通过NAT /代理访问网站。

Ofc,您可以尝试实现学习建议的内容,但如果您想创建有用的东西 - 尝试由专家创建的第三方解决方案。例如:google libjingle。

答案 1 :(得分:0)

您需要VOIP库:)

没有必要从头开始你可以使用库的开源,如:opalvoip