Unity3D高清视频通话

HD Video Calling in Unity3D

本文关键字:视频 高清 Unity3D      更新时间:2023-10-16

我是视频/图像处理的业余爱好者,但我正在尝试创建一个用于高清视频通话的应用程序。我希望有人能看到我哪里做错了,并引导我走上正确的道路。以下是我正在做的事情和我认为我理解的事情,如果你更清楚的话,请纠正我。

  1. 我目前正在使用OpenCV从DLL中的网络摄像头中获取图像。(稍后我将使用此图像进行其他操作(
  2. 目前,opencv给我的图像是一个opencv::Mat。我调整了它的大小,并将其转换为720p图像的字节数组大小,大约为300万像素
  3. 我将这个ptr传递回我的C#代码,然后我现在可以将其渲染到纹理上
  4. 现在我创建了一个TCP套接字,连接服务器和客户端,并开始传输之前获得的图像字节数组。我能够将字节数组传输到客户端,然后使用GPU将其渲染为纹理
  5. 目前,存在大约4-500ms的大延迟。这是在我尝试用gzipstream压缩缓冲区以实现统一之后。它能够将字节数组从大约300万字节压缩到150万字节。我正在努力让它尽可能小,也尽可能快,但这是我完全迷失的地方。我看到Skype只需要1.2Mbps的连接就可以以22帧/秒的速度进行720p视频通话。我不知道他们怎么能做到这么小的框架,但我当然不需要它那么小。我至少需要体面一点

请给我讲一讲如何做到这一点!如果你还需要我提供什么,请告诉我。

我发现了一个链接,它可能对任何从事类似工作的人都非常有用。https://www.cs.utexas.edu/~teammco/misc/udp_video/https://github.com/chenxiaoqino/udp-image-streaming/