Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HTML5播放器错误的视频颜色_Html_Colors_Html5 Video - Fatal编程技术网

HTML5播放器错误的视频颜色

HTML5播放器错误的视频颜色,html,colors,html5-video,Html,Colors,Html5 Video,我有个大问题。我自己制作了一个应用程序演示视频,背景颜色我想要 现在我想在HTML5播放器中播放它。但现在,当我专注地看我在Chrome、Safari和Firefox上的视频时,一切都正常了。我可以看出,颜色与我制作的原始视频不完全相同。我不明白。我还试着把这段视频上传到Youtube上,并把它放在我的网站上。都一样。似乎每个视频都没有显示正确的颜色 例如: 左边是红色背景的原始视频(#FF6666),右边是谷歌Chrome上的视频(红色从#FF6666变为#F3566A) 在Safari上,

我有个大问题。我自己制作了一个应用程序演示视频,背景颜色我想要

现在我想在HTML5播放器中播放它。但现在,当我专注地看我在Chrome、Safari和Firefox上的视频时,一切都正常了。我可以看出,颜色与我制作的原始视频不完全相同。我不明白。我还试着把这段视频上传到Youtube上,并把它放在我的网站上。都一样。似乎每个视频都没有显示正确的颜色

例如:

左边是红色背景的原始视频(#FF6666),右边是谷歌Chrome上的视频(红色从#FF6666变为#F3566A
) 在Safari上,它是一样的,但颜色是:#FC7474

怎么了?有人能帮我吗

谢谢

Antoine

有关问题的可能原因,请参阅。您可以通过关闭浏览器的硬件加速来测试是否存在问题(启动命令行<代码>--禁用加速合成

另一种可能需要调整的方法是通过css手动调整亮度

@media screen and (-webkit-min-device-pixel-ratio:0) {
    video{ -webkit-filter: brightness(110%); }
}

解决这个问题的唯一方法是通过画布播放视频

在视频元素旁边添加画布并隐藏视频元素

我没有一个通用脚本作为示例,但我使用了如下内容:

;(function(window){

var Animation = {

    animateVideo: function () {
        var self = this,
            video = document.getElementById('video'),
            canvas = document.getElementById('canvas'),
            context = canvas.getContext('2d'),
            width = canvas.clientWidth,
            height = canvas.clientHeight;

        canvas.width = width;
        canvas.height = height;

        video.addEventListener('play', function() {
            self.draw(this, context, width, height);
        }, false);

        video.play();
    },

    draw: function (video, context, width, height) {
        var self = this;

        if(video.paused || video.ended) return false;
        context.drawImage(video,0,0,width,height);

        setTimeout(function() {
            self.draw(video, context, width, height);
        }, 60);

    }

 }

 window.Animation = Animation;

}(window));
。。。。 在主脚本中,您可以随时调用:

Animation.animateVideo();
请记住,这个例子是一个想法,它取自一个特定的解决方案,删除了一些内容,以便快速回答,但我希望它能帮助您提供一些线索


问候

您可以下载此Chrome插件,在youtube上使用Flash player而不是HTML5播放视频:


玩得开心。

我找到了一个非常有效的解决方案。我对不同电脑上的视频颜色有一个问题。例如,在电脑的一个部分,我得到了黑色为#000000,但在另一个部分,我得到了#101010颜色。经过一周的头脑风暴,我最终发现将视频对比度改为110%完全解决了这个问题。您只需将CSS行添加到视频中:

-webkit-filter: contrast(110%);

在所有电脑上,黑色变成正常的#000000。

谢谢您的帮助。但这并没有解决问题。第一个选项不起作用,第二个选项我也尝试改变对比度或饱和度,但我从未找到初始颜色:(:(你的编码器允许你强制使用特定的颜色空间(如BT.709)?不确定Chrome对这一点的尊重程度(看看公开的bug,可能是有两种原因造成的)我真的不知道为什么颜色会改变…我有一个Mac book pro Retina 13“,颜色不好(在safari、firefox和chrome上)。我的一个朋友和我有同一台电脑,他在firefox上试过,颜色还可以…我不明白。。。