LEADTOOLS mpeg - 2的DVR组件模块可以缓冲和回放捕获数据流媒体视频和生活来源。DVR组件由两个主要的接口DVR水槽和DVR源。DVR的水槽接口负责编写包含先前捕获的多路复用流数据的缓冲文件。DVR源接口提供了一个基于IFileSourceFilter过滤器能够阅读DVR缓冲区列表(.LBL)文件和播放其捕获数据块位于记录(.LRC)文件。
DVR源接口,可以暂停,倒带,快进寻求通过捕获缓冲区数据实时视频来源和UDP和TCP流。这个缓冲数据也可以被复制从DVR缓冲文件片段。此外,获取的数据从源到可以写入单独的备份文件。
下面的图展示了一个DirectShow的过滤图使用铅MPEG2传输UDP源过滤器,它在内部使用DVR水槽和DVR源过滤器实现缓冲捕获和回放。
在任何给定的时间,在DVR缓冲捕获和回放,有一群正在读写缓冲文件。图2说明了DVR缓冲数据排队策略,DVR水槽写操作和DVR源读取操作。
虽然没有必要知道DVR缓冲存储器实现的细节,它仍然是重要的理解DVR缓冲区的配置文件与缓冲视频回放,寻求,暂停操作。DVR缓冲队列的设计很简单,但是实现细节可以微妙。底层数据结构的缓冲存储和缓冲文件组成的循环队列。图3显示了DVR缓冲队列的状态存储后不久开始的过滤图。缓冲文件夹FileCount 6,但只有4个文件创建了到目前为止:
在这个例子中,缓冲存储器包括一缓冲FileCount值6。循环缓冲区满时,新数据到达的DVR下沉仍必须存储。最古老的缓冲文件将被回收(以前所有存储数据被丢弃)和新收到的数据写入到文件中。下图说明了数据丢失和缓冲的缓冲条件文件重用:
注意StartStreamPTS和BaseStreamPTS值在上面的例子中是指废弃缓冲数据,为新数据。这些值仍然是重要的绝对和相对的计算(DirectShow的)流。见下表分不同时间戳值和如何使用它们来管理访问和回放DVR缓冲区的数据。
时间 | 讲话 |
---|---|
StartStreamPTS | 第一个可用数据的最后寻求操作。 |
BaseStreamPTS | 流中的位置,我们最后的希望。 |
FirstStreamPTS | 最古老的缓冲区中的数据。 |
LastStreamPTS | 最新的数据缓冲区。 |
CurrentStreamPTS | 当前位置根据信号分离器。(更准确的位置是由渲染器通过get_CurrentPosition方法)。 |
单位 | 讲话 |
---|---|
分 | 表示时间戳(90000分单位1秒) |
秒 | =分/ 90000 |
分 | = 90000 *秒 |
绝对时间(秒) | =(当前分——流开始分)/ 90000 |
DirectShow的时间(REFERENCE_TIME) | =(当前PTS -基)/ 90000 |
提供的方法和属性DVR组件:
ILMDVRSink: put_FolderCount,ILMDVRSink: put_FolderName,ILMDVRSink: put_BaseName属性设置缓冲文件夹,文件夹位置和文件名。
ILMDVRSink: SetBufferSize方法来设置缓冲区的大小和数量的文件。
ILMDVRSink: GetAvailabilityInfo检查数据可用性的方法。
ILMDVRSink: GetBufferTotalSize方法来获取当前和最大允许数量的缓冲文件。
ILMDVRSink: CopyBufferToFile方法将缓冲区的数据复制到一个新文件。
ILMDVRSink: StartBackupToFile和ILMDVRSink: StopBackupToFile方法来启动和停止备份文件的作家。
ILMDVRSink: GetStatus方法来获取当前下沉状态。
ILMDVRSink: GetBufferInfo方法来获取当前信息缓冲文件夹。
ILMDVRSource: ReadData方法直接从DVR缓冲区读取数据使用的起始偏移量和所需阅读的大小。
ILMDVRSink: CreateEvents和ILMDVRSink: FreeEvents方法使用windows事件通知监控缓冲区和缓冲区列表更改写道。
函数用于优化DVR下沉时的性能属性改变:
ILMDVRSink: StartChangingAttributes方法开始改变缓冲区配置设置。
ILMDVRSink: StopChangingAttributes方法应用或取消更改缓冲区设置。
对编程示例使用DVR组件特性和教程,请参考下面的例子:
为了部署mpeg - 2传输模块专门的组件,你必须完成部署许可应用程序形式(可在LEADTOOLS许可下帮助文件的主题,“部署许可应用程序”),并获得任何必要的部署许可证。如果你有任何问题关于许可编解码器/过滤器,您可以联系领导许可licensing@leadtools.com。
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗Web查看器net
188宝金博怎么下载
支持的平台上
net, Java, Android和iOS / macOS组件
C / c++类库的API
HTML5 JavaScript库
你的邮件已经发送到支持!有人应该联系!如果你的问题是紧急请回到聊天。
聊天时间:
周一——周五,上午6点等
谢谢你的反馈!
请填写表单重新开始一个新的聊天。
所有代理目前离线。
聊天时间:
周一-周五
早上8:30 - 6点
联系我们请填写这张表格,我们将通过电子邮件联系你。