iOS 16 SceneKit 是否改变了处理像素格式的内容?

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

我的应用程序在 SceneKit 的 SCNNode 上显示视频作为纹理。 现在我刚刚发现一些视频在 iOS 16.4 中看起来与以前的版本不同。这些视频看起来比应有的苍白。 我查阅了一些文档,并在 info.plist 中将

SCNDisableLinearSpaceRendering
设置为 true,它们看起来正是它们应该的样子,但问题是其他看起来不错的视频现在变得不同了。 但无论如何,它似乎与this answer有关的线性或伽马色彩空间有关。 他们更新了什么?是否有可能不考虑视频源而统一这种行为?


编辑

这里有一些关于视频的更多信息。

无论 iOS 版本如何,示例视频都没有问题。 https://storage.googleapis.com/test_video_jun/no_problem/master-playlist.m3u8

# no problem
index=0
codec_name=h264
codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
profile=High
codec_type=video
codec_tag_string=[27][0][0][0]
codec_tag=0x001b
width=4096
height=1494
coded_width=4096
coded_height=1494
closed_captions=0
film_grain=0
has_b_frames=0
sample_aspect_ratio=1:1
display_aspect_ratio=2048:747
pix_fmt=yuv420p
level=51
color_range=unknown
color_space=unknown
color_transfer=unknown
color_primaries=unknown
...

iOS 16.4 中有问题的视频 https://storage.googleapis.com/test_video_jun/test_pale_problem/playlist-master.m3u8

index=0
codec_name=h264
codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
profile=Main
codec_type=video
codec_tag_string=HDMV
codec_tag=0x564d4448
width=3840
height=1920
coded_width=3840
coded_height=1920
closed_captions=0
film_grain=0
has_b_frames=0
sample_aspect_ratio=N/A
display_aspect_ratio=N/A
pix_fmt=yuv420p
level=51
color_range=tv
color_space=bt470bg
color_transfer=reserved
color_primaries=reserved
...

编辑#2

我可以确认它在 iOS 16.1 中运行良好,但在 16.2 和更新版本中运行不佳

ios scenekit color-space ios16
© www.soinside.com 2019 - 2024. All rights reserved.