複数のスレッドでのavconv


9

複数のプロセッサまたはスレッドでジョブを実行して、avconvを高速化することは可能ですか?
進行中の機能はありますか?

回答:


11

あなたはavconv の-threadsオプションの後にます。最も安全な設定は次のとおりです。

 -threads auto

少し実験したい場合は、整数を設定することもできます。最新のFFmpeg(現在はUbuntuの標準)では、これがauto デフォルトで設定れています

threads integer (decoding/encoding,video)

Set the number of threads to be used, in case the selected
codec implementation supports multi-threading.

  Possible values:

     auto, 0
     automatically select the number of threads to set

 Default value is auto.

注2の重要な点:

  1. この設定は、選択したコーデックがマルチスレッドをサポートしている場合にのみ有効です。
  2. 単にグローバルなスレッド設定を試みるのではなく、個々のストリームのスレッド数を設定することが可能です

1
反対のソースがある場合は修正してください。ただし、特に指定がない限り、Avconvとavplayはデフォルトとして-threads autoを使用しているようです。システムモニタがこれをバックアップしているようです。
オタク長老2016

1
トランスコーディングに使用するコーデックに依存すると思います。これは正式にテストすることができ、確かに興味深いテストになります。オンラインでこの問題について見つけた情報は特に役に立ちません。もう1つの問題は、使用されるFFmpegのバージョンです。スレッドオプションは、以前のバージョンでは
別様に

1
はい。FFmpegとavconvはフォーク以来、いくぶん異なる方向に進んでいます。さらなる調査によると、コマンドラインでいずれかのプリセットを使用する場合、avconvのデフォルトは-threads autoです。
オタク長老2016

3

多数のファイルのオーディオトランスコーディングを行う場合は、GNU Parallelの使用を検討してください。ファイルのリストを入力として受け取り、システムのコアの数に基づいてそれらを並行して処理します。たとえば、ffmpegを使用して音楽をopusオーディオ形式に並行して変換するbashの例を次に示します。

find ./* -depth -type f -name \*.ogg -o -name \*.flac -o -name \*.m4a -o -name \*.mp3 -o -name \*.ogg | parallel -j+0 --gnu nice -n 19 ffmpeg -i "{}" -acodec libopus "{.}.opus" -loglevel quiet
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.