从视频源

时间:2018-03-16 12:34:57

标签: angularjs video-streaming html5-video video-processing opentok

我正在使用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

中流式传输经过编辑的中等质量(不确定该做什么)视频

湾将视频上传到第三方服务并通过播放器加载视频。

提前致谢。

2 个答案:

答案 0 :(得分:0)

确保您为发布商和订阅者提供足够的带宽。例如,如果一个用户没有足够的带宽来接收VGA,它将收到一个质量较低的流,但所有其他用户都应该没问题。如果发布者没有良好的上传带宽,那么订阅者将难以获得良好的质量。 我希望这会有所帮助。

答案 1 :(得分:0)

您可能希望在发布商处设置minVideoBitrate,这会强制降低比特率。这是一个以每秒位数为单位的整数值。如果有参与者无法处理该最低比特率,那么他们将降至仅音频。

OT.initPublisher(el, {
  style: {
    nameDisplayMode: "on",
    buttonDisplayMode: "off",
  },
  minVideoBitrate: 2500000,
  audioSource: mediaStream.getAudioTracks()[0],
  videoSource: mediaStream.getVideoTracks()[0],
});