gstreamer:将录制内容从一个文件切换到另一个文件

时间:2019-12-09 14:17:15

标签: gstreamer

我正在编写一个将传入视频记录到文件中的应用程序,每隔“ t”秒将其保存并记录到新文件中。 splitmuxsink似乎可以达到目的,但不能达到我的目的,因为-

  • 不允许连续文件之间重叠。我希望一个文件的最后几秒钟也出现在下一个文件中。
  • splitmuxsink还有其他怪异的问题(与普通的fileink相比,延迟时间长,不像录音一样记录音频,文件的时间戳不正确等)

因此,我希望应用程序每隔“ t”秒触发一次基于时间的回调。在我的管道中,有一个多路复用器,通过该多路复用器可以同时写入两个文件一段时间(取决于重叠),然后基于另一个计时器回调,断开较旧的文件接收器。

我有以下问题-

  1. 以上方案是个好主意吗?还有更好的主意吗?
  2. 如何注册计时器回调?只是OS系统调用,还是gstreamer提供任何API?
  3. 断开旧文件接收器的安全方法是什么?是否应该先断开连接然后发送EOS信号?我在这里有点困惑。
  4. 更改管道中新文件的时间。 splitmuxsink中的一个问题是,文件的时间戳记与管道的运行时间有关,但是实际上每次创建新文件时,该文件都会重置。 (我不介意暂时还没有得到答案;这可能应该是一个单独的问题。)

要弄清楚所涉及的时间,每个文件的持续时间可能是5分钟,重叠可能是1​​%,3秒。

0 个答案:

没有答案