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