我正在使用opentok来传输视频文件MediaStreamTrack
示例代码:
<video id="myPreview" controls ></video>
const mediaStream = $('#myPreview')[0].captureStream()
OT.initPublisher(el, {
style: {
nameDisplayMode: "on",
buttonDisplayMode: "off",
},
// resolution: "320x240",
// frameRate: 20,
audioSource: mediaStream.getAudioTracks()[0],
videoSource: mediaStream.getVideoTracks()[0],
});
它工作正常,但问题是当观众大约20时,视频质量会像素化。
更多背景信息: 我上传视频并使用blob在预览中播放视频。
我愿意接受更好的解决方案:
一个。将视频上传到服务器,并在myPreview
。
湾将视频上传到第三方服务并通过播放器加载视频。
提前致谢。
答案 0 :(得分:0)
确保您为发布商和订阅者提供足够的带宽。例如,如果一个用户没有足够的带宽来接收VGA,它将收到一个质量较低的流,但所有其他用户都应该没问题。如果发布者没有良好的上传带宽,那么订阅者将难以获得良好的质量。 我希望这会有所帮助。
答案 1 :(得分:0)
您可能希望在发布商处设置minVideoBitrate,这会强制降低比特率。这是一个以每秒位数为单位的整数值。如果有参与者无法处理该最低比特率,那么他们将降至仅音频。
OT.initPublisher(el, {
style: {
nameDisplayMode: "on",
buttonDisplayMode: "off",
},
minVideoBitrate: 2500000,
audioSource: mediaStream.getAudioTracks()[0],
videoSource: mediaStream.getVideoTracks()[0],
});