问题标签 [mediarecorder-api]

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.

0 投票
1 回答
472 浏览

javascript - MediaRecorder 在没有挑衅的情况下更改大小

我正在使用MediaRecorder API 和Canvas captureStream方法在浏览器中对画布的 VP8 视频流进行编码。该数据通过二进制 Web 套接字发送到 FFmpeg。

出于某种原因,流似乎随机切换到较低分辨率的中流。FFmpeg 对此并不满意:

输入流 #0:0 帧从 size:1280x720 fmt:yuv420p 更改为 size:1024x576 fmt:yuv420p

[vp8 @ 0x2a02c00] 未实现升级。将您的 FFmpeg 版本更新到 Git 的最新版本。如果问题仍然存在,则意味着您的文件具有尚未实现的功能。[vp8 @ 0x2a02c00] 如果您需要帮助,请将此文件的示例上传到ftp://upload.ffmpeg.org/incoming/并联系 ffmpeg-devel 邮件列表。(ffmpeg-devel@ffmpeg.org)

我怀疑这与 CPU 使用率过高有关,并且 Firefox 试图通过缩小视频来提供帮助。我的问题:

  • Firefox 是否会即时缩小视频?
  • 如果是这样,什么条件导致这种情况发生?(CPU 负载?流背压?)
  • 是否可以阻止 Firefox 这样做?
  • 对于我缺少的这种行为,是否有不同的解释?
0 投票
2 回答
5552 浏览

javascript - 将 Firefox 选项卡录制为视频,例如 chrome 上的 screencastify

我想通过浏览器扩展记录一个 Firefox 浏览器选项卡,例如Screencastify扩展在 chrome 中所做的。关于 chrome 扩展的 Recording Session ,chrome.tabCapture API 用于获取当前活动标签的流,并记录使用Web-RTC Experiment 的RecordRTC.js流。同样明智的是,Mozilla Firefox 中是否有任何 API 可以获取 Firefox 浏览器中的选项卡流。

PS:我问的是记录 Firefox 的选项卡,而不是记录屏幕或窗口或通过 cam。

0 投票
2 回答
3521 浏览

firefox - 使用 MediaRecorder 指定编解码器

如何指定与MediaRecorder API一起使用的编解码器?我看到的唯一选项是mimeType,这还不够。在 mimeType 选项中塞入编解码器似乎不起作用。

这会产生一个带有 Vorbis 和 VP8 的 WebM 流:

如果我制作了一个只有音轨(没有视频)的 MediaStream,那么 MediaRecorder 在 Ogg 容器中输出 Opus 音频:

如何使用 MediaRecorder API 在 WebM 容器中获取带有 VP8 视频的 Opus 音频?

火狐 v44.0.2

0 投票
1 回答
713 浏览

android - Ogg vs amr 使用哪种格式 Android

我需要为我的应用程序使用Api开发录音机。MediaRecorder设置时有不同的格式mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_WB);,我有点困惑使用哪种格式以获得更好的质量和尺寸?我是否应该以某种方式认为ogg文件大小小于其他文件大小,反之亦然。请相应地告知应使用哪种格式。请记住,录制的文件将被发送到服务器

0 投票
0 回答
156 浏览

audio - 使用 Web Audio API 可视化存储(非实时)音频的波形

我正在使用 MediaRecorder API 从麦克风录制媒体流。我想在画布上绘制录制音频的可视化。Web Audio API 的 AnalyserNode 可视化来自流的实时音频。

有没有办法使用 Web Audio API 的 AnalyserNode 可视化静态/存储(而不是实时)音频的波形?

0 投票
2 回答
1460 浏览

javascript - 从未使用 mimeType 初始化的 MediaRecorder 获取 mimeType

我正在使用 MediaRecorder API 在页面上记录一些媒体。在我的 MediaRecorder 初始化中,我没有指定内容类型,因为我不需要任何特别的东西。浏览器可以选择它想要的。

但是,当需要保存该记录时,我需要知道 blob 的 mimeType,这样我才能确定一个合理的文件扩展名。

MediaRecorder.mimeType属性是我想要的,但它是一个空字符串。它没有设置mimeType为 MediaRecorder 的默认值,所以我似乎无法知道默认值mimeType是什么。

0 投票
2 回答
6137 浏览

javascript - 如何将png图像数据数组转换为视频文件

我从canvasthrough获取帧canvas.getDataURL()

但是,现在我有一组 png 图像,但我想要一个视频文件。

我该怎么做呢?

0 投票
0 回答
1700 浏览

javascript - Media Recorder API 生成的 webm 编码错误?

当我使用 Media Recorder API 录制视频并使用 VLC 下载和打开它时,视频的长度是未知的。

此外,在 Chrome 移动版 (52.0.2743.98) 上,如果我在视频标签中读取它,则不会显示长度,currentTime 将始终为 0,并且 ontimeupdate 只会在视频结束时启动。

在 Chrome 桌面 (52.0.2743.116) 上,长度不显示,但 ontimeupdate 和 currentTime 似乎工作正常。

我已经从开发者 google demo录制并下载了视频。该视频是一个 webm,因为它似乎是chrome 支持的唯一类型

任何想法 ?

来自 ffpmeg 的元数据:

libavutil 54. 31.100 / 54. 31.100 libavcodec 56. 60.100 / 56. 60.100 libavformat 56. 40.101 / 56. 40.101 libavdevice 56. 4.100 / 56. 4.100 libavfilter 5. 40.101 / 5. 40.101 libswscale 3. 1.101 / 3. 1.101 libswresample 1. 2.101 / 1. 2.101 libpostproc 53. 3.100 / 53. 3.100 Input #0, matroska,webm, from 'test.webm': Metadata: encoder : Chrome Duration: N/A, start: 0.000000, bitrate: N/A Stream #0:0(eng): Audio: opus, 48000 Hz, mono, fltp (default) Stream #0:1(eng): Video: vp9 (Profile 0), yuv420p(tv), 480x640, SAR 1:1 DAR 3:4, 30 fps, 30 tbr, 1k tbn, 1k tbc (default) File 'metadata.txt' already exists. Overwrite ? [y/N] y Output #0, ffmetadata, to 'metadata.txt': Metadata: encoder : Lavf56.40.101 Stream mapping: size= 0kB time=--577014:-32:-22.-77 bitrate=N/A video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

0 投票
1 回答
1023 浏览

javascript -

使用javascript原件MediaRecorder-examples/record-canvas-to-video.js

软件要求

  • Firefox 45。这是一个 Firefox 技术演示。因此,如果它没有实现我们正在演示的内容,它可能无法在您的浏览器上运行。在撰写本文时(2016 年 1 月),您需要下载 Firefox Developer Edition 或 Firefox Nightly。

在铬 55 处产生错误

虽然在 Firefox 52 处返回预期结果。

通过将事件推送到数组,然后在事件中连接 blob 来调整在铬javascript上的使用BlobdataavailableMediaRecorderstop

类似于 firefox 渲染记录的流。

然而,在 firefox 和 chromium 上播放视频的调整明显最小,但在连接的 blob 之间存在明显的延迟。

我们如何渲染使用at元素canvas.captureStream()录制的相同视觉回放?MediaRecorder()<video>

plnkr http://plnkr.co/edit/KgGpkCJRvPG2T2Jy4wyH?p=preview

0 投票
1 回答
3558 浏览

javascript - 我们如何使用 mediaRecorder 将画布流与音频流混合

我有一个使用 canvas.captureStream() 的画布流。我有来自 webrtc 视频通话的另一个视频流。现在我想将画布流与视频流的音轨混合。我该怎么做?