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