Javascript RTPeerConnection-从外部源重新对MediaStreamTrack进行流式处理时,MediaStreamTrack只有黑色帧
我目前正在通过Javascript RTPeerConnection-从外部源重新对MediaStreamTrack进行流式处理时,MediaStreamTrack只有黑色帧,javascript,electron,webrtc,rtcpeerconnection,peer-connection,Javascript,Electron,Webrtc,Rtcpeerconnection,Peer Connection,我目前正在通过rtpeerconnection从一个电子窗口向另一个电子窗口发送MediaStreamTrack 我目前的问题是,除了远程音轨之外,其他一切都正常工作。我的相机的MediaStreamTrack是在本地主机上创建的,可以毫无问题地发送,但当我尝试发送从外部服务器接收的曲目时,它只显示黑色帧 这和我想的是同一个问题 我查过的 正在接收曲目(我已选中chrome://webrtc-internals),视频元素处于播放状态。我在控制台和webrtc内部都没有看到任何错误。 此外,流/
rtpeerconnection
从一个电子窗口向另一个电子窗口发送MediaStreamTrack
我目前的问题是,除了远程音轨之外,其他一切都正常工作。我的相机的MediaStreamTrack
是在本地主机上创建的,可以毫无问题地发送,但当我尝试发送从外部服务器接收的曲目时,它只显示黑色帧
这和我想的是同一个问题
我查过的
正在接收曲目(我已选中chrome://webrtc-internals
),视频元素处于播放状态。我在控制台和webrtc内部都没有看到任何错误。
此外,流/轨迹已启用,但未禁用。在源窗口上使用captureStream()
会产生相同的结果
使用外部源捕获和流式传输视频元素没有任何问题
可能原因
我认为问题可能是初始流来自一个不是localhost
的域,因此无法对其进行重新分组。在w3c标准中,其描述如下:
曲目可能包含应用程序无法访问的内容。这可能是由于任何会使轨道交叉原点的原因。可以将这些曲目提供给addTrack()方法,并为其创建RTCRtpSender,但不能传输内容。发送静音(音频)、黑色帧(视频)或同等缺失的内容来代替曲目内容
主意
我不确定我上面提到的“可能的问题”是否是真正的问题,但我的一个想法是重写请求和响应头以匹配localhost
,但它不起作用。我想这不会影响WebRTC连接
我使用的电子挂钩:
session.defaultSession.webRequest.onBeforeSendHeaders();
session.defaultSession.webRequest.onHeadersReceived();
您使用的是铬吗?是的,因为electron基于铬。文件是.mp4吗?我想我刚刚发现了一个错误,captureStream API不能与.mp4一起使用,但它可以与WebMI完美配合。我想这是一个通过webrtc的VP8流,我试图捕获并重新流到另一个视频元素。