天天看点

gstreamer支持多摄像头的思路

已知:

  • gstreamer可以很好的支持多文件同时播放。
  • gstreamer无法正常支持多摄像头同时播放。偶尔可以,多数情况下直接崩溃。

两个现象对比,可以确定是因为摄像头建立链接、接受数据有延迟导致的。目前分析是在h264parse出错的。

解决思路:

  1. 主线程使用appsrc。
  2. 每个摄像头一个线程。
  3. 对每个摄像头增加一个探头,保存读取到的数据。
  4. 当下游元素请求数据时,关键步骤来了:
  • 第一个摄像头,除了保存到自己的缓冲区,还要保存到公用缓冲区。
  • 其他摄像头,如果自己的数据还没有到达,就使用公用缓冲区的数据。

大体思路如此。具体细节自行完善。

继续阅读