Python の gstreamer 0.10 を使用して、v4l2 ビデオ ソースを同時に表示し、xvid-in-avi に記録しようとしています。長期間にわたって、コンピューターはこれを行うのに十分な速さですが、別のプログラムがディスクを使用すると、フレームがドロップします。それは十分に悪いことですが、再生すると、低いフレームレートでエンコードできたフレームを表示する代わりに、フレームがドロップされたビデオに動きのバーストがあります。
パイプラインはv4l2src ! capsfilter ! tee ! queue ! xvidenc ! avimux ! filesinkで、ティーも に沈みqueue ! xvimagesink sync=falseます。videorateの前に追加しようとしましxvidencたが、それは事態を悪化させるようです。
このパイプラインで圧縮されていないビデオをディスクにスプールし、バックグラウンド スレッドでエンコードすることを検討しました。この問題を解決するために他に何ができますか? ドロップフレームで間違ったことをしていますxvidencか? avimuxエンコーダーの前にあるキューのサイズを大幅に増やすことはできますか?