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