用于处理网络视频的FFMPEG性能设置

时间:2015-06-19 13:50:11

标签: ffmpeg

关于使用ffmpeg处理网络视频,我有几个问题。我是初学者,所以请耐心等待我(虽然我在互联网上阅读了一些文档)

性能

  • 首先,鉴于FFMPEG使用100%的所有内核,实际的并行效率是多少?

让我们假设以下情况。我有一个视频(全高清,无论使用什么编码器/压缩格式来获取视频),我想使用mp4格式调整大小(缩小)到各种尺寸(例如240px,480px和720px高度)(因此使用libx264和aac编解码器。)

使用ffmpeg,我发现我所有笔记本电脑的核心(8)都是100%使用,我想知道哪些场景可以提高整个处理任务的整体性能。所以这导致我们基本上有两种情况:假设上面提到的视频作为输入,为了获得3个输出视频(@ 240px,480px和720px高度尺寸),我们:

  1. 处理输入视频并一次获得1个输出视频,让所有核心同时以100%工作;
  2. 通过将每个输出视频绑定到一个处理器核心,以100%的速度工作,处理视频以并行获取所有输出视频;
  3. 因此问题实际上已降低到ffmpeg程序的并行效率。

    这意味着让ffmpeg处理任务procVideo - ,它需要1个输入视频来产生1个单输出视频(转码/缩减等等) - 在N个处理器核心上没有&# 39;意味着它完成任务的速度比让它运行绑定到单个核心的相同任务快N倍。因此,如果效率小于100%,那么并行执行N procVideo任务会更好,每个任务都绑定到一个核心,而不是按顺序为每个输出视频执行任务。

    编解码器

    除了上述性能问题外,编解码器的使用会让我感到困惑。我正在尝试获取mp4视频,因为在html5浏览器中广泛实现了格式。

    因此,以任何格式输入视频,我想将其转换为mp4。所以我使用libx264编解码器和aac。

    • 使用libx264,x264或h264进行视频编码/解码?
    • 使用libfdk_aac,libaacplus或aac对aac进行音频编码/解码?

    此外,我想知道上述每个编解码器的费用是多少,因为这些编解码器的在线资源非常有限/难以理解。

    如果有人能对这些问题有所了解,我真的很感激!谢谢你的时间!

1 个答案:

答案 0 :(得分:3)

这里有一些不相关的问题。

FFmpeg表现

以下所有内容均基于我的个人经验,绝不是经验证据。

尽可能地尝试,您将非常难以找到比FFmpeg更优化的软件。 还要记住,在这种情况下,大多数工作都将由libx264完成,它非常成熟且非常快。 (只是尝试使用ffmpeg和不太成熟的x265将等效视频编码为H.265,并且您将理解我的意思。)

总而言之,您可以假设单个编码在计算机上尽可能快,而并行化不会改进任何内容。

另一种测试方法是让ffmpeg在一次调用中编码多个文件,这样管道的解码部分只进行一次,如下所述:https://trac.ffmpeg.org/wiki/Creating%20multiple%20outputs

最后,您应该仔细测量每个场景的总编码时间来测试每个案例。

编解码器

x264和libx264是同一个,不同之处在于ffmpeg使用后者而不是独立工具。 通过" h264",我不确定你的意思。在ffmpeg中,h264只是一个解码器,而libx264是编码器。那里你没有多少选择。

关于AAC,此网页中包含所有重要信息:https://trac.ffmpeg.org/wiki/Encode/AAC 因此,如果您可以获得与libfdk_aac链接的ffmpeg构建,这是获得高质量音频的最安全的选择。

许可费

这是一个非常敏感的主题。大多数人都会直截了当地拒绝给你建议,我也不例外,因为任何法律建议都意味着在诉讼中承担责任。

总结一下,请参阅以下网址:

有些人可能会争辩说,理解信息的难度是以某种方式有目的地进行的,以便混淆普通大众。