4

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

管道是v4l2src ! capsfilter ! tee ! queue ! xvidenc ! avimux ! filesink,三通也下沉到queue ! xvimagesink sync=false. 我试过videorate在前面添加,xvidenc但这似乎让事情变得更糟。

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

4

2 回答 2

5

tee如果任一输出阻塞都会阻塞,所以它可能是你的瓶颈。我建议将需要更长时间编码到磁盘并从那里编码的流写入。

于 2009-03-24T14:35:41.867 回答
2

你需要写 xvimagesink,而不是 xvimagesync

于 2010-02-10T15:20:28.733 回答