0

我正在尝试以全 (4k) 分辨率播放 360 度流媒体视频。我确实进行了先前的搜索并找到了以下线程,但它没有回答我的问题。

如何调整视频分辨率?

我的最终目标是将其集成到 vlc 统一中,但即使在桌面应用程序上,我也看不到如何将流式视频的分辨率调整到 4k(或更高)。作为测试,我在 VLC 桌面应用程序中尝试了来自 youtube 的 4k 视频,但看不到如何让它以 4k 播放。最终目标是从 aws 流式传输,但我想确认我的流确实可以以 4k 播放,然后继续尝试找出它在 Unity 中以较低分辨率播放的原因。它将我的 aws 流的大小调整为 1920x1080,而不是预期的 4096x2048,并将 youtube 视频的大小从 3840x2160 调整为 1280x720。

我试过弄乱高级设置并查看输入/编解码器,“首选视频分辨率”的最佳选项是“最佳可用”(下面是全高清)。我在网上查看了其他建议,并没有看到太多改变,但确实将设置 - >视频 - >输出更改为“DirectX(DirectDraw)视频输出。这只是我在桌面应用程序中摸索,但是我尝试通过媒体 - >打开网络流,单击播放旁边的箭头并选择流,选择RTSP作为目标,然后将配置文件中的分辨率编辑为指定的宽度和高度。以上都没有改变分辨率的视频。

TL;DR - 如何在 VLC 桌面应用程序和 VLC Unity 中以更高分辨率(4k 及更高)播放流式视频?

编辑 - 添加请求的代码片段。这只是修改了 VLC 统一资产中的 UserRenderingPlugin 文件。

此外,类似于评论中讨论的内容,当我在本地播放视频而不是流式传输时,它会以视频的全分辨率播放。

在 Awake() 中,我将材质设置为 4096x2048,其中提到了天空盒 RenderSettings.skybox = material4k;

然后在更新这里是相关部分

        var texptr = _mediaPlayer.GetTexture(out bool updated);
            if (updated && texptr != IntPtr.Zero)
            {
                Debug.Log("Creating texture ");
                tex = Texture2D.CreateExternalTexture((int)width,
                    (int)height,
                    TextureFormat.RGBA32,
                    false,
                    true,
                    texptr);
                RenderSettings.skybox.mainTexture = tex;
                }
4

0 回答 0