Я предполагаю, что есть какая-то проблема с синхронизацией, когда Chrome отличается от других браузеров в том, что касается вызова onload, и когда само видео загружало что-либо.
Попробуйте проверить, загрузилось ли видео, прежде чем приступить к работе с холстом, а затем подождите, если необходимо:
function onVideoLoaded() {
var vid = document.getElementById('video-15-1_html5');
var row = document.getElementById('globe-video');
var canvas = document.createElement('canvas');
canvas.width = 1;
canvas.height = 1;
var context = canvas.getContext('2d');
context.drawImage(vid, 0, 0, 1, 1);
var p = context.getImageData(0, 0, 1, 1).data;
row.style.backgroundColor = "rgb(" + p[0] + "," + p[1] + "," + p[2] + ")";
}
window.onload = function() {
var vid = document.getElementById('video-15-1_html5');
if (vid.readyState === 4) {
onVideoLoaded();
} else {
vid.addEventListener('loadeddata', function () {
if (vid.readyState === 4) {
onVideoLoaded();
}
});
}
};
См. Эту документацию MDN по HTMLMediaElement.readyState
: https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/readyState