avconv 在多个线程上

avconv 在多个线程上

是否可以在多个处理器或线程上运行作业以加快 avconv 的速度?
是否有正在开发的功能?如果没有,我想知道为什么?

答案1

你正在寻找-线程avconv 的选项。最安全的设置是:

 -threads auto

但如果你想尝试一下,也可以在那里设置一个整数。现代 FFmpeg(现在是 Ubuntu 的标准)将其设置为auto 默认情况下如“ffmpeg-all”手册页的此部分所示:

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. 可以为各个流设置线程数,而不是简单地尝试全局线程设置

答案2

如果您要对大量文件进行音频转码,请考虑使用 GNU Parallel。它将以文件列表作为输入,并根据系统中的核心数量并行处理它们。例如,这是一个 bash 示例,它将使用 ffmpeg 将音乐并行转换为 opus 音频格式。

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

相关内容