我一直在研究如何实现无服务器的点对点视频/音频聊天(即我自己的Skype,没有短信)。
我一直在寻找实现它的方法,我有了下一个想法:
多线程c ++(因为我知道一些c ++)程序获取音频和视频(使用qt),通过2个不同的UDP套接字发送它,并从另一个“点”读取来自其他2个不同UDP套接字的视频和音频。因此,我将不得不用4个线程的总和来编写UDP服务器和客户端多线程:2用于发送音频和视频,其他2用于接收音频和视频。
编写我自己的协议以在同一个线程中启用视频和音频,比如解析一半的数据包数据大小以进行音频和视频缓冲,这将使我在应用程序中只有2个线程,而且还有更多“容易出错”的代码写。
我一直在寻找一些实时媒体协议,其中一些看起来很有趣。也许研究并实现这些协议的接口并使用它们而不是“创建”我自己的协议。
现在,实际问题:
是否有关于如何完成此操作的文档?也许某些“最先进的”apis /协议正在被使用或很好地实现/适合这个问题的解决方案?
如果我选择实现与视频分离的音频,那么VoIP是音频连接的可能解决方案吗?
Qt是否是一个很好的工具?我之前从未使用过Qt,对于视频和音频接口,我也考虑过openframeworks,所以我想知道是否有人使用过这个框架之一,如果这是正确的选择。
我知道我的问题没有代码,可能的答案范围很广,但我真的需要一些帮助。
感谢。
答案 0 :(得分:1)
首先,您应该回答一下问题:您的客户如何在没有服务器部分的情况下进行连接/授权?
注意:1)Skype有服务器。 2)许多互联网用户通过NAT /代理访问网站。
Ofc,您可以尝试实现学习建议的内容,但如果您想创建有用的东西 - 尝试由专家创建的第三方解决方案。例如:google libjingle。
答案 1 :(得分:0)
您需要VOIP库:)
没有必要从头开始你可以使用库的开源,如:opalvoip