代码之家  ›  专栏  ›  技术社区  ›  ceztko Jeff Davis

WebRTC:在JavaScript和本机代码对等端之间同步视频帧

  •  2
  • ceztko Jeff Davis  · 技术社区  · 6 年前

    Native Code 同龄人。在传输过程中的某个时刻(实际上是在建立连接之后,但可能是在任何时刻),我想在JS对等端启动秒表并执行一些临时操作,实际上是在覆盖视频播放的画布上进行一些渲染。在本地对等端,我希望能够在stopwatch在JS对等端启动的瞬间进行同步,并且只考虑在该瞬间之后记录的接收帧,执行其他类型的处理。我现在所做的(脆弱和有限的解决方案):

    • RTCPeerConnection.iceConnectionState ,我启动JS对等机上的秒表;
    • 一开始 webrtc::VideoFrame 到达本地对等我存储帧timespam;

    这种设计是有限制的,因为我可能想在任何时刻同步,而不仅仅是在建立对等连接时,而且很脆弱,因为我认为WebRTC协议允许出于任何原因(延迟或传输错误)丢弃最初接收到的帧。理想情况下,我希望在JS对等机中选定的同步点上获取一个时间戳,将其发送到本机对等机并能够进行比较 webrtc::视频帧 时间戳。我不能天真地做这件事,因为 VideoFrame::timestamp_us() 很明显有一些我不知道的偏差。我也不能解释 VideoFrame::timestamp() ,这在 api/video/video_frame.h , VideoFrame::ntp_time_ms() -1

    1 回复  |  直到 6 年前
        1
  •  1
  •   ceztko Jeff Davis    5 年前

    发件人 issue . 更多细节将在稍后公布。