c++ - Unity3D 中的高清视频通话
问题描述
我是视频/图像处理的业余爱好者,但我正在尝试创建一个用于高清视频通话的应用程序。我希望有人能看到我可能做错的地方并引导我走上正确的道路。这是我正在做的事情以及我认为我理解的事情,如果您知道得更好,请纠正我。
- 我目前正在使用 OpenCV 从我的网络摄像头中获取 DLL 中的图像。(我稍后会将此图像用于其他事情)
- 目前,opencv 给我的图像是 Opencv::Mat。我调整了它的大小并转换为 720p 图像的字节数组大小,大约为 3 兆像素。
- 我将此 ptr 传递回我的 C# 代码,然后我现在可以将它渲染到纹理上。
- 现在我创建了一个 TCP 套接字并连接服务器和客户端并开始传输之前获得的图像字节数组。我能够将字节数组传输到客户端,然后使用 GPU 将其渲染为纹理。
- 目前,有大约 4-500ms 延迟的大延迟。这是在我尝试使用 gzipstream 压缩缓冲区以实现统一之后。它能够将字节数组从大约 300 万字节压缩到 150 万字节。我正在尝试将其尽可能小,也尽可能快,但这是我完全迷失的地方。我看到 Skype 只需要 1.2Mbps 的连接就可以进行 22 fps 的 720p 视频通话。我不知道他们怎么能做到这么小的框架,但我当然不需要它那么小。我至少得体面。
请给我讲讲如何做到这一点!让我知道您是否需要我提供其他任何东西。
解决方案
我发现一个链接可能对从事类似工作的任何人都非常有用。https://www.cs.utexas.edu/~teammco/misc/udp_video/ https://github.com/chenxiaoqino/udp-image-streaming/
推荐阅读
- vba - Excel vba在工作簿中添加或删除工作表时,在主工作表中显示/隐藏按钮
- algorithm - 如何在列表中分配一组数字
- c# - 在异步重试操作中实现超时
- docker - minikube ip 返回 127.0.0.1 | Kubernetes NodePort 服务无法访问
- regex - 正则表达式块包含
- reactjs - 如何使用“react-google-login”工具与“profileObj”和“tokenObj”并行获取 Google 身份验证代码?
- dialog - 代号 来自不同类的一组动作事件,用于对话框中的按钮
- javascript - 垂直绘制克隆元素
- python - ConfigParser 引发 KeyError(key) Python 3.8
- asp.net-mvc - 路由配置 - 找不到资源错误 Asp.Net MVC