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