RTSP 源过滤器与 GDCL MP4 复用器不兼容
我正在尝试将 GDCL MP4 Muxer 与我的 RTSP 源过滤器一起使用。它们一起工作得很好,除了停止图形后,muxer 不会完成文件并通过文件写入器将所需的表写入文件末尾(某些部分是从 moov 开始写入的,但不是时间表值)。当我尝试另一个 RTSP 源过滤器(我没有其源代码)时,表值是使用 GDCL MP4 Muxer 创建的。
但当我尝试 Elecard 的 MP4 Muxer 时,它与我的 RTSP 源过滤器配合得很好。所以,存在不兼容的情况。我检查了 GDCL 的源代码,但找不到它对我的期望。我已经使用 SetTime
方法计算并设置样本的时间戳值。但GDCL仍然没有完成文件。当图表停止时,是否是由于信息丢失或信号丢失造成的?可能是什么问题,有什么想法吗?
I'm trying to use GDCL MP4 Muxer with my RTSP Source Filter. They work fine together except after stopping the graph, muxer doesn't finilize the file and write the reqiured tables to the end of file via file writer (some parts are written starting from moov but not the time table values). When I try another RTSP source filter (which I don't have its source codes), table values are created with GDCL MP4 Muxer.
But when I try Elecard's MP4 Muxer, it works fine with my RTSP Source Filter. So, there is an incompatibility. I examined GDCL's source codes but couldn't find what it was expecting from me. I already calculate and set timestamp values to samples using SetTime
method. But GDCL still doesn't finilaze file. Is it caused by missing information or missing signal when graph stops? What can be the problem, any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
关于 Geraint 的 MP4 Mux,您应该注意的一件事是,它会检查传入媒体样本的开始时间和停止时间。您可能只有
.tStart
/AM_SAMPLE_TIMEVALID
这对视频仍然有意义,但这将是一个问题。因此样本必须有停止时间,或者您需要在多路复用器代码中修复此问题。
该问题的典型症状是生成的文件为空或持续时间为零。
One thing you should be aware of regarding Geraint's MP4 Mux is that it is checking incoming media samples to have both start and stop time. You might be having only
.tStart
/AM_SAMPLE_TIMEVALID
which still makes sense for video, but this would be a problem.So the samples have to have stop time, or you need to fix this in multiplexer code.
A typical symptom for the problem is that generated files are empty or of zero duration.