在HTML5中将图像网址列表作为视频播放

时间:2018-08-14 19:13:23

标签: video-streaming html5-video

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

是否可以像播放视频一样播放图像?我目前一次将10张图片附加到div,并使用z-index一次显示一张。

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

以下是我的数据示例:

["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"]

1 个答案:

答案 0 :(得分:0)

  

是否可以像播放视频一样播放图像?

不直接,不。您必须创建一个视频,然后通过MediaSource Extensions或作为常规Blob加载它。因为您的源格式是JPEG,所以这将需要编解码器,而不需要编解码器。

  

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

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

  

使用z-index一次显示一个

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

如果您真的想用这些内容创建视频,则可能会有点讨厌:

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

即使在那之后,您也必须对最终的WebM进行一些修改,才能使其在浏览器中播放,但它仍然可以工作。