显示来自IP摄像机的流视频

时间:2018-10-11 06:12:58

标签: unity3d camera

我正在尝试在Unity3D的应用程序中显示来自IP摄像机的视频流。我以手册和论坛中的各种示例为基础。这是代码:

public class MainCameraController : MonoBehaviour {
    private Texture2D IpCameraTexture;
    UnityWebRequest VideoRequest;
    private string sourceURL = "http://192.168.100.107/axis-cgi/mjpg/video.cgi";

    void Start() {
        IpCameraTexture = new Texture2D (50, 50, TextureFormat.RGB24, false);
        StartCoroutine(GetFrame());
    }

    public IEnumerator GetFrame() {
        string authorization = "Basic " + System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes("admin:admin"));
        VideoRequest = new UnityWebRequest (sourceURL, UnityWebRequest.kHttpVerbGET); VideoRequest.SetRequestHeader("AUTHORIZATION", authorization);
        VideoRequest.downloadHandler = new DownloadHandlerBuffer();
        VideoRequest.Send();
        while (true) {
            yield return null;   if (! string.IsNullOrEmpty(VideoRequest.error))   throw new UnityException(VideoRequest.error);
     if (VideoRequest.downloadHandler.data != null) 
{ 
IpCameraTexture.LoadRawTextureData(VideoRequest.downloadHandler.data);
                IpCameraTexture.Apply();
            }
        }
    }

    public void OnGUI() {
        GUI.DrawTexture(new Rect(0, 0, Screen.width, Screen.height), IpCameraTexture);
    }

    public void Update() {
    }
}

在屏幕上而不是视频上显示模糊的正方形,并显示错误“没有向LoadRawTextureData提供纹理数据”。

0 个答案:

没有答案