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