小编Dav*_*vid的帖子

Unity:实时视频流

我正在尝试将实时视频从一个应用流式传输到另一个应用,目前我有2个应用.app 1是服务器/发送者,app 2是客户端/接收者.在app 1中,我成功将视频字节发送到客户端.在客户端,我也收到了所有的字节.我使用套接字和TCP.我面临的问题是,当我收到视频字节并将它们分配给原始图像纹理时,纹理上的图像看起来放大太多并且它是如此像素化.

更新的图像

在此输入图像描述

这就是我的流 在此输入图像描述

这就是我在客户端得到的.
这是我收到字节时在rawimage上看到的内容

这是第一个问题,但我目前正在测试从桌面到另一个,我的目标是将IPAD流式传输到桌面,当我这样做时它很慢并且它会在ipad和桌面上杀死应用程序.

我到目前为止尝试了一些故障

1:我认为这是发生的,因为我有2种不同的分辨率,因为我从ipad流到桌面

2:纹理图像太大,我输出它并返回630.我尝试使用Unity Texture2D.resize调整大小但我得到一个灰色纹理,因为该函数将像素设置为未识别

3:我使用其他库来调整纹理大小,我确实得到了我想要的东西,但在12帧之后,rawimage开始在视频和"?"之间闪烁.纹理那么多然后它冻结在两个应用程序(iPad和桌面)

4:我相信我正在阅读纹理的方式导致问题,因为我使用Setpixels和Getpixels函数,它们很重.

我的代码:服务器/发件人方:

using UnityEngine;
using System.Collections;
using System.IO;
using UnityEngine.UI;
using System;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using System.Collections.Generic;

public class Connecting : MonoBehaviour
{
WebCamTexture webCam;
public RawImage myImage;
Texture2D currentTexture;

private TcpListener listner;
private const int port = 8010;
private bool stop = false;

private List<TcpClient> clients = new List<TcpClient>();

private void Start()
{
    // Open the Camera on the desired device, …
Run Code Online (Sandbox Code Playgroud)

c# sockets streaming unity-game-engine

11
推荐指数
1
解决办法
2万
查看次数

标签 统计

c# ×1

sockets ×1

streaming ×1

unity-game-engine ×1