在Web和移动应用程序上流式传输视频

时间:2017-11-18 17:17:19

标签: video-streaming streaming webrtc rtsp kurento

我目前正在研究构建以下场景的方法 - 使用C ++编写的移动应用程序(适用于Android的NDK)+使用Python编写的Web应用程序(Django和Angular / React / Expo)以及允许使用的Web服务器两个客户端都在他们之间启动视频流会话。

该项目是为了自学,我试图在我应该参与的技术主题中寻找最佳解决方案。

我读到了:

  1. SIP - 启动VoIP呼叫和视频会话的警报协议,但我读过的人更喜欢将他用作语音呼叫,而不是视频呼叫。
  2. RTSP - 负责在两个端点之间启动流式传输会话。
  3. WebRTC - 提供从Web应用程序流式传输视频的方法的框架。这为我们提供了SIP + RTP功能,而无需使用任何其他软件/硬件。
  4. 就目前而言,我试图让我明白我应该使用哪些平台/协议或如何使用它们。

    • 根据我对网络应用程序(浏览器)的流媒体/语音呼叫的理解,我必须使用WebRTC吗?或者我们今天有其他解决方案吗?
    • 考虑到移动应用程序(Android / Windows Phone / iOS),理论上我可以使用SIP + RTP(如果我错了,请纠正我)以及使用RTSP。是否有更多可选的旧/新可能性?

    如果我没有马上回答,请回答所有答案:)

1 个答案:

答案 0 :(得分:0)

如果您想进行视频通话,可以使用vanilla WebRTC(请参阅WebRTC Samples)。有一些库(Jssip,Sip.js等)在WebRTC之上实现SIP,利用信令标准并开启使用SIP服务器进行更容易通信的可能性(例如星号)

如果确实需要RTSP,您应该意识到WebRTC不直接支持RTSP。您可以使用(有几种方法解决您的问题),例如janus-gateway

其他非常吸引人的可能性是将星号 chan_rtsp 一起使用。您可以使用WebRTC顶部的SIP库创建一个Web应用程序,并对您希望的摄像头进行邀请呼叫。遗憾的是,如果没有最新版本的PBX软件中的补丁,此模块将无法运行。