编程的DVR组件LEADTOOLS mpeg - 2传输模块

LEADTOOLS mpeg - 2的DVR组件模块可以缓冲和回放捕获数据流媒体视频和生活来源。DVR组件由两个主要的接口DVR水槽DVR源。DVR的水槽接口负责编写包含先前捕获的多路复用流数据的缓冲文件。DVR源接口提供了一个基于IFileSourceFilter过滤器能够阅读DVR缓冲区列表(.LBL)文件和播放其捕获数据块位于记录(.LRC)文件。

DVR源接口,可以暂停,倒带,快进寻求通过捕获缓冲区数据实时视频来源和UDP和TCP流。这个缓冲数据也可以被复制从DVR缓冲文件片段。此外,获取的数据从源到可以写入单独的备份文件

下面的图展示了一个DirectShow的过滤图使用铅MPEG2传输UDP源过滤器,它在内部使用DVR水槽和DVR源过滤器实现缓冲捕获和回放。

DirectShow的过滤图使用铅MPEG2传输UDP源过滤器

图1所示。实现流媒体捕捉过滤器使用铅MPEG2传输UDP来源

在任何给定的时间,在DVR缓冲捕获和回放,有一群正在读写缓冲文件。图2说明了DVR缓冲数据排队策略,DVR水槽写操作和DVR源读取操作。

DVR缓冲区数据排队

图2。DVR流媒体Buffered-Capture策略

虽然没有必要知道DVR缓冲存储器实现的细节,它仍然是重要的理解DVR缓冲区的配置文件与缓冲视频回放,寻求,暂停操作。DVR缓冲队列的设计很简单,但是实现细节可以微妙。底层数据结构的缓冲存储和缓冲文件组成的循环队列。图3显示了DVR缓冲队列的状态存储后不久开始的过滤图。缓冲文件夹FileCount 6,但只有4个文件创建了到目前为止:

部分DVR缓冲队列

图3。DVR缓冲队列存储状态

在这个例子中,缓冲存储器包括一缓冲FileCount值6。循环缓冲区满时,新数据到达的DVR下沉仍必须存储。最古老的缓冲文件将被回收(以前所有存储数据被丢弃)和新收到的数据写入到文件中。下图说明了数据丢失和缓冲的缓冲条件文件重用:

了DVR缓冲队列

图4。DVR缓冲区状态队列文件回收

注意StartStreamPTS和BaseStreamPTS值在上面的例子中是指废弃缓冲数据,为新数据。这些值仍然是重要的绝对和相对的计算(DirectShow的)流。见下表分不同时间戳值和如何使用它们来管理访问和回放DVR缓冲区的数据。

表1。DVR缓冲队列*

时间 讲话
StartStreamPTS 第一个可用数据的最后寻求操作。
BaseStreamPTS 流中的位置,我们最后的希望。
FirstStreamPTS 最古老的缓冲区中的数据。
LastStreamPTS 最新的数据缓冲区。
CurrentStreamPTS

当前位置根据信号分离器。(更准确的位置是由渲染器通过get_CurrentPosition方法)。

表2。单位的时间

单位 讲话
表示时间戳(90000分单位1秒)
=分/ 90000
= 90000 *秒
绝对时间(秒) =(当前分——流开始分)/ 90000
DirectShow的时间(REFERENCE_TIME) =(当前PTS -基)/ 90000

提供的方法和属性DVR组件:

函数用于优化DVR下沉时的性能属性改变:

对编程示例使用DVR组件特性和教程,请参考下面的例子:

另请参阅

许可

为了部署mpeg - 2传输模块专门的组件,你必须完成部署许可应用程序形式(可在LEADTOOLS许可下帮助文件的主题,“部署许可应用程序”),并获得任何必要的部署许可证。如果你有任何问题关于许可编解码器/过滤器,您可以联系领导许可licensing@leadtools.com

LEADTOOLS多188宝金博怎么下载媒体C API的帮助
188金宝搏的网址客服|支持|联系我们|知识产权的通知
©1991 - 2022领先的技术公司。保留所有权利。