4

Python の gstreamer 0.10 を使用して、v4l2 ビデオ ソースを同時に表示し、xvid-in-avi に記録しようとしています。長期間にわたって、コンピューターはこれを行うのに十分な速さですが、別のプログラムがディスクを使用すると、フレームがドロップします。それは十分に悪いことですが、再生すると、低いフレームレートでエンコードできたフレームを表示する代わりに、フレームがドロップされたビデオに動きのバーストがあります。

パイプラインはv4l2src ! capsfilter ! tee ! queue ! xvidenc ! avimux ! filesinkで、ティーも に沈みqueue ! xvimagesink sync=falseます。videorateの前に追加しようとしましxvidencたが、それは事態を悪化させるようです。

このパイプラインで圧縮されていないビデオをディスクにスプールし、バックグラウンド スレッドでエンコードすることを検討しました。この問題を解決するために他に何ができますか? ドロップフレームで間違ったことをしていますxvidencか? avimuxエンコーダーの前にあるキューのサイズを大幅に増やすことはできますか?

4

2 に答える 2

5

teeいずれかの出力がブロックされるとブロックされるため、おそらくボトルネックです。エンコードに時間がかかるストリームをディスクに書き込み、そこからエンコードすることをお勧めします。

于 2009-03-24T14:35:41.867 に答える
2

xvimagesyncではなくxvimagesinkを書く必要があります

于 2010-02-10T15:20:28.733 に答える