我在服务器上托管了2个视频。
在Chromium浏览器(版本65.0.3325.181)中,https://server/index.html已加载。
使用Javascript,在window.onload之后插入2个视频元素,并启动第一个视频元素。
两个插入都一样:
let video = document.createElement('video');
video.setAttribute('width', '100%');
video.setAttribute('height', '100%');
video.setAttribute('preload', 'auto');
let source = document.createElement('source');
source.setAttribute('src', <http://server/video/path>);
source.setAttribute('type', 'video/mp4');
video.appendChild(source);
video.on('ended')视频元素完成后被隐藏。然后下一个视频元素变为可见并开始播放。
一切正常:
创建并隐藏了2个视频元素。 第一个视频元素立即开始播放。 在第一个视频结束时-它变为隐藏 第二个视频变得可见并开始播放...成功结束并再次隐藏...
然后从第一个视频开始...
我有以下观察
在最初缓存后,第一个视频总是流畅播放。
第二个视频总是出现毛刺,并停滞了几毫秒。
我正在Raspberry Pi 3上使用Chromium。
当第一个视频开始播放时:CPU占40-50-60%
每当第二个视频开始播放时:CPU大约为120-220%,并且会出现故障和死机。
问题与视频或编码无关,因为当我切换位置时:新的第2个视频(之前是第1个)成为有问题的视频。总是第二个视频!
为什么会这样? 你能给我一些线索或方向可能是什么吗?
答案 0 :(得分:0)
一个可能的原因是,第一个视频使用的是内置Broadcom HW视频解码的Raspberry PI,但是第二个视频则不得不使用SW解码。
如果您播放多个视频并且超出平台可以在硬件中处理的解码范围,则在许多计算机上也可以看到相同的效果-一种典型的方法是依靠某种形式的SW解码,或者可能只是优先考虑播放第一个视频。
大多数视频卡所支持的编解码器和帧速率也受到限制,尽管这听起来并不像您看到的问题,因为当它是唯一或第一个视频时,它听起来像是可以正常播放。>