从 HTML5 视频中获取 MP4 创建时间

Posted

技术标签:

【中文标题】从 HTML5 视频中获取 MP4 创建时间【英文标题】:Obtaining MP4 Creation Time from HTML5 video 【发布时间】:2016-08-30 23:48:20 【问题描述】:

有没有办法在 javascript 中获取视频元素中当前正在播放的 mp4 文件的创建时间(MP4 文件的 moov atom 的子字段)?

动机是 webclient 应该显示带有绝对时间戳的 OSD。如果没有创建时间字段,它不知道绝对时间戳,只能显示相对于开始时间的时间。

【问题讨论】:

【参考方案1】:

很遗憾,没有。浏览器只会从 MP4 文件容器中读取视频和音频数据并对其进行解码。持续时间等其他元数据在内部处理。

您可以通过以下方式绕过它:

使用包含在名称中编码的时间戳的文件名在服务器端准备文件。通过必要的方式从容器中提取时间戳。 向包含从客户端单独读取的日期戳的 mp4 文件提供元文件。 通过 XMLHttpRequest 加载文件并手动解析文件以找到包含数据的块。当然,这样做也存在一些问题,例如不得不将整个文件加载到内存中。

【讨论】:

谢谢。我将使用第三个选项 + 以下库 github.com/gpac/mp4box.js 来解析 moov。

以上是关于从 HTML5 视频中获取 MP4 创建时间的主要内容,如果未能解决你的问题,请参考以下文章

当用户寻找另一个时间时,计算 HTML5 视频流中的 .m4s 段文件后缀

用于 chrome 中 html5 视频的 Servlet 流式传输 mp4

HTML5 drawimage 从视频到画布

为啥webkit浏览器在播放前需要下载整个html5视频(mp4)?

Android:Html 5 视频在活动完成时不会停止

HTML5 .mp4 视频 - IE 问题 - 将白色变为灰色