1

我一直在研究如何实现一个免费的、点对点的视频/音频聊天(即我自己的没有短信的Skype)。

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

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

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

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

现在,实际问题:

  1. 是否有一些关于如何完成此操作的文档?也许一些正在使用的“最先进的”api/协议或针对这个问题的良好实施/适合的解决方案?

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

  3. Qt 是用于此目的的好工具吗?我以前从未使用过 Qt,对于视频和音频接口,我也考虑过 openframeworks,所以我想知道是否有人曾经使用过其中一个框架,以及这是否是正确的选择。

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

谢谢。

4

2 回答 2

1

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

注意: 1) Skype 有服务器。2) 很多互联网用户通过 NAT / Proxy 访问网络。

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

于 2013-06-18T08:23:36.400 回答
0

您需要 VOIP 库的 :)

无需从头开始,您可以使用库的开源,例如:opalvoip

于 2013-06-24T21:07:06.423 回答