欢迎光临
我们一直在努力

WebRTC中WHIP和WHEP协议

        WHIP 和 WHEP 是两种基于 WebRTC 的协议,分别用于视频推流(直播)和视频拉流(播放),旨在简化 WebRTC 与媒体服务器的集成。

1. WHIP (WebRTC-HTTP Ingestion Protocol)

  • 用途:将视频流从客户端(如浏览器、OBS)推送到媒体服务器(类似 RTMP 的 WebRTC 替代方案)。

  • 工作原理:

  • 客户端通过 HTTP POST 请求向服务器发起 WHIP 请求,携带 SDP Offer。

  • 服务器返回 SDP Answer 和 ICE Candidate,建立推流连接。

  • 视频流通过 WebRTC 传输到服务器,再由服务器分发(如转码后通过 HLS 或 RTMP 分发)。

  • 优势:

    • 低延迟(比 RTMP 更低,通常 <1s)。

    • 基于 WebRTC,无需插件,浏览器原生支持。

  • 应用场景:

    • 直播推流(如 OBS 替代方案)。

    • 视频会议中的主讲人上行流。

2. WHEP (WebRTC-HTTP Egress Protocol)

  • 用途:从媒体服务器拉取视频流到客户端(类似 HLS 或 DASH 的 WebRTC 替代方案)。

  • 工作原理:

  • 客户端通过 HTTP GET 请求向服务器发起 WHEP 请求,携带 SDP Offer。

  • 服务器返回 SDP Answer 和 ICE Candidate,建立拉流连接。

  • 客户端通过 WebRTC 接收实时视频流。

  • 优势:

    • 低延迟播放(与 WHIP 配合可实现端到端 <1s 延迟)。

    • 无需依赖 ABR(自适应码率)协议(如 HLS/DASH)。

  • 应用场景:

    • 超低延迟直播播放(如体育赛事、互动直播)。

    • 监控视频实时查看。

3. WHIP vs WHEP 对比

特性WHIP (推流)WHEP (拉流)
方向 客户端 → 服务器 服务器 → 客户端
协议 HTTP POST + WebRTC HTTP GET + WebRTC
延迟 <1s <1s
替代方案 RTMP、SRT HLS、DASH、RTMP 拉流
典型应用 直播推流、视频会议上行 直播播放、监控回放

4. 常见实现方案

  • 服务端支持:

    • 媒体服务器:GStreamer、Janus、LiveKit、Ant Media Server。

    • CDN:部分云服务商已支持 WHIP/WHEP(如 Cloudflare Stream)。

  • 客户端支持:

    • WHIP:浏览器(通过 JavaScript)、OBS(插件)。

    • WHEP:浏览器(如 video 标签 + WHEP.js)。

5. 为什么需要 WHIP/WHEP?

  • 简化流程:传统 WebRTC 需要复杂的信令协商,而 WHIP/WHEP 通过标准化 HTTP 接口隐藏细节。

  • 兼容性:可与现有 REST API 生态集成(如鉴权、资源管理)。

  • 低延迟:弥补了 RTMP(高延迟)与 HLS(3s+ 延迟)的不足。

6. 推流与拉流命令举例

  • WebRTC推流: http://localhost:1985/rtc/v1/whip/?app=live&stream=livestream
  • WebRTC播放: http://localhost:1985/rtc/v1/whep/?app=live&stream=livestream

早期还没有WHIP和WHEP时,SRS支持过另外一种格式,只是HTTP API的格式不同,做的事情还是交换SDP。现在已经不推荐使用了:

  • Publish: webrtc://localhost/live/livestream
  • Play: webrtc://localhost/live/livestream

 

 

赞(0)
未经允许不得转载:171主机测评 » WebRTC中WHIP和WHEP协议
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址