我有一個視頻(讓我們稱之爲複合視頻)由多個其他視頻連接使用某種模式組成。例如,請參見下面的視頻的屏幕截圖,由通過兩個和四個其它影片,分別爲:顯示多個相同的視頻<video>標籤
然而,我需要不同地顯示它:一個主要的,更大,視頻和N-1
視頻縮略圖,其中N
是視頻的總數。下面是對應於視頻高於這個其他顯示:
要顯示我使用的HTML和CSS的組合,我想要的視頻位置在較大DIV爲主。無論合成視頻中的視頻數量如何,它都能流暢運行。
要顯示縮略圖,我使用<canvas>
畫出我想要的部分:
video.addEventListener('play', function() {
(function loop() {
drawThumbnails();
setTimeout(loop, 1000/30); // drawing at 30fps
})();
}, false);
function drawThumbnails() {
for (var i = thumbs.length - 1; i >= 0; i--) {
drawThumbnail(thumbs[i]);
};
}
function drawThumbnail(thumb) {
var thumbNumber = Number(thumb.id.match(/\d+/g));
var canvasContext = thumb.getContext('2d');
var thumbCoordinates = getVideoCoordinates(thumbNumber);
var srcX = thumbCoordinates.column * videoWidth;
var srcY = thumbCoordinates.row * videoHeight;
canvasContext.drawImage(
video, srcX, srcY, videoWidth, videoHeight, // Source
0, 0, thumb.width, thumb.height); // Destination
}
它是爲3(有時4)視頻工作良好。但是,隨着複合視頻中的視頻數量的增加,縮略圖中的視頻開始凍結並且運行不平穩。這可能是因爲同時進行了太多的圖像處理。
我認爲正確的做法是,不知何故,使用<video>
和方法特定的視頻,而不是圖像。我還嘗試在多個<video>
標記中使用相同的src
標記(每個縮略圖一個標記),並添加eventListeners
以在主視頻播放/暫停後播放/暫停縮略圖中的視頻。這不是非常有效,特別是因爲在尋找/緩衝時,視頻有時會失去同步。
是否有一種方法只使用多個<video>
標籤中的一個視頻,並只使用其中的一個(在我的情況下,包含主視頻的視頻)來控制所有其他視頻?如果沒有辦法做到這一點,是否有替代方法來解決我的問題?
非常感謝,
附:在我的情況下,擁有多個分開的視頻不是一種選擇。處理輸入視頻並將其分成多個視頻需要很長時間。
Web工作人員受到限制,因爲我無法在其任務上操作DOM。因此,主線仍然存在瓶頸。但是,謝謝! –