您如何判断 HTML5 视频是实时流还是只是来自 Javascript 的视频?
Posted
技术标签:
【中文标题】您如何判断 HTML5 视频是实时流还是只是来自 Javascript 的视频?【英文标题】:How do you tell if a HTML5 video is a live stream or just a video from Javascript? 【发布时间】:2019-07-26 07:57:36 【问题描述】:为 YouTube 创建一个 javascript Chrome 扩展,我想在其中判断视频是实时流还是只是流。
查看html5 documentation,我尝试了ondurationchange,但没有成功。还尝试查看“Live”元素是否在 YouTube HTML 中,但无论如何它似乎总是存在:
var live = document.getElementsByClassName('ytp-live-badge');
【问题讨论】:
直播和直播没有区别。您只需在 HTML 结构中寻找指示即可。 你能得到视频的长度吗?也许您可以获取初始视频长度,然后设置一个定时事件以在几秒钟后再次检查长度,看看它是否改变了? 【参考方案1】:要检查 YouTube 上的视频是否为直播视频,您已经完成了对 .ytp-live-badge
元素的查询。你只需要检查它是否被禁用:
var liveBadge = document.querySelector('.ytp-live-badge');
var live = liveBadge && !liveBadge.getAttribute('disabled');
console.log(live);
【讨论】:
行得通,谢谢!只是想知道,在 HTML5 API 中是否有一种通用的方法来做到这一点? 不幸的是,我不认为有任何纯 HTML5 方法可以做到这一点。我相信,唯一的区别是也许用于获取数据的协议,这很不稳定(例如,我认为您可以拥有基于 HTTP 的实时流,然后您必须基于文件扩展名的假设)。而且,无论如何,我认为您无法在 YT 上确定这一点,因为<video>
src 是一个 blob:
URL,没有任何协议/URL 信息。以上是关于您如何判断 HTML5 视频是实时流还是只是来自 Javascript 的视频?的主要内容,如果未能解决你的问题,请参考以下文章
来自WINDOWS中c ++ opencv应用程序的低延迟视频流[关闭]