问题标签 [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.
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 这样做?
- 对于我缺少的这种行为,是否有不同的解释?
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。
firefox - 使用 MediaRecorder 指定编解码器
如何指定与MediaRecorder API一起使用的编解码器?我看到的唯一选项是mimeType,这还不够。在 mimeType 选项中塞入编解码器似乎不起作用。
这会产生一个带有 Vorbis 和 VP8 的 WebM 流:
如果我制作了一个只有音轨(没有视频)的 MediaStream,那么 MediaRecorder 在 Ogg 容器中输出 Opus 音频:
如何使用 MediaRecorder API 在 WebM 容器中获取带有 VP8 视频的 Opus 音频?
火狐 v44.0.2
android - Ogg vs amr 使用哪种格式 Android
我需要为我的应用程序使用Api开发录音机。MediaRecorder
设置时有不同的格式mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_WB);
,我有点困惑使用哪种格式以获得更好的质量和尺寸?我是否应该以某种方式认为ogg
文件大小小于其他文件大小,反之亦然。请相应地告知应使用哪种格式。请记住,录制的文件将被发送到服务器
audio - 使用 Web Audio API 可视化存储(非实时)音频的波形
我正在使用 MediaRecorder API 从麦克风录制媒体流。我想在画布上绘制录制音频的可视化。Web Audio API 的 AnalyserNode 可视化来自流的实时音频。
有没有办法使用 Web Audio API 的 AnalyserNode 可视化静态/存储(而不是实时)音频的波形?
javascript - 从未使用 mimeType 初始化的 MediaRecorder 获取 mimeType
我正在使用 MediaRecorder API 在页面上记录一些媒体。在我的 MediaRecorder 初始化中,我没有指定内容类型,因为我不需要任何特别的东西。浏览器可以选择它想要的。
但是,当需要保存该记录时,我需要知道 blob 的 mimeType,这样我才能确定一个合理的文件扩展名。
MediaRecorder.mimeType属性是我想要的,但它是一个空字符串。它没有设置mimeType
为 MediaRecorder 的默认值,所以我似乎无法知道默认值mimeType
是什么。
javascript - 如何将png图像数据数组转换为视频文件
我从canvas
through获取帧canvas.getDataURL()
。
但是,现在我有一组 png 图像,但我想要一个视频文件。
我该怎么做呢?
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
javascript -
使用javascript
原件MediaRecorder-examples/record-canvas-to-video.js
软件要求
- Firefox 45。这是一个 Firefox 技术演示。因此,如果它没有实现我们正在演示的内容,它可能无法在您的浏览器上运行。在撰写本文时(2016 年 1 月),您需要下载 Firefox Developer Edition 或 Firefox Nightly。
在铬 55 处产生错误
虽然在 Firefox 52 处返回预期结果。
通过将事件推送到数组,然后在事件中连接 blob 来调整在铬javascript
上的使用Blob
dataavailable
MediaRecorder
stop
类似于 firefox 渲染记录的流。
然而,在 firefox 和 chromium 上播放视频的调整明显最小,但在连接的 blob 之间存在明显的延迟。
我们如何渲染使用at元素canvas.captureStream()
录制的相同视觉回放?MediaRecorder()
<video>
javascript - 我们如何使用 mediaRecorder 将画布流与音频流混合
我有一个使用 canvas.captureStream() 的画布流。我有来自 webrtc 视频通话的另一个视频流。现在我想将画布流与视频流的音轨混合。我该怎么做?