Parallel processing ffmpeg与gnu并行

Parallel processing ffmpeg与gnu并行,parallel-processing,ffmpeg,gnu-parallel,Parallel Processing,Ffmpeg,Gnu Parallel,我的工作需要我在几天内对几千部电影进行编码。每部电影都需要以3种不同的格式编码。我使用ffmpeg与输入源的单个读取并行输出这些格式,如下所述: 此外,我使用GNU并行从多个视频文件并行编码。我们有四个不同配置的刀片服务器(48、32、16和16核)并行编码视频。理想情况下,我们应该能够并行编码112个视频 然而,在内核较少的机器上,编码完成得更快。我在大约4小时内完成了16个核心服务器上的16个编码,而在48个核心系统上完成48个编码需要近10个小时。瓶颈是什么?典型的编码命令如下所示: ff

我的工作需要我在几天内对几千部电影进行编码。每部电影都需要以3种不同的格式编码。我使用ffmpeg与输入源的单个读取并行输出这些格式,如下所述:

此外,我使用GNU并行从多个视频文件并行编码。我们有四个不同配置的刀片服务器(48、32、16和16核)并行编码视频。理想情况下,我们应该能够并行编码112个视频

然而,在内核较少的机器上,编码完成得更快。我在大约4小时内完成了16个核心服务器上的16个编码,而在48个核心系统上完成48个编码需要近10个小时。瓶颈是什么?典型的编码命令如下所示:

ffmpeg -i sample.mpg -y -vcodec libx264 -vprofile baseline -level 30 -acodec libfdk_aac -ab 128k -ac 2 -b:v 500K -threads 1  encoded/sample_enc.mp4

非常感谢您的指点。谢谢

1编码在多个n核上分割是可以的,但是n编码并行进行,每个核1会导致带宽饱和


尝试为每个转码器激活4个线程,以加快1个视频的吞吐量,并将并行编码的视频数量限制为2或3个,但这取决于内存、带宽和视频(例如SD与HD)

谢谢!我们将立即尝试并在此处发布结果。对于并行的最佳编码和每个编码使用的线程数,有什么经验法则吗?还是我需要通过尝试和错误找到正确的数字?非常感谢您的帮助。如果存在一个规则,那么它一定是一个复杂的规则,因为有很多关于分布式编码的论文……我打赌,它会很复杂。嗯,我听从了你的建议,到目前为止,它已经产生了奇迹。我现在使用ffmpeg和“-threads 4”选项,使用gnu parallel和“-j 25%”选项,并且能够每小时在16个内核上大量输出4个完整的编码(所有三种格式)。谢谢正如Dmitri所说,IO可能很快成为一个瓶颈,因为我观察到,对于32或48核系统,使用上述参数和来自同一源磁盘的编码会降低平均值——我不是每小时获得8或12次完整编码,但需要更长的时间。不过,无论如何,它比我最初发布的旧方案要快。谢谢你的消息,看起来你需要监控和优化你的系统。祝你好运存储可能是一个瓶颈。它看起来像是您正在使用的某种共享存储。它是NFS共享吗?查看刀片服务器上的CPU负载结构,检查进程是在等待IO还是在忙着等待其他操作系统资源。事实上,我猜存储是一个瓶颈。不幸的是,我没有时间从我收到的便携式驱动器复制内容。复制数据本身的TBs需要一段时间。我只需将它们连接到服务器并开始编码。现在,我正在尝试阿列克斯布森的建议。将在几个小时内更新。