问题标签 [mediastreamtrack]

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 回答
149 浏览

javascript - 使用光标捕获画布流

HTMLCanvasElement.captureStream()用来获取 aMediaStream并将其传递给 aMediaRecorder以将其写入 .webm 文件。

根据mdn,从中MediaStream检索的 snavigator.mediaDevices.getDisplayMedia()可以指定一个选项来捕获光标。这是通过将字典传递{cursor: 'always'}.getDisplayMedia()方法或MediaStreamTrack.applyConstraints()方法来完成的。

有没有办法MediaStream从 a 捕获 s的光标HTMLCanvasElement是 JSFiddle 上的简化复制示例;确保允许弹出。相关行重复如下:

我也试过stream.getTracks()[0].applyConstraints({cursor: 'always'})无济于事。

0 投票
0 回答
46 浏览

javascript - MediaDevice applyConstraints 不起作用

我正在尝试对视频轨道应用新的约束,但它不起作用:

我希望在应用约束之前得到答案“1280, 960”,之后得到“640, 480”。但我看到的是“1280, 960”。为什么?我怎样才能正确应用它?

0 投票
0 回答
43 浏览

reactjs - React:如何将 MediaStreamTrack 附加到 Video 元素?

嘿,所以我要做的是跟踪本地存储在内存中的 MediaStreamTrack,然后使用 html5 视频元素在用户的浏览器中播放。这是我目前拥有的:

这样做的问题是视频将首先绘制为空/空白,并且只有在调用 useEffect 函数后,页面才会重新渲染并附加 MediaStreamTrack。这会导致非常明显的闪烁。

我希望有一种更简单的方式

有这样的事情存在吗?这样我们就可以同时渲染 MediaStreamTrack 和 HTML5 视频元素?

0 投票
0 回答
35 浏览

ffmpeg - 无法在服务器中使用 MediaRecorder 录制流?

首先,我尝试使用 SFU 模型从浏览器到服务器建立 Webrtc 对等连接。

这是使 webrtc 对等连接从浏览器到服务器 (SFU) 的发布请求

在handleTrackEvent 函数中,我得到了要开始记录并保存在服务器本地存储中的流。

但是当尝试开始录制并以 5 秒的间隔获取 blob 时,它给了我“MediaRecorder Not Found”...

我是 webrtc 的新手,我需要一些建议来将实时流从浏览器保存到服务器....将来,如果找到 blob,那么我会将 blob 按顺序保存在服务器中的 mp4 文件中。然后,在运行时,我开始在该 mp4 文件中按 ffmpeg 以获取 240p、360p、720p ts 文件用于 hls 流

0 投票
0 回答
18 浏览

canvas - 我可以在用于 RTPeerConnection 的 MediaStreamTrack 上进行绘制,而无需先复制到画布吗?

我已经阅读了 MDN webRTC 对 MediaStreamTrack 的描述,发现它有一些限制,但显然没有诸如 video.style.filter 之类的属性,也没有访问 MediaStreamTrack 和 RTCPeerConnection/RTPSender 之间使用的画布。基于https://webcamtoy.com/我可以将 video.style.filter 设置添加到视频元素。

有没有办法避免将轨道分配给视频元素,将轨道从视频元素复制到画布,在画布上绘图,然后将画布分配给对象和 addTrack() ?

0 投票
0 回答
29 浏览

mediastream - 无法使用 RTCPeerConnection 创建适用于所有浏览器的空白视频媒体流轨道

我可以让它在 Firefox 和 Chrome 上工作,但不能在 Safari 上工作。在 Safari 上,它将被创建,但是当您将其用于 RTCPeerConnection.addTrack 时,浏览器会崩溃。

有没有办法创建一个视频类型的 MediaStreamTrack,它只是一个空白视频?

0 投票
0 回答
17 浏览

google-chrome - 将 mediastreamtrack.enabled 设置为 false,为什么从音频源连接的脚本处理器中存在非零 pcm 数据

我正在 Chrome 上尝试 webrtc。我使用 getUserMedia 来获取音频媒体轨道并使用 AudioContext.createScriptProcessor 来显示来自音频媒体轨道的所有 pcm 数据。

在我设置 audioTrack.enbled=false 后,仍然有非零 pcm 数据。这与 MDN 上描述的不同:

在音频的情况下,禁用的轨道会生成静音帧(即,每个样本的值为 0 的帧)。对于视频轨道,每一帧都完全用黑色像素填充。 MediaStreamTrack.enabled