首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >允许MEncoder使用更多的CPU

允许MEncoder使用更多的CPU
EN

Stack Overflow用户
提问于 2015-10-27 21:34:42
回答 1查看 259关注 0票数 0

我正在使用MEncoder将大量的jpg图片组合成一个延时视频。我有两个主文件夹,每个主文件夹大约有10个子文件夹,为了自动化我正在运行的过程:

代码语言:javascript
复制
find . -type d -name img -exec sh -c '(cd {} && /Volumes/SAMSUNG/PedestrianBehaviour/BreakableBonds/jpg2avi.sh t*)' ';'

其中,jpg2avi是MEncoder的设置。

代码语言:javascript
复制
mencoder 'mf://t00*.jpg' -mf fps=10 -o raw.avi -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate=2000 -o out.avi

为了使其并行化,我在两个文件夹BreakableBonds和UnBreakableBonds中启动了这个命令。然而,每个进程只使用了大约27%,因此总使用率略高于50%。我有什么方法可以加速这个过程吗?使得每个过程约占50%。(我知道在每个过程中50%是不可能的。)

EN

回答 1

Stack Overflow用户

发布于 2015-10-27 22:33:25

根据您使用的视频编解码器(x264是一个很好的选择),一个编码应该能够饱和多个CPU核心。我通常直接使用ffmpeg,因为mencoder是基于一些类似AVI的假设而设计的。

有关如何执行此操作的信息,请参阅ffmpeg's wiki page

同样,我强烈建议在mkv或mp4容器中使用h.264,而不是使用avi容器中的任何内容。avi中的h.264是一个黑客,而avi通常的编解码器是divx (h.263)。h.264是一个很大的进步。

h.264适用于视频,就像mp3适用于音频:第一个足够好的编解码器出现时,CPU的速度已经足够快,并且磁盘和网络能够处理产生高质量的文件大小。将其与ffmpeg as a frontend for libx264一起使用。

h.265 (和vp9)都是比h.264更好的编解码器(就压缩效率而言),但它们的支持范围要小得多,而且需要更多的中央处理器时间。如果你想使用它们,可以使用ffmpeg作为libx265或libvpx的前端。x265正在进行大量的开发,所以它可能会有所改进,但在几个月前,考虑到同样的编码CPU时间,x265在每比特率的质量上没有击败x264。然而,考虑到更多的CPU时间,x265可以做得很好,并以比x264低得多的比特率制作出同样好看的编码。

所有3个编解码器都是多线程的,即使在快速设置下也可以饱和4个核心。在更高的设置下(每个块花费更多的CPU时间),我想你至少可以饱和16个内核。我不确定,但我认为你可以有效地利用64个核心,也许更多,在一个HD x265编码。

在快速设置和高比特率下,gzip风格的熵编码最终阶段(例如,用于x264的CABAC )限制了您可以保持忙碌的CPU数量。这是一个串行任务,所以整个编码速度只能与一个CPU压缩最终比特流的速度一样快。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33369454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档