使用 libvlc + unity 的完整 sbs(并排)视频显示异常

问题描述 投票:0回答:1

我面临一个问题,我的一些完整的 SBS 预告片视频在 Unity 中显示奇怪的宽黑色边框。

我写了一个包装器将libvlc包装到aar中,以便我可以配合Unity中的Texture2D和Android操作系统中的SurfaceTexutre。大多数视频一切正常,直到我播放了一些完整的 SBS 视频。

元数据好像没有什么问题。从函数接收到的宽度和高度是正确的,这意味着黑色边框是纹理的一部分。但是当我运行 Android 演示应用程序或 VLC Android 版本时,屏幕上没有黑边框。我可以做什么来解决这个问题?

android unity-game-engine vlc libvlc
1个回答
0
投票

好吧,我想我已经知道该怎么做了。

原因是所有完整的 sbs 视频都是 3840x1080 像素,但 SAR(样本宽高比)和 DAR(显示宽高比)可能略有不同。在此情况下,该有问题的视频文件中的 SAR 为 0.5,DAR 为 16:9,从而导致水平黑色边框。所以:

  • 添加参数
    --monitor-par=1:1
  • ...或者不知道是否可以直接修改vlc源码强制SAR为1:1。但我确信这是满足我的要求的最佳方式。
  • ...或者另一种方法是在 Unity 中,也许我可以在播放之前检查一些媒体信息,以便我可以更改视频渲染材质的平铺和偏移属性。
© www.soinside.com 2019 - 2024. All rights reserved.