有没有办法播放视频

时间:2020-07-31 09:58:43

标签: javascript canvas video

我在html文件中有一个video元素,但是我想反向播放视频。有什么办法吗?

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="recent-posts-5" class="blog_widget widget widget_recent_entries">
  <h5 class="widget-title"><span>Iekārtas</span></h5>
  <ul>
    <li><a href="/js">Lorem</a></li>
    <li><a href="somelink">Ipsum</a></li>
    <li><a href="somelink">Dolor</a></li>
  </ul>
</div>
<div id="recent-posts-6" class="blog_widget widget widget_recent_entries">
  <h5 class="widget-title"><span>Iekārtas</span></h5>
  <ul>
    <li><a href="/js">Lorem</a></li>
    <li><a href="somelink">Ipsum</a></li>
    <li><a href="somelink">Dolor</a></li>
  </ul>
</div>

顺便说一句,我可以通过将每个帧绘制到画布中然后再播放画布来做到这一点,但这不是一个好方法,还有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

如果您可以提前在服务器端执行此操作,则ffmpeg具有反向视频过滤器,可让您创建视频的反向副本。参见此处的示例:

还有一些自定义工具可以做到这一点,通常还是在服务器端。

如果必须在播放器上进行操作,这将变得不容易,因为大多数视频编码方案都会进行编码,因此给定帧的编码取决于之前的一个或多个帧,有时还取决于一个或之后的更多帧。

换句话说,要正确创建框架,您可能需要引用一个或多个先前的框架以及一个或多个后续的框架。

要向后播放它,仍然需要进行解码,因此您需要一个能够隔离一组帧或“图片组”的自治播放器,即不依赖于任何其他先前或后续帧的播放器,以及然后以正确的顺序对其进行解码以向后播放视频。

如果要有效地流传输文件,则播放器还需要从头开始而不是从头开始流传输文件,而不是下载文件。

一种可能适用于某些格式的粗略方法是:

  • 加载视频并检查帧频和时长
  • 寻找结束时间
  • 循环播放:
  • 搜索大约一帧的时间(根据帧频计算)
  • 此时显示框架
  • 重复直到到达第一帧

但是,我怀疑这会很慢,并且会给您带来“生涩”的视频播放。