如何将图像预取到数组中,并在无限循环中显示在浏览器中
How to prefetch images into array and display them in browser in infinite loop
谁能告诉我如何做到这一点?我将它们列在指针中。
-
linux二进制文件从本地附加的网络摄像机捕获帧并将它们存储在一个文件夹中。这是一个连续的过程。的
-
我有一个web服务器,它给出了从网络摄像机接收到的最新图像的输出。这是一个PHP文件,它获取最近收到的最多的图像并打印出来。
-
我现在拥有的是一个javascript,它每秒刷新图像并显示在img标签中。
-
我正试图以一种应该的方式快速显示图像看起来像正在播放的mjpeg电影(并不是说它必须很好)我从论坛上了解到,http确实有它的开销)
<script type="text/javascript">
function refresh(){
document.images["pic1"].src="/latimage.php?camid=$selectedcamid&ref=" + new Date();
setTimeout('refresh()', 1000);}
if(document.images)window.onload=refresh;
</script>
<img src='/latimage.php?camid=$selectedcamid' id='pic1'>
- 以上代码工作完美。但是我不满意的想法是想快速显示从网络摄像头获得的帧,比如每秒显示至少3到4帧。
- 从我的搜索到目前为止,这是不太可行的刷新动作太快,因为HTTP进程确实需要时间。
我正试图找到一些关于使用方法完成这项工作的细节通过它,我可以将100帧预取到图像数组中(我将调用它缓冲)并开始以该速率一次显示一个图像
在显示图像时,应该删除旧图像
因此循环是无限的。
我需要一些指导。
如果您需要将相机输出捕获到磁盘,那么我建议将相机输出捕获为视频(以3 FPS),然后使用WebSockets将该视频文件流式传输到浏览器。这里有一个这样做的例子。如果你愿意在你的服务器上运行nginx,那么live_thumb是一个完整的解决方案,可以通过WebSockets捕获和传输视频。
另一方面,如果你的目标只是查看相机的输出,你不需要存储视频,你可以考虑使用WebRTC并在两端运行浏览器,然后只是连接媒体流。换句话说,一个浏览器(可能是一个无头的变体)将与你的相机一起在系统上运行,并使用WebRTC将视频流式传输到你的其他浏览器。使用WebRTC,你可以获得更高的帧速率,而你的带宽可能仍然比以慢帧速率发送单个图像要低得多。
相关文章:
- 使用滚动溢出-x进行无限循环
- 从index.html调用函数,该函数无限循环
- 使用jQuery无限循环播放HTML页面幻灯片
- Grunt任务没有加载,获得无限循环
- 如何在不进入无限循环的情况下将网站重定向到Facebook画布URL
- Backbone+RequireJS+Mediator模式导致视图逻辑短路和无限循环
- jQuery无限循环,动画化许多项目
- 如何避免试图用php+jquery显示php起始页的无限循环
- 6502仿真增强型基本无限循环$C000至$E0ED
- Angular ngRoute导致无限循环和堆栈溢出
- Jquery:无限循环和暂停
- 数组数组:无限循环
- MeteorJS使用流星调用和流星方法时的无限循环
- 如何无限循环数据集字符串
- 如何在检测浏览器语言的同时停止JavaScript的无限循环
- 浏览器控制台中无限循环
- 谷歌浏览器,无限循环和选择文本
- 谷歌浏览器导致无限循环的文本框焦点
- 如何将图像预取到数组中,并在无限循环中显示在浏览器中
- JavaScript的无限循环会导致浏览器崩溃