我有一个大型视频,其中一些动画对于其他嵌入方法(gif、png 序列等)来说太复杂/太长,我们遇到了视频中的颜色问题。本质上,我们将网页背景作为视频的一部分,以防止视频播放时出现任何边缘。我们正在尝试让视频上的渐变背景与网页上的渐变背景相匹配,但颜色相去甚远。
有没有关于如何对 MP4 视频进行颜色校正的建议?或者任何 html5 安全的方法来制作带有 alpha channel 的视频?
最佳答案
不幸的是,每种流行的浏览器处理 HTML 5 视频中的颜色的方式不同,这使得很难获得一致的颜色。
H.264 (MP4) 比特流可以选择性地编码您正在使用的一组颜色原色、传输特性和矩阵系数;这些可以设置为例如ffmpeg -x264opts colorprim=bt709:transfer=bt709:colormatrix=smpte170m
。至少在 Mac OS X 上,Safari 和 Quicktime 会注意 H.264 视频中的这些位,并将颜色从指定的编码转换为显示器的颜色配置文件,从而产生漂亮且一致的颜色。然而,Chrome 似乎只是忽略了这些位并假设 H.264 和 VP8 视频都使用 BT.709 颜色原色(即使对于 VP8 SD 视频,VP8 规范说应该是 BT.601),尽管它会将其转换为显示器的颜色配置文件。另一方面,Firefox 似乎跳过了 VP8 视频元素的输出转换,只是假设您的显示器是 sRGB,因此具有不同颜色配置文件的显示器之间的颜色不一致,并且很可能在宽色域显示器上偏离。 (我只在 Mac 上测试过;浏览器在其他操作系统上的工作方式可能不同。)
抱歉,我没有任何好的解决方案。可以通过 manipulating the video in Javascript using a canvas 解决该问题,尽管类似的东西可能性能不佳。
关于video - 颜色校正 MP4/Webm 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13145535/