首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获得一个视频流的真实记录日期/时间的正确方法是什么?

获得一个视频流的真实记录日期/时间的正确方法是什么?
EN

Stack Overflow用户
提问于 2012-02-08 18:33:32
回答 1查看 1.4K关注 0票数 2

我现在有一个完整的video-streaming机制(除了GDCL /Demux过滤器)。结构是这样的。

流光图:

代码语言:javascript
复制
File Source Filter -> GDCL MP4 Demuxer -> My RTP Network Renderer

接收方图:

代码语言:javascript
复制
My RTP Network Listener -> GDCL MP4 Muxer -> My Video Renderer

我不使用RTSP协议,而是通过一些自定义方法传递所需的启动参数。我连续地流分段的文件。为此,每次到达文件结束时,我都会为下一个文件创建一个新的Streamer Graph。但是,在下一个UDP上继续使用相同的Streamer Graph端口。因此,当新的My RTP Network Listener构建并开始运行时,Streamer Graph就会继续监听并继续运行。

目前,我不使用像RTCP这样的其他通信方法。音频流是不完整的,所以我没有音视频同步问题(还没有!)

来了重要的部分,

我只想从流中获取真实记录的日期/时间信息。MP4文件名采用日期/时间格式。所以我知道文件记录是什么时候开始的。我知道我可以使用以下方法计算记录日期/时间:

代码语言:javascript
复制
Recording Start Date/Time Value + Media TimeStamp Value Of The Stream

但是,如果两个录制的文件之间存在差距呢?当我构建一个新的Streamer Graph时,时间戳将再次从零开始计数,对吗?

来了问题

那么,处理这种情况的正确方法是什么呢?我知道RTCP被用于音视频同步。它也能用在我的箱子里吗?还是我需要使用第二个UDP端口(就像RTCP)并发送一些自定义的日期/时间信息消息?

我能想到不止一个解决方案来解决我的问题。但是,如果有一个通常的,更恰当的方式,我不想使用一个丑陋的解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-09 13:29:45

我使用了一个额外的UDP端口来发送日期/时间信息(4字节unix时间戳)。它工作良好,我的播放器正确计数计时器和所有的日期/时间信息与视频流同时接收。我仍然认为应该有一个更好的,行业标准的方式,但由于没有人决定回答我的问题,我想分享我自己的解决方案。

代码语言:javascript
复制
Port Offset   : RTP Video Stream
Port Offset+1 : Date/Time Information (Unix TimeStamp)

计算unix时间戳(秒):

代码语言:javascript
复制
File Recording Start DataTime + Seek Time + (Media TimeStamp / 100000)

希望1:这对将来有类似情况的人有帮助。

希望2:有人回答这个问题,提出一个更好的方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9199322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档