1

avconv (ffmpeg フォーク) を使用してビデオをフレームに分割したいと思います。プロセスを高速化するために、マルチスレッドを使用したいと考えています。このために、4 コアの VM で「-threads 3」を使用します。上部の「-threads 1」と「-threads 3」に違いはありません(常に100%から130%の間です。

コマンド:

avconv -i video.mp4 frames/frame-%05d.tiff -threads 3

プロセスをスピードアップするにはどうすればよいですか?

ありがとう、

4

1 に答える 1

0

最初の、そしておそらく最大の速度低下は、仮想マシンで実行しているという事実です。何らかの理由でコマンドをローカルで実行することは不可能であると想定します。

ボトルネックが実際にはあなたのドライブである可能性があります。同じ物理デバイスで読み取りと書き込みを行っており、それを最適化することができます。ハードドライブが 2 つある場合は、別のドライブに書き込みを試みることができます。このようにして、単一のシークで行われるシークが大幅に少なくなります。同じ物理デバイス上の別のパーティションではこの問題は解決されませんが、状況が悪化する可能性があることに注意してください。

使用しているファイルシステムを考えて、多数のファイルの作成に最適化されていることを確認してください。単にファイルに追加するのではなく、FS 自体で多くのアクションを実行しているため、ジャーナリング システムは実際には動作を多少遅くする場合があります。システム全体をジャーナリング ファイル システムから移動したくないということを覚えておいてください。これは、単一のアクションの速度を上げるためだけです (これがこのマシンだけが行っていることではないことを前提としています)。

于 2014-04-16T06:20:02.350 に答える