- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在从 Canvas 录制的同时从视频元素录制音频。我有
var stream = canvas.captureStream(29);
现在我正在将视频的 audioTrack 添加到流中。
var vStream = video.captureStream();
stream.addTrack(vStream.getAudioTracks()[0]);
但这会降低每个添加视频的性能。由于 captureStream() 对视频非常重要,它还需要在 Chrome 中打开一个标志。有没有一种方法可以在不使用 captureStream() 的情况下从视频元素仅创建音频 MediaStream。
最佳答案
是的,您可以使用 Web Audio API 的方法 createMediaElementSource
这将从您的 mediaElement 中获取音频,然后是 createMediaStreamDestination
方法,它将创建一个 MediaStreamDestination 节点,其中包含一个 MediaStream。
然后您只需将它们连接起来,您就拥有了带有 MediaElement 音频的 MediaStream。
// wait for the video starts playing
vid.play().then(_=> {
var ctx = new AudioContext();
// create an source node from the <video>
var source = ctx.createMediaElementSource(vid);
// now a MediaStream destination node
var stream_dest = ctx.createMediaStreamDestination();
// connect the source to the MediaStream
source.connect(stream_dest);
// grab the real MediaStream
out.srcObject = stream_dest.stream;
out.play();
});
The video's audio will be streamed to this audio elements : <br>
<audio id="out" controls></audio><br>
The original video element : <br>
<video id="vid" crossOrigin="anonymous" src="https://dl.dropboxusercontent.com/s/bch2j17v6ny4ako/movie720p.mp4?dl=0" autoplay></video>
请注意,您还可以将更多源连接到此流,并且您还可以使用 new MediaStream([stream1, stream2])
构造函数将其与其他视频流组合(目前是在 FF 上组合不同流的唯一方法,直到 this bug is fixed,不过应该很快。
关于javascript - 从视频中获取 MediaStreamTrack(audio),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44300703/
我想在从 Canvas 录制的同时从视频元素录制音频。我有 var stream = canvas.captureStream(29); 现在我正在将视频的 audioTrack 添加到流中。 var
我想使用 WebRTC 将两个视频流从 Peer1 发送到 Peer2:让我们以前置和后置摄像头为例。 从概念上讲,Peer2 如何知道哪个流来自哪个摄像头? MediaStream document
webRTC 上的 mediaStream 接口(interface)允许多个 MediaStreamTrack,这些不一定是来自您的相机/麦克风的音频和/或视频流。 如何使用 JSON 对象创建 M
我想知道 VideoTrack 是否包含屏幕共享或网络摄像头流。我找不到任何属性,也找不到合适的约束 apply到轨道并稍后读出。 有人知道这样做的聪明方法吗? 我想避免通过 dataChannel
我正在构建一个 React 应用程序,需要访问使用以下代码获取的网络摄像头: navigator.mediaDevices.getUserMedia({ video: true, audio: fal
对于科学应用,我需要使用 JavaScript 对从网络摄像头接收到的视频流进行实时处理。 WebRTC 使在网站上显示实时流变得简单,并使用 还允许 take and process screens
我正在使用 WebRTC API 实现屏幕共享和媒体文件播放,我能够成功地共享屏幕并收听 mediaStreamTrack 结束事件。但是我能够成功地在 WebRTC 上播放媒体文件,但我无法收听 m
任何人都可以帮助修复 https 。我可以使用 stop() 停止视频流,但相机灯仍然亮着。无法在其他帖子中找到任何修复 mediaStream.stop(); // or mediaStream.g
我用了simpl.info代码为例。在他们的示例中,我可以在“视频源”选择中看到“TOSHIBA Web Camera - HD (13d3:5606)”。因此,他们可以检索源的标签属性。我可以很容易
我想了解 MediaStreamTrack '发送。根据MDN一个 ended事件是 Sent when playback of the track ends (when the value read
我使用 Firefox v55.0.2 在文档(https://developer.mozilla.org/en-US/docs/Web/API/Navigator/getUserMedia)中,在
我使用 getAudioTracks() 从视频元素中获取音频。然后我需要放大(增加音量)这个 audioTrack,然后用 addTrack() 将它添加到 Canvas 上,并用 webrtc 流
是否有等效的方法来获取连接到 PC 的视频设备列表?除了内置网络摄像头连接外,我还有一个外部网络摄像头连接。 mediastreamtrack.getsources 在 chrome 中工作,但 fi
我想知道媒体流轨道的实际 facesMode,以便根据事件摄像头位于设备的背面还是正面来反转(镜像)图像。如果实际的faceingMode为“user”,则视频的CSS属性将为:transform:s
我正在使用 getUserMedia 来访问网络摄像头。我有一个功能可以打开和关闭视频,执行以下操作: var videoTracks = this.stream.getVideoTracks()
我在 Web 应用程序中使用 MediaStream API,它允许多个用户基于 webrtc 进行 à conf 调用。当我使用 MediaStream.addTracks() 时,我的轨道 (Me
我是一名优秀的程序员,十分优秀!