我正在尝试使用 Python 中的 gstreamer 0.10 同时显示 v4l2 视频源并将其记录到 xvid-in-avi。在很长一段时间内,计算机的速度足以做到这一点,但如果另一个程序使用磁盘,它就会丢帧。这已经够糟糕的了,但是在播放时视频中会出现突然的运动,其中帧被丢弃,而不是显示我们能够以较低帧速率编码的帧。
管道是v4l2src ! capsfilter ! tee ! queue ! xvidenc ! avimux ! filesink
,三通也下沉到queue ! xvimagesink sync=false
. 我试过videorate
在前面添加,xvidenc
但这似乎让事情变得更糟。
我考虑在这个管道中将未压缩的视频假脱机到磁盘并在后台线程中对其进行编码。我还能做些什么来解决这个问题?丢帧是错的还是xvidenc
做错了?avimux
我可以显着增加编码器之前的队列大小吗?