如何使用没有 Flash 的网络浏览器捕获和存储 h.264 格式的视频?

Posted

技术标签:

【中文标题】如何使用没有 Flash 的网络浏览器捕获和存储 h.264 格式的视频?【英文标题】:How to capture and store a video in h.264 format using web browsers without Flash? 【发布时间】:2013-07-24 01:31:57 【问题描述】:

如何使用不带 Flash 的网络浏览器捕获视频并将其存储h.264 格式

根据我的分析,HTML5 可用于访问摄像头和麦克风而无需 任何额外的插件,如此链接中所示。 "http://www.html5rocks.com/en/tutorials/getusermedia/intro/"

但是,我不知道是否可以以 h.264 格式存储视频。

我希望不要安装任何额外的插件。但是,如果没有任何额外的插件就不可能,我会接受它。如果需要,我也可以使用 **Java Applets

HTML 5 是唯一的选择还是 JScript 本身可能?我也希望 ffmpeg 也能帮助我。

【问题讨论】:

【参考方案1】:

3 年后,现在可以使用 Chrome 52(2016 年 7 月 20 日)和 Media Recorder API 在浏览器中录制 H.264 视频 没有插件或 Java 或 Flash。

Chrome 52 是第一个支持 Media Recorder API 和 H.264 进行视频编码的版本。 Chrome 49,50 和 51 仅支持 VP8 和 VP9 作为视频编解码器,Chrome 48- 不支持 Media Recorder API。

使用的音频编解码器仍然是 Opus @ 48kHz,容器是 .webm,因此如果您想要广泛的浏览器/设备支持,仍然必须通过 FFmpeg 传递文件。

This article(由我共同撰写)详细介绍了跨 Firefox 和 Chrome 的媒体记录器 API,并且在 Chrome 52 上有此 Media Recorder API demo that supports H.264 编码 + 相关代码为 GitHub project。

免责声明:我在 Pipe 工作,我们处理视频录制。

【讨论】:

【参考方案2】:

还没有,但它看起来即将到来。

MediaStream Recording 有一个规范草案,但尚未在任何浏览器中实现。有一个 ticket 可以将其构建到 Chrome 中,您可以对其进行跟踪。

有人为record video into WebM 构建了一个javascript 库,尽管它不做音频。它使用浏览器的内置函数来保存 WebP 图像进行编码。理论上,你可以用 Javascript 写一个 h.264 编码器,但它会很慢而且很难写。

【讨论】:

谢谢。如果我使用其他插件或使用 java 小程序,是否还有其他替代解决方案。 我会避开 Java 小程序,但 google 搜索会出现一些 Flash 视频录像机。我没有具体的推荐。 是的..但是,我的情况是不使用Flash..有一些像JFFMPG这样的库..无论如何,每个都有自己的局限性并且有很多问题......我会的如果我能从像你这样在该领域有经验的人那里得到一个久经考验的方法,我将不胜感激。 我很好奇,为什么 Flash 不是一个选项?

以上是关于如何使用没有 Flash 的网络浏览器捕获和存储 h.264 格式的视频?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用js捕获css3动画

如何使用 Javascript 捕获 Flash Player 的事件

如何在浏览器中使用 Flash 客户端将网络摄像头流式传输到 RTMP 服务器?

screentoaster.com 如何从浏览器捕获您的计算机屏幕?

如何捕获 Flex 中的所有异常?

从 Flash 播放器捕获正在播放的视频