如何使用gstreamer录制实时视频而不丢帧?

时间:2009-03-24 14:28:02

标签: python linux gstreamer

我正在尝试使用Python中的gstreamer 0.10同时显示v4l2视频源并将其记录到xvid-in-avi。在很长一段时间内,计算机的速度足够快,但如果另一个程序使用该磁盘则会丢帧。这已经足够糟糕了,但是在播放时,视频中的帧会被丢弃,而不是显示我们能够以较低帧速率编码的帧。

管道为v4l2src ! capsfilter ! tee ! queue ! xvidenc ! avimux ! filesink,发球台也下沉到queue ! xvimagesink sync=false。我尝试在videorate前添加xvidenc,但这似乎会让事情变得更糟。

我已经考虑将未压缩的视频假脱机到此管道中的磁盘并在后台线程中对其进行编码。我还能做些什么来解决这个问题?丢帧是xvidencavimux做错了吗?我可以大大增加编码器之前队列的大小吗?

2 个答案:

答案 0 :(得分:5)

如果输出阻塞,

tee将阻止,所以它可能是你的瓶颈。我建议编写需要更长时间才能编码到磁盘并从那里进行编码的流。

答案 1 :(得分:2)

你需要编写xvimagesink,而不是xvimagesync