问题标签 [web-mediarecorder]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 正确使用 MediaRecorder 与 start 指定的时间片参数的方法
阅读此页面https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder.start后,我编写了自己的代码:
我希望在#recordingCamera 元素显示我相机的内容后 3 秒后,我将在 #replay 元素中看到内容重播。
但是#replay 元素只播放 3 秒。之后,#recordingCamera 元素仍然显示摄像机内容,但 #replay 元素没有其他内容。
检查控制台时,我发现了以下消息:
ondataavailable仍然被触发,但数据发生了问题。
我的问题:
- 这是Firefox的错误吗?
- 如果不是,那么使用带有 start 指定的时间片参数的 MediaRecorder 的正确方法是什么?
asp.net-web-api - 屏幕关闭时 MediaRecorder 停止
我有一个使用带有麦克风流的媒体记录器的应用程序。一切正常,只有一个例外。当我关闭显示器时,它会停止录制,当我重新打开它时,它会继续录制。就好像它正在暂停流,直到我再次解锁手机。
即使显示屏关闭,我也希望能够继续录制。我在firefoxOs 1.3上。
javascript - 超过几秒的 MediaRecorder 视频无法播放
我想在浏览器中录制视频,然后为用户播放。我目前正在使用 MediaRecorder API(目前仅在 Firefox 中可用)来执行此操作。它适用于短于几秒钟的视频,但否则视频根本不会显示。
控制台或类似内容中没有错误,我在文档中找不到任何有关文件大小限制的信息。
这是我正在使用的代码(仅限 Firefox):
索引.html:
脚本.js:
在 Codepen 上:http ://codepen.io/anon/pen/xGqKgE
这是一个错误/浏览器问题吗?这个 API 有什么我不知道的限制吗?
firefox - 使用 Firefox WebRTC Media Recorder 制作可搜索的视频
我一直在尝试在网页上捕获网络摄像头视频。我注意到我使用的方法不是创建可搜索的视频。我不确定这是因为我做错了什么,还是 Firefox 中存在错误。
有没有办法解决或解决这个问题?我在想象更糟糕的情况,我可能需要使用 FFmpeg 之类的工具来解决这个问题。
javascript - 将 blob 作为 Uint8Array 发送到 NodeJS 并将其保存到文件
我正在尝试将来自 Firefox 中的新 MediaRecorder API 的 blob 发送到 NodeJS 以将其存储在文件中。该 blob 包含作为转换后的 webm 文件的记录。我在发送之前将这个 blob 分块成一定的大小,以便能够通过 webrtc 数据通道提供的带宽发送它。这看起来像这样:
在 nodeJS 方面,我试图将数据转换回 webm 文件,如下所示:
它告诉我,该块已写入,但文件为空。我对从 blob 派生的 base64 编码字符串进行了同样的尝试,它有效,但由于可能的数据损坏,这似乎是个坏主意。
我错过了什么?或者有没有更好的方法将 blob 从 JavaScript 传输到 NodeJS?
编辑
uint8array-constructor 似乎不接受以字符串形式传入的数据:
'0':39,'1':209,'2':79,'3':0,'4':230,'5':133,
'6':190,'7':138,'8 ':188,'9':103,'10':131,
在 new Uint8Array(message.payload) 部分之后,数组长度仍然为0。那么应该怎么做呢?
编辑二
在使用 JSON.stringify() 时添加 .toString() 后,我设法如愿接收了 UInt8Array。然而,正如上面现在显示的代码,它只将 [object uint8array] 写入文件。
EDIT III - 解决方案
使用上面的代码可以正常工作。
firefox - 控制 Firefox 中视频/音频流的音量增益
我正在尝试使用适用于 Firefox 的 MediaRecorder API 录制视频/音频文件。
当我使用网络音频 API 创建节点时(源 -> 增益 -> 目标)
录制文件的输出仅为音频,因为来自目标节点的返回流仅为音频流,请参阅此文档 https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamAudioDestinationNode
有关在目标输出中获取音频/视频流以录制音频/视频而不仅仅是音频的任何建议。
firefox - 使用 MediaRecorder 指定编解码器
如何指定与MediaRecorder API一起使用的编解码器?我看到的唯一选项是mimeType,这还不够。在 mimeType 选项中塞入编解码器似乎不起作用。
这会产生一个带有 Vorbis 和 VP8 的 WebM 流:
如果我制作了一个只有音轨(没有视频)的 MediaStream,那么 MediaRecorder 在 Ogg 容器中输出 Opus 音频:
如何使用 MediaRecorder API 在 WebM 容器中获取带有 VP8 视频的 Opus 音频?
火狐 v44.0.2
javascript - 保存大文件
我需要在 JS 中保存一个未知大小的文件,可能是多个千兆字节。数据源是使用 mediarecorder 捕获的媒体流。
在 Chrome 中,这可以通过使用带有 filesystem: url 的文件系统和文件编写器 api 来完成,方法是在收到 blob 块时将它们写入文件条目,然后设置指向文件 url 的下载链接。
但是,我找不到在 Firefox 或 Edge 中执行此操作的方法(只要它获得 mediarecorder)。
javascript - MediaSource 随机停止视频
我正在做一个我想做的项目
我让它工作,但是几秒钟后它随机停止。
我知道 WebRTC,但在我正在研究的项目中,它基于一个环境,该环境是不支持 WebRTC 的嵌入式 Chrome 版本。
服务器:
客户:
javascript - 从未使用 mimeType 初始化的 MediaRecorder 获取 mimeType
我正在使用 MediaRecorder API 在页面上记录一些媒体。在我的 MediaRecorder 初始化中,我没有指定内容类型,因为我不需要任何特别的东西。浏览器可以选择它想要的。
但是,当需要保存该记录时,我需要知道 blob 的 mimeType,这样我才能确定一个合理的文件扩展名。
MediaRecorder.mimeType属性是我想要的,但它是一个空字符串。它没有设置mimeType
为 MediaRecorder 的默认值,所以我似乎无法知道默认值mimeType
是什么。