【问题标题】:HTML5 video: jump to a specific frame rather than a time position? Or step paused video to next or previous frame?HTML5 视频:跳转到特定帧而不是时间位置?或者将暂停的视频步进到下一帧或上一帧?
【发布时间】:2020-12-28 21:46:32
【问题描述】:

当我有一个 HTML5 视频对象时,我可以将其 currentTime 属性设置为跳转(搜索)到特定的时间位置。

还有没有办法跳转或寻找到特定的帧号?

或相关:有没有办法让暂停的视频跳到下一帧或上一帧?
我的意思是当它当前暂停或冻结在某个任意位置时,使视频跳转到后续帧或前一帧。

【问题讨论】:

  • 如果不是关键帧怎么办?
  • @Kaiido 那么我猜解码器应该获取最后一个前置关键帧并在内部进行快速渲染或播放或其他操作,以生成请求的帧索引。无论哪种方式,都与跳转到没有关键帧的任意时间位置时相同。
  • 对于“相关”部分,Firefox 有一个seekToNextFrame 非标准方法。
  • @Kaiido 哦,谢谢!虽然不是普遍可用的(它在 Chrome 或 Brave 中不起作用)seekToNextFrame 方法在我的 Firefox 中运行良好。我意识到这是一个非官方的功能,但对于我的用例来说它肯定会派上用场????

标签: javascript html html5-video video-processing frame-rate


【解决方案1】:

正如 cmets 和 AFAIK 中所提到的,没有定义任何标准来支持 HTML5 视频标签本身的帧精确搜索,除了上面提到的“seekToNextFrame”,正如您在此处看到的那样,它并未得到广泛支持:https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/seekToNextFrame

有提供此功能的商业 Javascript HTMl5 播放器 - 例如:

您还可以在开源 Shaka 播放器讨论组中找到有关此主题的讨论。

它不直接的原因是它通常需要播放器或浏览器(或客户端)首先找到最近的“I”帧,然后从该帧向前和/或向后解码以获得准确的你想要的框架。正如上面的示例实现所证明的那样,这在技术上当然是可行的,但我猜浏览器或开源播放器社区并没有要求优先考虑此功能。

【讨论】:

猜你喜欢
  • 2018-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-29
  • 2013-05-21
  • 1970-01-01
  • 2017-02-27
  • 1970-01-01
相关资源
最近更新 更多