在 html5 中以视频形式播放图像网址列表



我有一个图像网址列表,这些网址是从安全摄像头拍摄的备份图像。 它们在nginx代理后面提供。

有没有办法像视频一样播放图像? 我目前一次将 10 张图像附加到div 并使用 z 索引一次显示一张。

但我想要一种更好的方法,让我使用内置控件。

以下是我的数据示例:

["http://0.0.0.0:7733/1/2/2018-08-14_18-44-51.jpg", "http://0.0.0.0:7733/1/2/2018-08-14_18-44-52.jpg", "http://0.0.0.0:7733/1/2/2018-08-14_18-44-53.jpg", "http://0.0.0.0:7733/1/2/2018-08-14_18-44-54.jpg", "http://0.0.0.0:7733/1/2/2018-08-14_18-44-55.jpg", "http://0.0.0.0:7733/1/2/2018-08-14_18-44-56.jpg", "http://0.0.0.0:7733/1/2/2018-08-14_18-44-57.jpg", "http://0.0.0.0:7733/1/2/2018-08-14_18-44-58.jpg", "http://0.0.0.0:7733/1/2/2018-08-14_18-44-59.jpg", "http://0.0.0.0:7733/1/2/2018-08-14_18-45-00.jpg"]

有没有办法像播放视频一样播放图像?

不是直接的,不是。 您必须创建一个视频,并通过媒体源扩展或作为常规 Blob 加载它。 这将需要一个编解码器,而不是什么,因为你的源格式是JPEG。

但我想要一种更好的方法,让我使用内置控件。

模拟视频播放器的控件将比弄乱视频容易得多。

使用 z 索引一次显示一个

我会改用visibility: hidden。 如果您只是堆叠了一堆图像并正在更改z-index,您可能会为浏览器创建大量工作,因为它会将它们放在不同的图层上并在以后将它们全部合成在一起,即使看不到特定的帧。 (检查开发人员工具中的性能,进行试验,然后查看。

如果你真的想用这些创建一个视频,这是可能的,但有点讨厌:

  1. 创建画布元素。
  2. 使用 CanvasCaptureMediaStream 从画布内容中获取 MediaStream。
  3. 使用MediaRecorder将该MediaStream录制为可管理的内容,例如WebM中的VP9视频。

即使在那之后,您也必须稍微破解生成的 WebM 才能让它在浏览器中播放,但它会起作用。