小编Aer*_*ion的帖子

使用新的 Unity 5.1 传输层 API 流式传输 WebCamTexture

正如问题所述,我一直在尝试将 WebCamTexture 从带有网络摄像头的客户端流式传输到服务器。双方(客户端和服务器)都在 Unity 中。稍后,客户端将部署到 Android,而服务器将是一个桌面应用程序。

目前我正在使用以下方法获取纹理的像素:

tex.GetPixels32();
Run Code Online (Sandbox Code Playgroud)

并使用自定义序列化程序对它们进行序列化(以优化其大小)。我目前有一个未压缩的字节数组,每帧大约 3.5MB 准备发送。我知道它很大,但我想在压缩部分和实时部分开始之前传输它。

该过程的最后一部分应该是使用新的 Unity NetworkTransport 静态类发送它。距离上次用sockets已经很久了,真的很烂。目前我无法让它工作。

这是我的服务器端代码(为清楚起见省略了序列化代码):

void Start()
{
    webcamTexture = new WebCamTexture();
    Background.texture = webcamTexture;
    Background.material.mainTexture = webcamTexture;
    webcamTexture.Play();

    if (!_isStarted)
    {
        _isStarted = true;

        NetworkTransport.Init();
        m_Config = new ConnectionConfig();
        m_CommunicationChannel  = m_Config.AddChannel(QosType.ReliableFragmented);
        HostTopology topology = new HostTopology(m_Config, 12);
        m_GenericHostId = NetworkTransport.AddHost(topology, 0);
        byte error;
        m_ConnectionId = NetworkTransport.Connect(m_GenericHostId, ip, port, 0, out error);
    }
}

void Update()
{
    if (!_isStarted)
        return;

    NetworkEventType recData = NetworkTransport.Receive(out recHostId, out connectionId, out …
Run Code Online (Sandbox Code Playgroud)

c# textures video-streaming unity-game-engine unity-networking

5
推荐指数
1
解决办法
4063
查看次数