正如我在文档中看到的,pts_time
字段通常从网络程序开始就携带相关的 PTS。(dd/mm/yyyy hh:mm:ss.ms)
但是我不知道如何根据这个值来计算正常时钟时间内拼接事件的时间pts_time
。
例如:一条 SCTE 35 提示消息,其pts_time
值为 58855 Mhz。如何计算拼接事件发生的实际时间?
从 SCTE-35 规范:(http://www.scte.org/documents/pdf/standards/Top%20Ten/ANSI_SCTE%2035%202013.pdf):
pts_time – 一个 33 位字段,以程序的 90 kHz 时钟的节拍表示时间。该字段,当被pts_adjustment修改时,表示预期拼接点的时间
因此它是:58855 / 90000 = 0.6539444444444444 秒
您需要应用 pts_adjustment 并且它与 PTS 相关
您如何接收传入的消息?通常,SCTE35
拼接信息部分包含在SCTE30
Cue Request
消息之类的内容中。
如果您探索SCTE30 标准的第 7.4.1 节,您会发现:
time( ) - - 该时间由 Splicer 从 SCTE 35 Cueing Message 的 splice_info_section( ) 中的 splice_time( ) 导出。如果在 SCTE 35 splice_info_section 中使用组件拼接模式,则 time() 将参考 SCTE 35 的第 7.5.2.1 节中详述的默认拼接时间。
从本质上讲,提示请求中包含的 UTC 时间是您之后的时间(至少,这就是我们实现它的方式)。