我一直在研究如何实现一个免费的、点对点的视频/音频聊天(即我自己的没有短信的Skype)。
我一直在寻找实现它的方法,并且我有了下一个想法:
一个多线程 c++(因为我知道一些 c++)程序获取音频和视频(使用 qt),通过 2 个不同的 UDP 套接字发送它,并从另一个“点”从另外 2 个不同的 UDP 套接字读取视频和音频。所以我必须用总共4个线程编写多线程的UDP服务器和客户端:2个用于发送音频和视频,另外2个用于接收音频和视频。
编写我自己的协议以在同一个线程中启用视频和音频,例如解析一半的数据包数据大小以进行音频和视频缓冲,这将使我在应用程序中只有 2 个线程和更多“容易出错”的代码写。
我一直在寻找一些实时媒体协议,其中一些看起来很有趣。也许研究和实现该协议的接口并使用它们而不是“创建”我自己的。
现在,实际问题:
是否有一些关于如何完成此操作的文档?也许一些正在使用的“最先进的”api/协议或针对这个问题的良好实施/适合的解决方案?
如果我选择实现与视频分离的音频,VoIP 是音频连接的可能解决方案吗?
Qt 是用于此目的的好工具吗?我以前从未使用过 Qt,对于视频和音频接口,我也考虑过 openframeworks,所以我想知道是否有人曾经使用过其中一个框架,以及这是否是正确的选择。
我知道我的问题没有代码,并且可能的答案范围很广,但我真的需要一些帮助。
谢谢。